Mover o Xampp para o diretório Home no Linux

Mover o Xampp para o diretório Home no Linux


Recentemente publiquei aqui como Alterar localização da pasta htdocs no Xampp no Linux e Criar virtual hosts no Xampp/Linux.

Acho que são boas soluções, mas eu vinha de uma configuração onde tinha tudo num só local. Muito fácil de fazer backup e controlar. 

Senti necessidade de fazer o mesmo nesta minha configuração do linux.

Pretendia mover a totalidade da pasta:

/opt/lampp

para o meu directório

home/username

Primeiro porque dediquei a maior parte do meu espaço em disco para o diretório /home e sei que iria ficar sem espaço suficiente ao importar todos os meus trabalhos e bases de dados. 

Segundo, não gosto da ideia de ter os meus trabalhos e sites numa localização (Alterar localização da pasta htdocs no Xampp no Linux) e as bases de dados noutra localização (/opt/lampp). Procurei como seria possível mover a totalidade da estrutura de ficheiros e pastas do xampp para a minha diretoria /home.

A solução foi surpreendentemente simples. E funciona!

 

Mover o Xampp para o diretório Home no Linux

São apenas duas linhas de código:

No terminal:

sudo mv /opt/lampp $HOME/lampp
sudo ln -s $HOME/lampp /opt/lampp

 

O primeiro comando move o que queremos, que é /opt/lampp para a nossa diretoria /home/lampp

O segundo comando cria um link simbólico em /opt/lamp/ que irá apontar para /home/lamp/

Com isto, conseguimos "enganar" o sistema deixando referência do xampp em /opt/lampp/ mas o sistema abre na realidade /home/lampp

O resultado final é a pasta do xampp movida na totalidade para onde queriamos e na localização original fica uma pasta com um icon de uma seta.

Mover Xampp para o diretório Home no Linux

 

Assim, para além de termos maior controlo sobre os ficheiros e backups que vamos criando ao longo do tempo, pois estão todos na mesma pasta, não temos de nos preocupar com mais nada. Até os comandos iniciais para iniciar e terminar o xampp são os mesmos.

Sem dúvida que para mim, esta é a configuração que irei fazer sempre que tiver de instalar o xampp.

Notas sobre virtual hosts

Importa referir que, mesmo ao mover o xampp na totalidade para a diretoria /home seguindo os dois comandos indicados em cima, não é necessário alterar mais nada nos ficheiros de configuração do xampp. Deixar tudo como vem de origem ao instalar o xampp.

/opt/lampp/htdocs

 

Antes de seguir a solução descrita em cima, tinha configurado o xampp para abrir os meus trabalhos noutra localização (Alterar localização da pasta htdocs no Xampp no Linux) e (Criar virtual hosts no Xampp/Linux) que apontava também para outra localização. Por isso voltei a alterar os caminhos para as localizações originais, mesmo tendo movido o xampp para /home/ e tenho tudo a funcionar.

Exemplo, voltei a definir o caminho inicial:

<VirtualHost *:80>
DocumentRoot "/opt/lampp/htdocs"
ServerName myvirtualdomain
ServerAlias www.myvirtualdomain
</VirtualHost> 

 

Atualização - VirtualHost com SymLinks e php __FILE__

Estive a trabalhar num projeto em que o php usava DocumentRoot para determinar o caminho para tratamento e processamento de ficheiros.

Estava a ter problemas porque tinha o virtualhost configurado para /opt/lampp/htdocs, mas este por sua vez era um symlink que estava noutra localização!

O resultado era que DocumentRoot devolvia um caminho /opt/lampp/htdocs/www, definido no virtual host

O php (__FILE__) que resolve symlinks, devolvia por isso outro caminho /home/USER/lampp/htdocs/www diferente de DocumentRoot o que me causou alguns problemas, até descobrir porquê.

A solução é configurar corretamente o virtual host a apontar para o caminho final verdadeiro.

A minha configuração atual é:

<VirtualHost *:80>
 #DocumentRoot "/opt/lampp/htdocs/www"
 # __FILE__ in php resolves symlinks, so we must correct DocumentRoot to avoid issues with images in function
 DocumentRoot "/home/USER/lampp/htdocs/www"
    <Directory "/home/USER/lampp/htdocs/www">
        
        ## DISABLE DIRECTORY BROWSING ##
        Options FollowSymLinks
        ## ENABLE DIRECTORY BROWSING ##
        Options FollowSymLinks Indexes
        AllowOverride All

    </Directory>
 ServerName myvirtualdomain
 ServerAlias www.myvirtualdomain
</VirtualHost>

 

Boa sorte!