Hoy intento instalar httpd y mysql en mi PC fedora 14. Eso funciona bien. Después de esto, intento crear una carpeta public_html en el directorio de usuarios y permitir que php acceda a esa carpeta. Para eso soy siguiendo este enlace . Ahora cuando estoy tratando de acceder a esa carpeta se muestra forbidden
mensaje en mi navegador. Para evitar esto busqué en Google mi problema que me dio este enlace . Cuando intento setsebool -P httpd_enable_homedirs=1
Ahora mi navegador muestra Internal server error
.
Mi registro de errores
[Tue Apr 01 09:01:28 2014] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Apr 01 09:01:28 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Apr 01 09:01:28 2014] [notice] Digest: generating secret for digest authentication ...
[Tue Apr 01 09:01:28 2014] [notice] Digest: done
[Tue Apr 01 09:01:30 2014] [notice] Apache/2.2.17 (Unix) DAV/2 PHP/5.3.8 configured -- resuming normal operations
[Tue Apr 01 09:08:45 2014] [crit] [client 127.0.0.1] configuration error: couldn't perform authentication. AuthType not set!: /~BON4/
[Tue Apr 01 09:08:52 2014] [crit] [client 127.0.0.1] configuration error: couldn't perform authentication. AuthType not set!: /~BON4/HH.php
[Tue Apr 01 09:08:52 2014] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico
error_log
de Apache HTTPd?/var/log/httpd/error_log
.Respuestas:
Ponga algunos contenidos (como index.php o index.html) en el directorio public_html que no esté de acuerdo con su configuración de servidor web. Y sí, sería útil si proporciona registros de errores.
fuente
Tratar
Parece ser un error de permiso con la carpeta que creó en el directorio web.
fuente
El enlace que siguió se especificó tanto para la versión 2.2 como para la 2.4; Sospecho que necesitas quitar
Require all granted
desde/etc/httpd/conf.d/userdir.conf
Como Fedora 14 se envía con Apache 2.2.También recomendaría leer http://httpd.apache.org/docs/2.2/mod/mod_userdir.html para una mejor descripción de mod_userdir en apache 2.2
fuente
El sitio web que desea ejecutar debe ser de la forma en que se mencionó en su enlace (usando selinux y en / home / user / public_html). Si ese no es el caso, por favor desactive el selinux e intente poner algo de contenido en / var / www / html y también comente el módulo userdir. Y si desea configurarlo en / home / user / public_html, considere la entrada vhosts (virtualhost) en su archivo httpd.conf. Debido a que en el caso de selinux habilitado, debe establecer las políticas qué permitir y qué no.
Configuración de Vhost:
Como los permisos predeterminados solo nos permiten, el usuario 'demo', navegar por nuestra carpeta de inicio, empecemos por darle a Apache acceso a esta carpeta también:
chmod 755 / home / demo
Bien, ahora necesitamos crear la estructura de directorios para nuestros sitios.
En su directorio de inicio cree una carpeta 'public_html':
cd ~ mkdir public_html
Ahora, para cada dominio que queremos alojar, cree una carpeta con un conjunto estándar de subcarpetas:
mkdir -p public_html / domain1.com / {public, private, log, cgi-bin, backup}
Eso creará las carpetas pública, privada, log, cgi-bin y backup para cada uno de nuestros dominios (domain1.com).
index.html
El contenido de la carpeta pública depende completamente de usted, pero para este ejemplo usaré un archivo HTML muy simple para que podamos verificar que los hosts virtuales funcionan correctamente:
Para cada dominio, vamos a crear el archivo index.html:
vi public_html / domain1.com / public / index.html
Continuemos y descomentemos el NameVirtualHost genérico en la configuración de Apache.
Navegue hasta el directorio / etc / httpd / conf y abra el archivo de configuración principal de Apache (httpd.conf):
sudo vi httpd.conf
Ahora podemos reiniciar Apache para iniciar los cambios:
sudo /etc/init.d/httpd restart
Hosts virtuales personalizados
Hemos configurado lo básico y ahora estamos listos para agregar nuestros propios hosts virtuales para que podamos comenzar a servir a nuestros dominios.
Vamos a crear el vhost para domain1:
sudo vi /etc/httpd/conf/httpd.conf
En la parte inferior del archivo httpd.conf, necesitamos agregar lo siguiente:
# Correo electrónico del administrador, Nombre del servidor (nombre de dominio) y cualquier alias ServerAdmin [email protected] NombreDeDominio domain1.com ServerAlias www.domain1.com
# Document Root (donde se encuentran los archivos públicos) DocumentRoot /home/demo/public_html/domain1.com/public # Ubicaciones de archivos de registro personalizadas AdvertLevel advertir ErrorLog /home/demo/public_html/domain1.com/log/error.log CustomLog /home/demo/public_html/domain1.com/log/access.log combinado
OK bien, ahora necesitamos recargar Apache:
sudo /etc/init.d/httpd recargar
Ahora navega a tu sitio:
fuente