Estoy seguro de que alguien ha preguntado/respondido esto antes, pero mi búsqueda no me ha ayudado mucho...
Tengo Eclipse IDE instalado en mi máquina Linux (LM13) con la carpeta 'espacio de trabajo' ubicada en @
/home/user/projects/workspace
Tengo Apache instalado y configurado, trabajando con varios vhosts, todos los cuales tienen sus carpetas en algún lugar debajo de la raíz web./var/www/...
El problema que tengo es que Apache no puede acceder al vhost que configuré para un proyecto en mi espacio de trabajo de Eclipse, por lo que me muestra el mensaje "403 - Prohibido - No tienes permiso para acceder a / en Este servidor."
Primero probé una configuración de vhost "normal", luego intenté usar un SymLink en la raíz web @
/var/www/freelance/project
vinculado a la carpeta del proyecto en el espacio de trabajo de Eclipse.
Probé ambos FollowSymLinks
y SymLinksIfOwnerMatch
la directiva de opciones en la <directory ...>
sección, ¡pero todavía no puedo acceder a ella con Apache en mi navegador!
¿Alguien puede explicarme cómo puedo hacer que esta configuración funcione, por favor? Todavía no he intentado usarlo mod_userdir
ni configurar los permisos de archivos en mi /home
carpeta para permitir el acceso a Apache, ya que ninguno de estos parecía favorable. ¿Hay otra manera?
Aquí está mi configuración de vhost:
# Apache VHOST config for IAGD
<VirtualHost my.iagd:80>
NameVirtualHost my.iagd:80
ServerAlias *.my.iagd
# ServerAdmin username@domain
DocumentRoot /var/www/freelance/iagd
<Directory /var/www/freelance/iagd/>
Options FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Define custom log level
LogLevel warn
# Set up custom log files
ErrorLog ${APACHE_LOG_DIR}/iagd/error.log
CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined
</VirtualHost>
Actualizar
Salida de ls -alFd ~/Projects/workspace/iagd
: -
drwxr-xr-- 6 user www-data 4096 Aug 22 14:12 IAGD/
Salida para lo mismo en /home/user
: -
drwx------ 74 user user 20480 Aug 23 07:30 /home/user/
Respuesta1
Deberá agregar una directiva de directorio para el subdirectorio de su directorio de inicio. Cuando Apache accede a un enlace simbólico, se accederá al directorio real al que apunta el enlace simbólico, no al puntero del enlace simbólico.
Entonces, hay dos cosas que necesitas:
En primer lugar, los permisos del sistema operativo. Su directorio debe ser legible para el usuario de Apache, lo que significa que todos los directorios en la jerarquía superior deben tener el bit de ejecución configurado para el usuario de Apache.
En segundo lugar, la configuración de Apache. Es necesario decirle a Apache que puede leer desde ese directorio. Por lo general, querrá restringir a Apache para que solo pueda leer una jerarquía de directorios limitada; de lo contrario, sería posible que cualquier usuario web, por ejemplo, pueda ver su archivo de contraseñas o navegar por los directorios de inicio de todos. Entonces, cuando desee acceder a un directorio que está fuera de la jerarquía webroot, debe agregar una directiva que le indique a Apache que lo permita. Se verá algo como esto:
# Apache VHOST config for IAGD
<VirtualHost my.iagd:80>
NameVirtualHost my.iagd:80
ServerAlias *.my.iagd
# ServerAdmin username@domain
DocumentRoot /var/www/freelance/iagd
<Directory /var/www/freelance/iagd/>
Options FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
<Directory /home/user/projects/workspace>
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Define custom log level
LogLevel warn
# Set up custom log files
ErrorLog ${APACHE_LOG_DIR}/iagd/error.log
CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined
</VirtualHost>