2013-11-04 167 views
5

當我嘗試在瀏覽器中打開的index.php我看到的錯誤:PHP-FPM:操作不允許

No input file specified. 

在error.log中:

2013年11月4日22:40: 07 [錯誤] 3435#0:* 4的FastCGI在標準錯誤發送:「無法打開主腳本:/var/www/index.php(操作不允許)」,同時讀取來自上游,客戶端響應標頭:10.0.2.2,服務器:本地主機,請求:「GET/HTTP/1.1」,上行:「fastcgi://127.0.0.1:9000」,主機:「本地主機」

服務器的配置:

  • CentOS的6.4
  • PHP 5.4.17(從源安裝)
  • 的Nginx 1.0.15

PHP-FPM從用戶nginx的工作原理。

$ ps aux | grep fpm 
root  3460 0.0 0.7 29524 3428 ?  Ss 22:48 0:00 php-fpm: master process (/usr/etc/php-fpm.conf) 
nginx  3462 0.0 0.5 29524 2732 ?  S 22:48 0:00 php-fpm: pool www    
nginx  3463 0.0 0.5 29524 2732 ?  S 22:48 0:00 php-fpm: pool www    
nginx  3464 0.0 0.7 29524 3592 ?  S 22:48 0:00 php-fpm: pool www    
nginx  3465 0.0 0.5 29524 2732 ?  S 22:48 0:00 php-fpm: pool www    
nginx  3466 0.0 0.5 29524 2732 ?  S 22:48 0:00 php-fpm: pool www    
vagrant 3468 0.0 0.1 5532 720 pts/0 D+ 22:48 0:00 grep fpm 

$ ls -la /var/www 
drwxr-xr-x 2 nginx nginx 4096 Ноя 4 22:34 . 
drwxr-xr-x. 19 root root 4096 Ноя 4 22:31 .. 
-rw-r--r-- 1 nginx nginx 17 Ноя 4 22:34 index.php 

接通catch_workers_output不利於

+0

你沒有「X」 index.php的特權,'x'表示執行。它應該是「rwxr-XR-X」 – TroyCheng

+0

我從不添加了PHP的文件「X」特權,通過Web服務器的工作,也沒有問題。但我試圖爲index.php添加'x'特權 - 這對我沒有幫助 – vanchester

+0

好吧,'不允許操作'絕對是一個權威問題。在產品環境中,應該更好地使用自定義工作帳戶來部署nginx和php。在這裏我注意到你使用'root'來啓動php-fpm,而工作進程實際上使用'nginx'帳戶。 '/ var'不能被'nginx'帳戶訪問。 – TroyCheng

回答

6

問題是在設定的session.save_path不存在的路徑,而不是在php.ini中的open_basedir的列表

+0

非常感謝!正在尋找這個小時 –

+0

最有可能的是,'session.save_path'的問題是偶然的,唯一的問題是'open_basedir'值。每當nginx日誌中出現這個錯誤時,只需檢查PHP日誌,錯誤的確切原因(通常由於'open_basedir'限制導致的權限缺失)將會很明顯。 –