이 문제는 며칠 동안 나를 괴롭혔습니다. 저는 Raspberry Pi에서 Apache, WSGI 및 django를 사용하고 있습니다. 운영체제는 라즈비안입니다.
아파치에서 발생한 이 오류를 제외하고는 모든 것이 정상입니다.
[error] [client 127.0.0.1] Target WSGI script not found or unable to stat: /home/pi/EZ_Green/apache/ems_gateway_django.wsgi
내 구성 파일은 다음과 같습니다. 매우 간단합니다.
WSGIDaemonProcess ems.ezgreenbuildings.com processes=1 maximum-requests=100 threads=10
WSGIScriptAlias / /home/pi/EZ_Green/apache/ems_gateway_django.wsgi
파일 경로는 확실히 전체 경로입니다. 그래서 파일이 존재합니다. 그런 다음 Apache 서버 프로세스에 파일에 액세스할 수 있는 권한이 없다고 생각하여 wsgi 파일의 모드를 777로 변경했습니다. 하지만 여전히 동일한 오류가 보고됩니다.
나는 한동안 검색하고 여러 가지 방법을 시도했습니다.
- wsgi 파일을 '/var/www'와 같은 다른 폴더로 이동했지만 여전히 찾을 수 없습니다.
- 아파치를 다시 설치해봐도 작동하지 않습니다.
- 후행 슬래시 제거
이상한 점은 wsgi 구성 파일을 제거하면 Apache가 제대로 작동한다는 것입니다. 그리고 django에서 제공하는 테스트 서버를 실행하면 django 자체가 제대로 작동합니다.
누구든지 도움을 줄 수 있다면 매우 기쁠 것입니다. 감사해요!
답변1
SELinux 확장을 활성화하여 Apache가 파일이 있는 디렉터리에 액세스하지 못하도록 합니까?
홈 디렉토리에 대한 권한이 Apache 액세스를 허용합니까? 파일을 읽을 수 있는 것만으로는 충분하지 않으며 그 아래의 모든 디렉터리에도 액세스할 수 있어야 합니다.
관련은 없지만 요청이 실제로 데몬 프로세스에서 실행되도록 위임되도록 WSGIDaemonProcess에 해당하는 WSGIProcessGroup 지시문이 있습니까?
마지막으로, 기본값은 단일 프로세스이므로 'processes=1'을 생략할 수 있으며 숫자에 관계없이 'processes'를 설정하면 WSGI 환경에서 다중 프로세스 구성이라는 플래그가 지정되므로 다른 의미가 있습니다.