¿Cómo agregar un directorio personalizado, por ejemplo, phpmyadmin?

11

Como mi conocimiento sobre apachees mínimo. Me gustaría dejar que crezca para tener más experiencia con LAMP. Mi gran pregunta para hoy es:

¿Cómo agregar un directorio personalizado al servidor web? (por ejemplo, phpmyadmin)?

Mi objetivo es poder crear direcciones personalizadas con sitios web personalizados dentro. Supongamos que tengo mi directorio personalizado en: /media/my/web/portal1y me gustaría cargarlo cuando el cliente llama

http://localhost/myportal1 at webbrowser. 

¿Podría darme una lista de pasos con pocas palabras de explicación?

Adrian K.
fuente

Respuestas:

26

Edite su archivo de configuración de Apache y agregue una directiva de alias . Por ejemplo, usemos el archivo predeterminado .

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

Haga su alias agregando una sección dentro de la directiva 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>

Guardar y reiniciar: sudo /etc/init.d/apache2 restart

O para la otra referencia:

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

Y los contenidos ...

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>

Guardar y reiniciar: sudo /etc/init.d/apache2 restart

Agregue más directivas dentro de las directivas del Directorio , como

Options Indexes FollowSymLinks 

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

¿Eso que estabas buscando?

Ricardo
fuente
¿Creo que es suficiente recargar Apache después de hacer esos cambios?
Jo-Erlend Schinstad
oh - sí ... gracias Jo-Erland Schinstad
Gracias cristopher! ¡Eso es justo lo que estaba buscando! :)
Adrian K.
Agregué esta línea en la sección <Directory> para evitar errores prohibidos, espero que la edición se acepte pronto: Requerir todo concedido
Richard
3
No es necesario agregar una barra diagonal al nombre del alias. Obliga al usuario a escribirlo estrictamente en la URL. En tal caso, Alias ​​/ myportal1 que no sea Alias ​​/ myportal1 /. Tenga en cuenta que falta la barra diagonal final.
Gilberto Albino
6

Una alternativa más simple es crear un enlace suave desde la raíz del documento. Por ejemplo, si la raíz del documento es "/ var / www" (el valor predeterminado en la mayoría de los sistemas Linux), el siguiente comando hace el truco:

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

Esto funciona de inmediato: ni siquiera necesita volver a cargar el servidor Apache.

Erel Segal-Halevi
fuente
1

Apache es un usuario en su sistema, al igual que usted, excepto que no puede iniciar sesión. Eso significa que el acceso a los archivos es exactamente el mismo para Apache que para usted. Entonces, primero, si Apache debe servir un directorio en / media / something, entonces Apache debe tener acceso para leerlo y sus archivos.

En segundo lugar, para configurar un sitio que utiliza este directorio como su hogar, crea archivos de sitios, como / etc / apache2 / sites-available / your-site. Esto es parte de lo que se llama vhosting. Hay dos tipos diferentes; uno basado en el nombre (el nombre de dominio) y uno basado en IP. La configuración más común es usar vhosts basados ​​en nombres. Puede leer más sobre eso aquí: http://httpd.apache.org/docs/2.2/vhosts/

Jo-Erlend Schinstad
fuente
Gracias por las referencias. Definitivamente voy a cavar en esto! :)
Adrian K.
0

Tan simple en dos líneas:

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

Después

solo edite el archivo "phpmyadmin.conf"

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

y cámbielo a 'loool' o lo que sea :)

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

Después de todo esto, vuelva a cargar Apache: D

service apache2 reload

tadaaa: D ciao :)

ucefkh
fuente