Apache 2.2에서 이 작업을 수행하는 방법을 알고 있지만 Apache 2.4에서 문서 루트를 어떻게 변경합니까? 저는 Virtualbox VM에서 Apache 서버로 Debian 8.20을 실행하고 호스트 OS로 Ubuntu 15.04를 실행하고 있습니다.
/ooo-default.conf의 문서 루트를 /home/www로 변경해 보았습니다.
또한 chmod -R 755 /home/www도 해야 한다고 생각합니다. 디렉토리 내부에는 Firefox에서 가상 머신의 IP를 로드하려고 할 때마다 404가 표시됩니다.
다음은 Apache 오류 로그의 실행입니다.
[Wed Oct 28 20:05:38.708080 2015] [mpm_prefork:notice] [pid 5884] AH00163: Apache/2.4.10 (Ubuntu) configured -- resuming normal operations
[Wed Oct 28 20:05:38.708142 2015] [core:notice] [pid 5884] AH00094: Command line: '/usr/sbin/apache2'
[Wed Oct 28 20:05:52.281645 2015] [core:error] [pid 5887] (13)Permission denied: [client 127.0.0.1:46927] AH00035: access to /index.php denied (filesystem path '/home/www/index.php') be$
[Wed Oct 28 20:06:37.527726 2015] [mpm_prefork:notice] [pid 5884] AH00169: caught SIGTERM, shutting down
이제 브라우저에서 VM에 연결하려고 하면 시간 초과가 발생합니다.
답변1
DocumentRoot를 설정하지 않는 이유는 무엇입니까 /etc/apache2/apache2.conf
? 이는 모든 웹 호스트에 대해 동일합니다. 설정했다면 생성된 날에도 설정 000-default.conf
해야 한다고 가정합니다 ./etc/apache2/sites-enabled/
올바른 소유자 및 권한을 설정하려면 어떤 사용자가 서비스를 실행하고 있는지 알아야 합니다. 어쨌든 읽기 권한이면 충분할 것 같아요
그 이유는 SElinux일 수도 있고,
SELinux는 프로그램을 제한된 리소스로 제한하는 데 사용되는 커널(LSM) 향상 기능인 MAC(Mandatory Access Control) 시스템입니다.
보안 정책 중 하나는 apache2 사용자가 해당 폴더 아래에 없는 폴더를 읽지 못하도록 방지하는 것이며 /var/www/
비활성화하는 것은 권장되지 않습니다.하지만 그건 가능해, 가상 머신(테스트 개발 제품?)을 어떻게 사용할 것인지에 따라 다릅니다.
답변2
단서는 여기에 있다
[Wed Oct 28 20:05:52.281645 2015] [core:error] [pid 5887] (13)Permission denied: [client 127.0.0.1:46927] AH00035: access to /index.php denied (filesystem path '/home/www/index.php')
Apache가 에 액세스하거나 실행할 수 없습니다 . Apache에 대한 권한이 충분하고 읽기 가능한지 index.php
확인하십시오 ./home
/home/www
index.php
chmod a+rx / /home /home/www
chmod a+r /home/www/index.php
또한 Apache 구성에서 액세스 권한을 확인해야 합니다. <Directory>
또는 지시어를 찾아 <Location>
새 문서 루트와 일치하는지 확인하세요. 필요에 따라 Apache를 다시 시작하십시오.
그래도 문제가 해결되지 않으면 SELinux를 비활성화하여 이것이 문제인지 테스트해 보십시오. 그렇다면 Apache에 대한 액세스 제한을 쉽게 완화하는 방법을 배울 수 있습니다.
답변3
단계는 다음과 같습니다.
- 000-default.conf에서 문서 루트를 변경합니다.
- 아파치 2 다시 시작
감사해요