php部署到nginx時遇到的問題

獵手家園發表於2022-06-14

1、許可權問題

nginx使用者、php使用者最好不要用預設的:nobody,因為許可權不夠。

可以建立新的使用者和使用者組:

groupadd www
useradd -r -g www www

然後修改:nginx.conf

user    www

修改:php-fpm.d/www.conf

[www]

user = www
group = www

同時給訪問資料夾的許可權給:www

chown -R www:www 資料夾

 

2、Nginx報403 forbidden錯誤 (13: Permission denied)

nginx沒有web目錄的操作許可權,會出現403錯誤。

解決辦法:修改web目錄的讀寫許可權,或者是把nginx的啟動使用者改成目錄的所屬使用者,重啟Nginx即可解決

chmod -R 755 /usr/local/www

 

3、nginx遇到is not within the allowed path(s)

總結:發現不是目錄下的.user.ini檔案的問題,也不是php.ini的配置問題,而是fastcgi.conf的配置問題。
問題原因:open_basedir是預設的動態訪問目錄,/home/wwwroot/myproject/public,從而php無法讀取其他目錄。

解決辦法:在 /usr/local/nginx/conf/ 目錄在找到 fastcgi.conf,關於 open_basedir 預設的配置應該是:

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
#修改成:
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/usr/local/wwwroot/myproject/:/tmp/:/proc/";

 

相關文章