본문 바로가기
Linux/Web Server

[CentOS8] httpd[proxy_fcgi:error] [pid 31nn:tid 14nn] ~ AH01071: Got error 'Primary script unknown'

by aegypius 2020. 12. 13.
728x90
반응형

'Primary script unknown' on PHP 7.4.12, Apache 2.4.37

  운영중인 웹사이트에서 발생하고 있는 httpd error_log 중 일부이다. 분명히 이전에는 없었던 오류이며, 발생 시점은 CentOS7에서 CentOS8 - CentOS Linux release 8.2.2004 (Core) -로 변경(서버이전) 한 때 부터 이다. 현재 웹사이트는 정상적으로 작동하고 있다.

  동일한 문제로 고민하는 사람이 나말고 여럿 있다....어딘가에....

talk.plesk.com/threads/ah01071-got-error-primary-script-unknown.351059/ 
forum.centos-webpanel.com/apache/ah01071-got-error-'primary-script-unknownn'-in-error-log/

  서버의 변경사항은 아래와 같다. (CentOS8의 기본 패키지 그대로이다...) php와 apache가 의심스럽다...

os : CentOS 7.4.1708 -> 8.2.2004

php : PHP 7.2.32 -> 7.4.12

httpd : Apache 2.4.6 -> 2.4.37

named : BIND 9.11.4 -> 9.11.13

db : MariaDB 10.4.13 -> 10.3.17

  서버에는 워드프레스와 그누보드로 만든 웹사이트 외에도 순수 html로만 이루어진 웹사이트도 운영중이다. 한가지 공통점은 .htaccess 파일을 사용하는 워드프레스로 제작한 사이트에서는 이러한 오류로그가 보이지 않는다는 것이다. 

  조금 더 테스트를 해봐야 알 수 있을 것 같다. 로그의 내용을 보면 php(php-fpm)와 httpd와의 문제(버그?)인 듯 한데....검색 해보니 nginx에서도 동일한 현상이 발생하는 것 같다..... 드디어 힌트를 찾아냈다.
www.coders.pro/2017/01/got-error-primary-script-unknown-update-php-fpm-apache-2-4/

 

Got error 'Primary script unknown' after update PHP-FPM + Apache 2.4 - coders.pro

After a update_versions in DirectAdmin I got this error on a sites error log: [client 1.2.3.4:62903] AH01071: Got error 'Primary script unknown\n' The URL it self gave: File not found. Yesterday everything was working fine. After updating Apache 2.4.x and

www.coders.pro

  내가 내린 결론은 .htaccess를 사용을 억제하는 것이다.

1. 웹서버에서 AllowOverride 옵션을 none으로 설정하여 .htaccess를 사용하지 말자.
2. 워드프레스와 같이 꼭 필요한 경우가 아니라면 .htaccess를 사용할 수 없게 설정하자.

  결국 가상호스트 설정의 Directory 구문에서 하나하나 개별 설정을 해야 한다는 것인데, 조금 귀찮긴 하지만 AllowOverride를 none으로 설정하고 워드프레스로 운영되는 사이트와 기타 .htaccess를 반드시 사용해야 하는 웹사이트만 별도로 허용해야 할 것이다.

아직 버리지 않은 갤럭시S4 줌으로 한 방 찍어봤다.

  테스트 삼아서...... 워드프레스 사이트를 위해 기본적으로 만들어둔 .htaccess파일을 해당 디렉토리에 복사해 두었는데 더이상의 error log는 발생하지 않았다. 파일의 내용은 아래와 같다.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

  기본값은 php이지만 해당 웹사이트는 php없이 html로만 제작된 사이트이기에 수정없이 사용하면 autoindex error가 발생할 수 있다. 가급적 .htaccess를 사용하지 못하도록 설정하자.

  .htaccess에 대한 내용은 아래의 링크를 참조하자.

 

Apache HTTP Server Tutorial: .htaccess files - Apache HTTP Server Version 2.4

Apache HTTP Server Tutorial: .htaccess files .htaccess files provide a way to make configuration changes on a per-directory basis. .htaccess files (or "distributed configuration files") provide a way to make configuration changes on a per-directory basis.

httpd.apache.org

 

728x90
반응형

댓글