Tenho certeza de que alguém já perguntou/respondeu isso antes, mas minha pesquisa não me ajudou muito...
Eu tenho o Eclipse IDE instalado em minha caixa Linux (LM13) com a pasta 'workspace' localizada em @
/home/user/projects/workspace
Eu tenho o Apache instalado e configurado, trabalhando com vários vhosts, todos com suas pastas em algum lugar sob a raiz da web/var/www/...
O problema que estou tendo é que o vhost que configurei para um projeto no meu Eclipse Workspace não pode ser acessado pelo Apache, e por isso me dá o "403 - Proibido - Você não tem permissão para acessar/ligar este servidor."
Primeiro tentei uma configuração vhost 'normal', depois tentei usar um SymLink no web-root @
/var/www/freelance/project
vinculado à pasta do projeto no espaço de trabalho do Eclipse
Eu tentei ambos FollowSymLinks
e SymLinksIfOwnerMatch
para a diretiva de opções na <directory ...>
seção, mas ainda não consigo acessá-la com o Apache no meu navegador!
Alguém pode me explicar como posso fazer essa configuração funcionar, por favor? Ainda não tentei usar mod_userdir
ou definir as permissões de arquivo em minha /home
pasta para permitir acesso ao Apache, pois nenhuma delas parecia favorável. Existe outra maneira?
Aqui está minha configuração do 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>
Atualizar
Saída de ls -alFd ~/Projects/workspace/iagd
: -
drwxr-xr-- 6 user www-data 4096 Aug 22 14:12 IAGD/
Saída para o mesmo em /home/user
: -
drwx------ 74 user user 20480 Aug 23 07:30 /home/user/
Responder1
Você precisará adicionar uma diretiva Directory para o subdiretório do seu diretório inicial. Quando o Apache acessa um link simbólico, é o diretório real para o qual o link simbólico aponta que será acessado, não o ponteiro do link simbólico.
Então, há duas coisas que você precisa:
Em primeiro lugar, as permissões do sistema operacional. Seu diretório precisa ser legível para o usuário Apache, o que significa que todos os diretórios na hierarquia acima dele precisam ter o bit de execução definido para o usuário Apache.
Em segundo lugar, a configuração do Apache. O Apache precisa ser informado de que não há problema em ler nesse diretório. Normalmente, você desejará restringir o Apache para que apenas possa ler uma hierarquia de diretórios limitada - caso contrário, seria possível para qualquer usuário da web, por exemplo, ver seu arquivo de senha ou navegar pelos diretórios pessoais de todos. Então, quando você quiser acessar um diretório que está fora da hierarquia webroot, você precisa adicionar uma diretiva informando ao Apache para permitir isso. Vai parecer algo assim:
# 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>