Host virtual en ubuntu 13.10 y apache 2.4.6
apache-config ubuntu-13.10 (8)
Ejecutar:
vim se puede cambiar con su editor de texto favorito como nano, pico y etc.
vim /etc/apache2/apache2.conf
Archivo original:
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share/>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Cambiar ninguno a todos
Editar archivo:
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
Options FollowSymLinks
AllowOverride All
Require all denied
</Directory>
<Directory /usr/share/>
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
tengo el siguiente problema
Mi archivo de hosts es el siguiente:
127.0.0.1 localhost
127.0.1.1 barbala4o-HP-ProBook-4530s
127.0.1.1 mysite.localhost
Mi archivo en /etc/apache2/sites-available/mysite.localhost.conf
es el siguiente:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mysite.localhost
DocumentRoot /var/www/mysite
<Directory /var/www/mysite/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/mysite-error.log
CustomLog /var/log/apache2/mysite-access.log common
</VirtualHost>
Después de hacer sudo a2ensite mysite.localhost.conf
y reiniciar apache en mysite.localhost / y solo en localhost obtengo lo siguiente (como incluir un directorio sin un archivo de índice):
Index of /
[ICO] Name Last modified Size Description
[DIR] apache_logs/ 2013-09-24 10:15 -
[DIR] mysql/ 2013-10-22 10:05 -
[DIR] tools/ 2013-10-22 10:05
Y en cualquier otra carpeta en el directorio /var/www/
como prueba cuando ingreso localhost/test
lugar de cargar el archivo index.php
, se muestra:
Not Found
The requested URL /adlantic was not found on this server.
Apache/2.4.6 (Ubuntu) Server at localhost Port 80
Si hago sudo a2dissite mysite.conf
y reinicio apache todo se carga correctamente. Supongo que el problema está en algún lugar del mysite.localhost.conf
pero no puedo encontrar dónde. ¿Algunas ideas? 10x
Encontré el problema después de 3 horas de experimentar. Aparentemente en el nuevo Ubuntu 13.10 por alguna estúpida razón, el archivo conf para el host virtual tiene que parecerse a esto:
<VirtualHost mysite.localhost>
ServerAdmin [email protected]
ServerName mysite.localhost
ServerAlias mysite.localhost
# Indexes + Directory Root.
DocumentRoot /var/www/mysite/public_html
<Directory /var/www/mysite/public_html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Logfiles
ErrorLog /var/log/apache2/mysite-error.log
CustomLog /var/log/apache2/mysite-access.log common
</VirtualHost>
Aparentemente los tipos que desarrollaron Ubuntu 13.10 decidieron que ya no es valioso usar
<VirtualHost *:80>
al hacer un host virtual y en su lugar tiene que ser
<VirtualHost mysite.localhost>
mezclado con especificar específicamente DirectoryIndex. Esto solucionó el problema que tenía y ahora las cosas están funcionando (con suerte, como deberían, eventualmente puede aparecer algo) Aparentemente, el archivo de configuración de apache es diferente.
Para Apache 2.4.6
en Ubuntu 13.10
,
Usted tendrá
/etc/apache2/apache2.conf
/etc/apache2/sites-available/000-default.conf
Y
/etc/apache2/sites-enabled/000-default.conf
apunta a /etc/apache2/sites-available/000-default.conf
Ahora, edite apache2.conf
y agregue
<Directory /home/my_site/public_html/>
#YOUR SETTINGS
</Directory>
y edite sites-available/000-default.conf
y cambie <VirtualHost *:80>
a <VirtualHost localhost:80>
para hacer que apache escuche localhost (en el puerto 80) para su configuración predeterminada.
Ahora para hacer que mysite.localhost
funcione, mysite.localhost
a sites-available/000-default.conf
<VirtualHost mysite.localhost:80>
ServerName mysite.localhost
ServerAdmin [email protected]
DocumentRoot /home/my_new_site_public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Ahora edite su /etc/hosts/
y cambie la IP
de mysite.localhost
de 127.0.1.1
a 127.0.0.1
Ahora visite http://mysite.localhost
y http://localhost
:)
Para Kubuntu 14.04 y Apache 2.4.7
Después de probar las sugerencias anteriores, y aún toparse con problemas de permisos, un "chmod 755 $ HOME" funcionó para mí. No debe ser utilizado en un sistema multiusuario.
Solo una nota para las personas que se quitan el pelo sobre este tema, tendrás que usar sudo para que todas estas configuraciones tengan lugar si estás usando una instancia de AWS.
sudo a2ensite example.com
Tenga en cuenta que necesita hacer esto incluso para reiniciar apache. Si no ve sus cambios teniendo lugar, este es probablemente el culpable.
sudo service apache2 restart
Tuve un problema similar, pero ninguna de estas publicaciones anteriores funcionó para mí. Más tarde, leí y revisé todos y cada uno de los archivos de configuración de Apache y PHP.
Podría descubrir que en apache2.conf (en ubuntu 13.10) hay una bandera llamada
HostnameLookups off
Por defecto esto se desactivará, cambié esto a
HostnameLookups on
Al hacerlo, Apache comenzó a conectar mis entradas de host y vhost config bien.
También a continuación está mi archivo Vhost real. que solía hacerlo funcionar
Por supuesto, también recomiendo agregar Require all granted
en la directiva Vhost.
<VirtualHost *:80>
ServerName test.yoursite.domain.in
DocumentRoot path_to_code_base/public
<Directory path_to_code_base/public>
Options -Indexes
Require all granted
DirectoryIndex index.php
AllowOverride All
</Directory>
ErrorLog /path_to_code_base/logs/error.log
LogLevel warn
CustomLog /path_to_code_base/logs/access.log combined
</VirtualHost>
Estoy publicando esto para ayudar a otros que no quieren perder tiempo en degradar Ubuntu a 13.04 desde 13.10.
Sí, no veo esto en ningún blog, tampoco pude entender cuál es realmente el significado de hostnameLookups.
Espero que esto ayude .
Ubuntu 13.10 y las variantes se han movido a Apache 2.4. Apache 2.4 quiere que los archivos de configuración de host virtual habilitados terminen en .conf de manera predeterminada.
Solución
Ahora, para corregir este problema, hay dos métodos que puede usar para lograr el mismo resultado.
La primera solución y la solución simple es agregar una extensión .conf a todo su host virtual. El nuevo Apache 2.4 lee cada host virtual en el directorio de sitios disponibles con la extensión .conf delineada en el nuevo archivo de configuración de Apache 2.4.
La segunda solución es eliminar la extensión .conf en el archivo de configuración de Apache 2.4 ubicado en /etc/apache2/apache2.conf
En el antiguo archivo Apache 2.2, el archivo .conf tenía un Incluir sitios habilitados / mientras que el nuevo archivo .conf tiene
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Cambia esa línea para leer:
# Include the virtual host configurations:
IncludeOptional sites-enabled/
Los resultados: el comando a2ensite yourdomain ahora se ejecuta como se esperaba. Si estás usando el segundo método; sus archivos de host virtual no necesitan tener la extensión .conf.
Note: Configuration file is "/etc/apache2/apache2.conf" in new Apache, so please copy document root path and other configurations from "/etc/apache2/sites-available/000-default.conf" to "/etc/apache2/apache2.conf"
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mysite.localhost
DocumentRoot /var/www/mysite
<Directory /var/www/mysite/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/mysite-error.log
CustomLog /var/log/apache2/mysite-access.log common
</VirtualHost>
En mi caso, acabo de reemplazar <VirtualHost *:80>
a <VirtualHost mysite.localhost:80>
después de mucho ensayo y error
Espero que esto ayude.
Saludos,