apache php-fpm Primary script unknown\n

一直遇到這個問題 AH01071: Got error ‘Primary script unknown\n

搞了很久

基本上大致解決方向有三種

1.document_root路徑設定錯誤

2.php-fpm 的權限問題

-查php-fpm的user 與 group是否與apache相同

3.selinux || firwall等系統權限問題

4.ProxyPassMatch

這個坑真的很坑….

apache 2.4設定php-fpm

可以用的設定應該只有

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://0.0.0.0:9000/webroot/phptest/$1

大部分的網上文件多半說明需要配合此設定檔的DocumentRoot
but…並不完全是這樣的
apache的DocumentRoot是給apache用的
但是給fcgi後面的root,是要看你fcgi機器上的路徑
這件事情通常會是在docker上面發生
舉個例子
我已經在host 上面跑了apache+php 5.4 ,但我今天有一個網站要跑php 7.1
我考慮使用docker 跑php-fpm ,讓apache對連
這時候fcgi://host:port/{path} 裏頭的{path}是docker container內的路徑
如果你在host沒有共享DocumentRoot給docker內的container使用
你就顆顆了
ProxyPassMatch後面的路徑設定如果跟DocumentRoot不一致,那就會以ProxyPassMatch後面的路徑為主
你根本可不用設定DocumentRoot…

發佈留言