이 질문을 여러 번 받았지만 완전히 막혔습니다. 내 /var/www/html
폴더에는 다음이 포함됩니다.
mbfr/
|-- index.html
|
school/
|-- index.html
exemple.com
나는 디렉토리를 제공 mbfr
하고 디렉토리를 exemple.com/school
제공하고 싶습니다 school
. 이것은 내 VirtualHosts
구성 파일입니다.
<VirtualHost *:80>
ServerName exemple.com
ServerAdmin [email protected]
DocumentRoot /var/www/html
Alias / /mbfr
Alias /school /school
<Directory "/var/www/html/school">
Order allow,deny
Allow from all
Require all granted
</Directory>
<Directory "/var/www/html/mbfr">
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
exemple.com
잘 작동하지만 exemple.com/school
나에게 준다
Forbidden
You don't have permission to access /school/ on this server.
답변1
*/school 폴더에 올바른 권한을 설정하셨나요? 최근 OS 업그레이드 후 /var/www/html에 폴더를 다시 설치한 후에도 동일한 403 메시지를 받았습니다. 개별 파일에 대한 권한은 모두 괜찮은 것으로 나타났습니다. 그러나 해당 폴더에서는 소유자로서 읽기, 쓰기 및 실행 권한을 가진 유일한 사람이었습니다. 그룹 및 기타에도 읽기 및 실행 권한이 필요하므로 간단한 접근 방식이 chmod a+rx
나에게 도움이 되었습니다. 확인해 볼 가치가 있을 수도 있습니다.
답변2
아래 내 대답은 실제 솔루션이 아니라 httpd 주변의 보안 적용을 제거하고 그 효과를 예측할 수 없는 해결 방법이라는 점을 이해하시기 바랍니다. 하지만 훌륭하고 영구적인 해결책이 무엇인지 알아내기 전까지는 효과가 있습니다.
서버의 루트 사용자로 다음 명령을 실행합니다.
setenforce 0
service httpd start
이 setenforce 0
명령은 Apache를 SELinux 허용 모드로 전환합니다. 저는 네트워크 관리자도 아니고 Apache에 대한 기본 지식도 없기 때문에 이 작업이 어떤 영향을 미치는지 모르겠습니다. 어쩌면 누군가가 우리 둘 모두를 깨달을 수 있을지도 모릅니다. 내 웹 서버는 중요하지 않기 때문에 전혀 신경 쓰지 않습니다. 서버를 처음부터 설치해야 한다면 괜찮습니다. 그러나 귀하의 상황은 다를 수 있습니다. 그러니 제 조언을 조금이라도 받아들이십시오. 그것은 큰 것입니다.