이전에 누군가가 이에 대해 질문/답변한 적이 있을 것으로 확신하지만 내 검색이 별로 도움이 되지 않았습니다.
내 Linux 상자(LM13)에 Eclipse IDE가 설치되어 있고 @에 'workspace' 폴더가 있습니다.
/home/user/projects/workspace
Apache를 설치하고 설정했으며 웹 루트 아래 어딘가에 폴더가 있는 다양한 가상 호스트와 작업하고 있습니다./var/www/...
내가 겪고 있는 문제는 Eclipse Workspace에서 프로젝트에 대해 구성한 가상 호스트가 Apache에서 액세스할 수 없어서 "403 - 금지됨 - 액세스 권한이 없습니다/에 대한 권한이 없습니다"라는 메시지가 표시된다는 것입니다. 이 서버."
/var/www/freelance/project
먼저 '일반' 가상 호스트 구성을 시도한 다음 Eclipse 작업 공간의 프로젝트 폴더에 연결된 웹 루트 @에서 SymLink를 사용해 보았습니다.
섹션 아래의 옵션 지시문에 대해 FollowSymLinks
및 를 모두 시도했지만 여전히 내 브라우저에서 Apache를 사용하여 액세스할 수 없습니다!SymLinksIfOwnerMatch
<directory ...>
이 설정을 작동시키는 방법을 설명해 줄 수 있는 사람이 있나요? 아직 사용을 시도하지 않았 거나 Apache에 대한 액세스를 허용하도록 mod_userdir
내 폴더에 대한 파일 권한을 설정한 적이 없습니다 . 둘 중 어느 것도 선호되지 않는 것 같았습니다. /home
다른 방법이 있나요?
내 가상 호스트 구성은 다음과 같습니다.
# 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>
업데이트
출력 ls -alFd ~/Projects/workspace/iagd
:-
drwxr-xr-- 6 user www-data 4096 Aug 22 14:12 IAGD/
동일한 출력 /home/user
:-
drwx------ 74 user user 20480 Aug 23 07:30 /home/user/
답변1
홈 디렉토리의 하위 디렉토리에 대한 Directory 지시문을 추가해야 합니다. Apache가 심볼릭 링크에 액세스할 때 심볼릭 링크 포인터가 아닌 심볼릭 링크가 가리키는 실제 디렉터리에 액세스하게 됩니다.
따라서 필요한 두 가지가 있습니다.
첫째, 운영 체제 권한입니다. 귀하의 디렉터리는 Apache 사용자가 읽을 수 있어야 합니다. 즉, 그 위의 계층 구조에 있는 모든 디렉터리에는 Apache 사용자에 대해 실행 비트가 설정되어 있어야 합니다.
둘째, Apache 구성입니다. Apache는 해당 디렉토리에서 읽어도 괜찮다는 말을 들어야 합니다. 일반적으로 Apache가 제한된 디렉토리 계층 구조만 읽을 수 있도록 제한하고 싶을 것입니다. 그렇지 않으면 모든 웹 사용자가 예를 들어 비밀번호 파일을 보거나 모든 사람의 홈 디렉토리를 탐색할 수 있습니다. 따라서 웹루트 계층 외부에 있는 디렉터리에 액세스하려면 Apache에 이를 허용하도록 지시하는 지시문을 추가해야 합니다. 다음과 같이 보일 것입니다:
# 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>