Como adicionar um diretório personalizado, por exemplo, phpmyadmin?

11

Como meu conhecimento apacheé mínimo. Gostaria de deixar crescer, para ter mais experiência com o LAMP. Minha pergunta quente para hoje é:

Como adicionar um diretório personalizado ao servidor da web? (por exemplo, phpmyadmin)?

Meu objetivo é poder criar endereços personalizados com sites personalizados. Vamos supor que eu tenha meu diretório personalizado em: /media/my/web/portal1e gostaria de carregá-lo quando o cliente ligar

http://localhost/myportal1 at webbrowser. 

Você poderia me dar uma lista de etapas com poucas palavras de explicação?

Adrian K.
fonte

Respostas:

26

Edite seu arquivo de configuração do Apache e adicione uma diretiva de alias . Por exemplo, vamos usar o arquivo padrão .

sudo -e /etc/apache2/sites-available/default

Faça seu alias adicionando uma seção na diretiva VirtualHost :

Alias /database/ "/usr/share/php5/phpmyadmin/"
<Directory "/usr/share/php5/phpmyadmin/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

Salve e reinicie: sudo /etc/init.d/apache2 restart

Ou para a outra referência:

sudo -e /etc/apache2/sites-available/default

E o conteúdo ...

Alias /myportal1/ "/media/my/web/portal1/"
<Directory "/media/my/web/portal1/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

Salve e reinicie: sudo /etc/init.d/apache2 restart

Adicione mais diretivas às diretivas de diretório , como

Options Indexes FollowSymLinks 

Consulte http://httpd.apache.org/docs/2.2/mod/core.html#directory

Foi o que você estava procurando?

Richard
fonte
Eu acho que é suficiente recarregar o apache depois de fazer essas alterações?
Jo-Erlend Schinstad
oh - sim ... obrigado Jo-Erland Schinstad
Obrigado Cristopher! Era exatamente isso que eu estava procurando! :)
Adrian K.
Eu adicionei esta linha na seção <Directory> para evitar erros proibidos, espero que a edição seja aceita em breve: Exigir todos os concedidos
Richard
3
Não há necessidade de acrescentar uma barra final no nome alternativo. Força o usuário a digitá-lo estritamente na URL. Nesse caso, Alias ​​/ myportal1 diferente de Alias ​​/ myportal1 /. Observe a barra final ausente.
Gilberto Albino
6

Uma alternativa mais simples é criar um link virtual a partir da raiz do documento. Por exemplo, se a raiz do documento for "/ var / www" (o padrão na maioria dos sistemas Linux), o seguinte comando fará o truque:

sudo ln -s /media/my/web/portal1 /var/www/myportal1

Isso funciona imediatamente - você nem precisa recarregar o servidor Apache.

Erel Segal-Halevi
fonte
1

O Apache é um usuário em seu sistema, assim como você, exceto que ele não pode efetuar o login. Isso significa que o acesso a arquivos é exatamente o mesmo para o Apache e para você. Portanto, primeiro, se o Apache deve servir um diretório em / media / alguma coisa, o Apache deve ter acesso para lê-lo e seus arquivos.

Segundo, para configurar um site que usa esse diretório como casa, você cria arquivos de sites, como / etc / apache2 / sites-available / your-site. Isso faz parte do que é chamado de vhosting. Existem dois tipos diferentes; um baseado no nome (o nome do domínio) e outro baseado no IP. A configuração mais comum é usar vhosts baseados em nome. Você pode ler mais sobre isso aqui: http://httpd.apache.org/docs/2.2/vhosts/

Jo-Erlend Schinstad
fonte
Obrigado por referências. Definitivamente vou cavar isso! :)
Adrian K.
0

Tão simples em duas linhas:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

Depois de

basta editar o arquivo "phpmyadmin.conf"

pico /etc/apache2/conf.d/phpmyadmin.conf

e mude para 'loool' ou qualquer outra coisa :)

Alias /loooool /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>

SetEnvIfNoCase User-Agent "^ZmEu" bad_bot
SetEnvIfNoCase User-Agent "^BackDoorBot" bad_bot
SetEnvIfNoCase user-agent "^BlackWidow" bad_bot 
SetEnvIfNoCase User-Agent "^BotALot" bad_bot

depois de tudo isso recarregar o apache: D

service apache2 reload

tadaaa: D ciao :)

ucefkh
fonte