내 홈 디렉토리의 폴더를 가리 키도록 Apache 구성을 변경했습니다.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/dbugger/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dbugger/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
나는 심지어 /home/dbugger/html
777을 허락했다. 그러나 나는 여전히 http://localhost
“403 Forbidden” 에서 같은 에러 메시지를 받는다 .
내가 무엇을 놓치고 있습니까?
답변
이것은 나를 위해 일했다
<Directory />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
Allow from all
</Directory>
중요한 것은 변화하는 것이 었습니다
Order allow, deny
에
Require all granted
답변
userdir
모듈 활성화 :
sudo a2enmod userdir
사용자 디렉토리에서 PHP 실행을 활성화하십시오.
sudo nano /etc/apache2/mods-available/php5.conf
(또는 php7.0을 사용하는 경우)
sudo nano /etc/apache2/mods-available/php7.0.conf
이 부분을 주석 처리하십시오 ( #
각 줄의 시작 부분에 입력 ).
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>
Ctrl+ X를 눌러 저장
디렉토리 목록을 활성화하십시오.
sudo nano /etc/apache2/apache2.conf
이거 추가 해봐:
<Directory /home/*/public_html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Ctrl+ X를 눌러 저장
아파치를 다시 시작하십시오 ( sudo
여기에서도 필요함).
sudo service apache2 restart
이제 PHP 파일을 /home/yourname/public_html
디렉토리에 넣고
http://localhost/~yourname
웹 브라우저에서 이동 하십시오.
답변
Apache는 user로 실행됩니다 www-data
. 집에 대한 실행 권한이 없으면 아파치는 파일을 읽을 수 없습니다.
집의 그룹을 www-data
다음으로 변경하십시오 .
chgrp www-data /home/dbugger
그리고 홈 디렉토리를 통과 할 수있는 권한 만 부여하십시오.
chmod g+x /home/dbugger
다음과 /home/dbugger/html
같은 퍼미션을 제한 할 수도 있습니다 .
chgrp www-data /home/dbugger/html
chmod 750 /home/dbugger/html
답변
홈 디렉토리를 사용하여 개발 환경을 호스팅하려는 경우 최소한 일부 응용 프로그램에 대한 쓰기 권한이 필요한 경우에는 권한을 변경할 필요가 없습니다. 아파치 mod_userdir 모듈이 필요 하고 가상 호스트를 사용하기 위해 http : //domain.local/~user_name/dir_name/ * 와 같이 / home / user_name / public_html / *에 액세스 할 수 있습니다. mod_userdir 모듈을 사용하려면 sym을 작성해야합니다. 이 같은 링크 :
$ sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/
$ sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/
$ sudo service apache2 restart