
브라우저를 통해 제공하려는 파일은 /root/my_folder
(ubuntu 14.04)에 있습니다. 경로를 에서 in /var/www/html
으로 변경한 후 브라우저에서 해당 경로에 액세스하려고 하면 금지된 오류가 발생합니다./root/my_folder
/etc/apache2/sites-available/000-default.conf
Apache 기본 환영 페이지에는 다음과 같이 명시되어 있습니다.
기본적으로 Ubuntu는 웹 브라우저를 통해 /var/www, public_html 디렉터리(활성화된 경우) 및 /usr/share(웹 응용 프로그램용)에 있는 파일을 제외한 모든 파일에 대한 액세스를 허용하지 않습니다. 사이트가 다른 곳에 있는 웹 문서 루트(예: /srv)를 사용하는 경우 /etc/apache2/apache2.conf에서 문서 루트 디렉터리를 화이트리스트에 추가해야 할 수도 있습니다.
에서 내 루트 디렉터리를 어떻게 화이트리스트에 추가합니까 /etc/apache2/apache2.conf
? 어떤 구문을 사용합니까?
답변1
디렉토리 에서는 서비스를 제공할 수 없으며 그렇게 해서도 안 됩니다 /root
. root
Apache가 user로 실행되는 동안에는 해당 사용자 만 액세스할 수 있습니다 www-data
. 오류 로그를 살펴보면 Apache가 권한에 대해 불평하는 것을 볼 수 있습니다.
tail -f /var/log/apache2/error.log
root
어쨌든 시스템에서 사용자 와 작업하는 경우에는 /var/www/html
이미 권한이 있으므로 내부에서 직접 파일을 업로드해야 합니다.
답변2
가장 쉬운 해결 방법은 아마도 /var/www/html
다음과 같이 해당 디렉토리를 바인드 마운트하는 것입니다.
mount -t none -o bind,ro /root/my_folder /var/www/html
그런 다음 Apache를 시작하십시오.
참고: Fedora Linux 배포판과 systemd를 사용하는 다른 배포판에서는 일부 보안 기능이 기본적으로 활성화되어 있기 때문에 일부 서비스는 시작된 후 마운트가 수행된 것을 볼 수 없습니다. 자세한 내용은 다음을 참조하세요.관리자를 위한 systemd, 12부. 또한 SELinux를 사용하는 경우 파일에는 예를 들어 적절한 레이블이 있어야 합니다 public_content_t
.