nginxphpfpm許可權
1. php-fpm 正常啟動,nginx也正常啟動,但是為什麼訪問PHP是502
確定nginx已解析php-fpm
確定訪問目錄是否正確並且有執行許可權
確定php服務是否啟動,如果沒有啟動,狀態應該是下載php文件
2. Ubuntu14.04 安裝nginx+php5-fpm 後訪問php頁面空白,怎麼解決
先看位置對不對,可能nginx解析的地址不對
再看日誌
我估計,你是nginx配置錯了!
測試方法
比如再你訪問的頁面裡面隨便寫點東西 不過要確定不是404 如果是404 你還是乖乖去看下nginx配置到哪了。。。。
要注意nginx的訪問許可權
3. 如何正確配置Nginx+PHP
1. 將nginx和php都裝好
2. 然後配置nginx,將php請求分發給php-fpm處理
linux下的配置文件一般在/usr/local/nginx/conf/nginx.conf
找到下面字樣,並取消注釋,且注意這個$document_root這個地方(原本應為$script***的,改成$document_root)
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
3.啟動nginx和php-fpm,然後寫個phpinfo腳本測試下成功與否就可以
更多問題到問題求助專區http://bbs.hounwang.com/
4. 如何在CentOS 7中使用Nginx和PHP7-FPM安裝Nextcloud
先決條件64 位的 CentOS 7伺服器的 Root 許可權,在 CentOS 7 中安裝 Nginx 和 PHP7-FPM,在開始安裝 Nginx 和 php7-fpm 之前,要先添加 EPEL 包的倉庫源。從 EPEL 倉庫來安裝 ,然後我們還需要為 php7-fpm 添加另外一個倉庫。互聯網中有很個遠程倉庫提供了 PHP 7 系列包,然後就是安裝 PHP7-FPM 以及 Nextcloud 需要的一些包。最後,從伺服器終端里查看 PHP 的版本號,以便驗證 PHP 是否正確安裝。詳細你可以去後盾人看看,這些都是後盾人裡面的,哪裡有詳細的視頻教學都是高質量,我自己就是在裡面學的。
5. 如何配置Nginx多子目錄下 統一目錄名 upload 目錄的php的執行許可權
你的配置是錯誤的,存在安全漏洞,如果將php程序文件後綴改成gif, 發布到upload目錄中,也有可能被執行的。
我們要做的是,upload目錄下的任何文件(包括php文件,全不作解析執行),這樣即便有人上傳木馬到upload,也無法執行,就安全得多。配置方法如下:
location ~ ^.*/upload/ {
}
將這個規則放在php後綴解析規則之前,這樣就可以了,不要驚訝,空規則就可以了,因為正規表達式定義的location只匹配一次。
另外,你的網站文件所有者帳號是什麼?php-fpm子進程以什麼帳號運行?
6. 如何在CentOS 6上通過YUM安裝Nginx和PHP-FPM
准備篇:
1、配置防火牆,開啟80埠、3306埠
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允許80埠通過防火牆)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允許3306埠通過防火牆)
特別提示:很多網友把這兩條規則添加到防火牆配置的最後一行,導致防火牆啟動失敗,正確的應該是添加到默認的22埠這條規則的下面
添加好之後防火牆規則如下所示:
#########################################################
#-config-firewall
#.
*filter
:INPUTACCEPT[0:0]
:FORWARDACCEPT[0:0]
:OUTPUTACCEPT[0:0]
-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
-AINPUT-picmp-jACCEPT
-AINPUT-ilo-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPT
-AINPUT-jREJECT--reject-withicmp-host-prohibited
-AFORWARD-jREJECT--reject-withicmp-host-prohibited
COMMIT
#########################################################
/etc/init.d/iptables restart #最後重啟防火牆使配置生效
2、關閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq 保存,關閉
shutdown -r now #重啟系統
3、配置CentOS 6.2 第三方yum源(CentOS默認的標准源里沒有nginx軟體包)
yum install wget #安裝下載工具wget
wgethttp://www.atomicorp.com/installers/atomic
#下載atomic yum源
sh ./atomic #安裝
yum check-update #更新yum軟體包
################################################################
安裝篇:
一、安裝nginx
yum install nginx #安裝nginx,根據提示,輸入Y安裝即可成功安裝
service nginx start #啟動
chkconfig nginx on #設為開機啟動
/etc/init.d/nginx restart #重啟
rm -rf /usr/share/nginx/html/* #刪除ngin默認測試頁
二、安裝Mysql
1、安裝mysql
yum install mysql mysql-server #詢問是否要安裝,輸入Y即可自動安裝,直到安裝完成
/etc/init.d/mysqld start #啟動MySQL
chkconfig mysqld on #設為開機啟動
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷貝配置文件(注意:如果/etc目錄下面默認有一個my.cnf,直接覆蓋即可)
shutdown -r now #重啟系統
2、為root賬戶設置密碼
mysql_secure_installation
回車,根據提示輸入Y
輸入2次密碼,回車
根據提示一路輸入Y
最後出現:Thanks for using MySQL!
MySql密碼設置完成,重新啟動 MySQL:
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #啟動
service mysqld restart #重啟
三、安裝PHP
1、安裝PHP
yum install php #根據提示輸入Y直到安裝完成
2、安裝PHP組件,使PHP支持 MySQL、PHP支持FastCGI模式
yuminstallphp-mysqlphp-gdlibjpeg*php-imapphp-ldapphp-odbcphp-pearphp-xmlphp-xmlrpcphp-mbstringphp-mcryptphp-bcmathphp-mhashlibmcryptlibmcrypt-develphp-fpm
#根據提示輸入Y回車
/etc/init.d/mysqld restart #重啟MySql
/etc/init.d/nginx restart #重啟nginx
/etc/rc.d/init.d/php-fpm start #啟動php-fpm
chkconfig php-fpm on #設置開機啟動
################################################################
配置篇
一、配置nginx支持php
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak #備份原有配置文件
vi /etc/nginx/nginx.conf #編輯
user nginx nginx;#修改nginx運行賬號為:nginx組的nginx用戶
:wq! #保存退出
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak #備份原有配置文件
vi /etc/nginx/conf.d/default.conf #編輯
index index.php index.html index.htm;#增加index.php
#.0.0.1:9000
#
location~.php${
roothtml;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
#取消FastCGI server部分location的注釋,並要注意fastcgi_param行的參數,改為$document_root$fastcgi_script_name,或者使用絕對路徑
二、配置php
vi /etc/php.ini #編輯
date.timezone = PRC #在946行 把前面的分號去掉,改為date.timezone = PRC
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在386行 列出PHP可以禁用的函數,如果某些程序需要用到這個函數,可以刪除,取消禁用。
expose_php = Off #在432行 禁止顯示php版本的信息
magic_quotes_gpc = On #在745行 打開magic_quotes_gpc來防止SQL注入
open_basedir = .:/tmp/ #在380行,設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,可以防止php木馬跨站,如果改了之後安裝程序有問題,可注銷此行,或者直接寫上程序目錄路徑/var/www/html/www.osyunwei.com/:/tmp/
:wq! #保存退出
三、配置php-fpm
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak #備份原有配置文件
vi /etc/php-fpm.d/www.conf #編輯
user = nginx #修改用戶為nginx
group = nginx #修改組為nginx
/etc/init.d/mysqld restart #重啟MySql
/etc/init.d/nginx restart #重啟nginx
/etc/rc.d/init.d/php-fpm restart #重啟php-fpm
################################################################
測試篇
cd /usr/share/nginx/html/ #進入nginx默認網站根目錄
vi index.php #新建index.php文件
<?php
phpinfo();
?>
:wq! #保存
chown nginx.nginx /usr/share/nginx/html/ -R #設置目錄所有者
chmod 700 /usr/share/nginx/html/ -R #設置目錄許可權
在客戶端瀏覽器輸入伺服器IP地址,可以看到相關的配置信息!
################################################################
備注
nginx默認站點目錄是:/usr/share/nginx/html/
許可權設置:chown nginx.nginx /usr/share/nginx/html/ -R
MySQL資料庫目錄是:/var/lib/mysql
許可權設置:chown mysql.mysql -R /var/lib/mysql
參考文檔:http://www.osyunwei.com/archives/2353.html
7. mac 許可權的nginx怎麼支持php
Mac OSX下配置nginx和php
首先安裝nginx, 其次需要HomeBrew, 按照官網說明安裝
然後安裝PHP,以下的命令在終端執行:
更新下brew的庫,加入php支持:
brew tap homebrew/pes
brew tap josegonzalez/homebrew-php
然後執行:
# 需要mysql,就把--without-mysql改為--with-mysql
brew install --without-apache --with-fpm --without-mysql php55
執行上面的命令後,brew就開始下載php源碼並編譯安裝,大概幾分鍾時間。
安裝完成後,配置php/bin到終端環境(未驗證,貌似跟mac本身自帶的php有沖突?):
#這一步成不成功沒關系,這步的目的只是讓終端可以執行PHP命令,不影響web伺服器使用
echo 'export PATH="$(brew --prefix josegonzalez/php/php55)/bin:$PATH"' >> ~/.bash_profile
設置隨系統自動啟動:
mkdir -p ~/Library/LaunchAgents
#注意文件homebrew.mxcl.php55.plist的路徑,需要根據實際情況改成自己的目錄和文件名
cp /usr/local/Cellar/php55/5.5.13/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
上面只是設置了自啟動,但是還沒真正啟動,所以執行以下命令手動啟動PHP-FPM:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
php的配置和啟動工作已經結束了,然後驗證一下,執行
lsof -Pni4 | grep LISTEN | grep php
如果輸出以下類似內容,那就表示成功了,否則。。。自找原因吧:
php-fpm 69659 frdmn 6u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69660 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69661 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69662 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
最後就是配置nginx虛擬機:
server {
listen 80;
server_name php.cssor.com;
root /var/www;
location / {
index index.html index.shtml;
}
#配置後綴為.php的就交給php引擎處理
#如果需要整站都託管給php,就把location ~ \.php$ 替換為location / ,同時上面的location / 配置就不需要了
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
8. nginx web 目錄下許可權設置哪個是對的
最近Nginx的使用者是越來越多,多數網站也從原本使用很多的Apache平台或其他平台遷移到了Nginx。對於剛剛接觸Nginx的朋友來說,如何限制Nginx+PHP的目錄許可權成了實際問題,大家都知道,在Apache中可以很容易的對虛擬目錄進行許可權控制,如:程序代碼如下:[email protected]/usr/www/xpb/ServerNameIP:80ServerAliasIPErrorLoglogs/default-error_logphp_admin_valueopen_basedir"/tmp/:/usr/www/xpb/"關鍵是後面的這句php_admin_value,這樣就限制了php的操作目錄僅限於/tmp/和/usr/www/xpb/這兩個目錄了。對於Apache虛擬主機來說,這個設置十分有用,結合在php.ini中禁用一些php函數,幾乎可以杜絕PHP木馬對其他站點及系統的危害。我雖沒專業做過Linux下的虛擬主機,但相信各大虛擬主機商也是這么做的。看來對於Apache最好的法還是使用「在php.ini中禁用一些危險的php函數和在Apache虛擬主機中配置php_admin_value」的方式來做虛擬主機的安全。關於Nginx的配置文件,參考了很多資料,好像是不支持php_admin_valueopen_basedir,也就是Nginx暫時還沒有Apache的php_myadmin_value這類的設置。如果用Nginx做虛擬主機,各用戶之間的目錄安全控制如何來做呢?網上很多人說,限制上傳文件類型,做好程序安全不就行了么?對,對於自己的站點來說這樣完全可以。但如果虛擬主機是給別人用的,又給予了FTP許可權,總不能不讓人上傳php文件吧。轉載,僅供參考。
9. 為什麼Nginx下PHP-FPM錯誤日誌不顯示
1、檢查一下你得程序對error_log目錄下面有沒有寫的許可權
2、主要看你是使用什麼身份運行的php-fpm;