아파치 웹 서버는 Apache 서버 및 PHP가 설치된 Linux 서버에서 실행됩니다. 그 서버에서 Windows 서버의 특정 디렉토리는 /mnt/some_directory/
처럼 마운트됩니다. 내 자신의 사용자 계정을 사용하여 WinSCP 또는 SSH로이 디렉토리를 탐색 할 수 있습니다.아파치/PHP에 탑재 된 디렉토리에 대한 읽기/쓰기 액세스 허용
php -r "print_r(file_get_contents('/mnt/some_directory/file_name.txt'));"
을 해당 파일의 내용을 참조하십시오
나는 또한 SSH에서 다음을 수행 할 수 있습니다.
웹 사이트에서 사용하는 데이터베이스에서 가져 오기 위해 파일을 읽고 해당 디렉토리에서 구문 분석해야합니다. 그러나 웹 사이트에서 fopen 또는 file_get_contents가 발생하면 권한이 거부되었습니다.
웹 서버에 대한 액세스가 제한되어 있고 (* nix 및 Apache 구성에 대한 제한된 지식이 있지만)이 문제를 해결해야하는 관리자도이 지식이 부족하므로이 작업을 해결해야합니다. 그 이유는 무엇입니까? 나는 여기서 묻고있다.
관리자가 수행 한 작업은 마운트 된 디렉토리의 그룹 및 소유권을 "apache"(httpd 프로세스가 실행중인 사용자)로 설정하는 것입니다. 그러나 그것은 도움이되지 않았습니다.
웹 루트 외부의 파일에 대한 액세스는 기본적으로 허용되지 않습니다. /mnt/some_directory/
에 대해 httpd.conf에 DIRECTORY 지시문을 설정하는 것으로 충분합니까? 아니면 할 일이 있습니까?
당신은/var 같은 디렉토리를 링크 할 수 있습니다/www/linkedtomntsomething? 작동하는지 정말로 모르겠다. (지금 테스트 할 수 없다.) –
Selinux 권한 문제 일 수있다. –
감사합니다. 'ps -ZC httpd'에 따르면 httpd 프로세스는 "unconfined_u"에 의해 실행되므로 Selinux 사용자 매핑은 "apache"를 "unconfined_u"로 매핑합니다. 아파치에 대해이 매핑을 변경하면 저장 되겠습니까? –