❶ 如何正確配置 Nginx 和 php
直接貼上代碼逐行進行講解,此處貼出一個能正常啟動php腳本的最簡nginx vhost配置:
[plain] view plain
server {
listen 8011;
server_name test.cn;
location ~ \.php?.*$ {
root /share/test;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
1、第一個大括弧 server{ }:不必多說,代表一個獨立的server,
2、listen 8011:代表該server監聽8011埠
3、location ~ \.php?.*${
}:代表一個能匹配對應uri的location,用於匹配一類uri,並對所匹配的uri請求做自定義的邏輯、配置。這里的location,匹配了所有帶.php的uri請求,例如:http://192.168.244.128:8011/test.php/asdasd
http://192.168.244.128:8011/index.php等
4、root /share/test:請求資源根目錄,告訴匹配到該location下的uri到/share/teset文件夾下去尋找同名資源。
5、fastcgi_pass 127.0.0.1:9000:這行開始是本文的重點:這行代碼的意思是,將進入到該location內的uri請求看做是cgi程序,並將請求發送到9000埠,交由php-fpm處理。
6、fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
:這行配置意思是:動態添加了一行fastcgi配置,配置內容為SCRIPT_FILENAME,告知管理進程,cgi腳本名稱。由於我的nginx中只有fastcgi_params文件,沒有fastcgi.conf文件,所以要使php-fpm知道SCRIPT_FILENAME的具體值,就必須要動態的添加這行配置。
7、include fastcgi_params; 引入fastcgi配置文件
以上就是最簡潔版的nginx啟動php腳本的最簡配置,當重啟nginx之後,在/share/test目錄下創建一個xx.php文件,輸入<?php
echo "hello world"; ?>保存,然後在瀏覽器中訪問localhost:8011/xx.php
就可以在網頁上顯示hello world了。
❷ 雲伺服器如何配置nginx支持php
[root@redhat7 ~]# wget http://am1.php.net/get/php-7.1.2.tar.gz/from/this/mirror
[root@redhat7 ~]# tar xzvf php-7.1.2.tar.gz
[root@redhat7 ~]# cd php-7.1.2/
[root@redhat7 ~]# ./configure --prefix=/usr/local/php --enable-fpm
[root@redhat7 php-7.1.2]# make&&make install
查看是否成功編譯安裝PHP
[root@redhat7 php-7.1.2]# php -v
PHP 7.1.2 (fpm-fcgi) (built: Apr 14 2017 20:21:53)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
編譯安裝完成後PHP不具備配置文件php.ini,此時只需復制php.ini-proction到 /usr/local/lib/php.ini即可,php.ini文件一般在/usr/local/lib/和/etc目錄下
[root@localhost php-7.1.2]# cp php.ini-proction /usr/local/lib/php.ini
[root@redhat7 php]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 20:59:49] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
[14-Apr-2017 20:59:49] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[14-Apr-2017 20:59:49] ERROR: FPM initialization failed
啟動php-fpm發現缺乏配置文件/usr/local/php/etc/php-fpm.conf
此時只需復制php-fpm的配置文件在安裝php時提供的配置文件的模版/usr/local/php/etc/php-fpm.conf.default到相應/usr/local/php/etc/php-fpm.conf即可
[root@redhat7 etc]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 21:14:32] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/﹡.conf' from /usr/local/php/etc/php-fpm.conf at line 125.
[14-Apr-2017 21:14:32] ERROR: No pool defined. at least one pool section must be specified in config file
[14-Apr-2017 21:14:32] ERROR: failed to post process the configuration
[14-Apr-2017 21:14:32] ERROR: FPM initialization failed
[root@redhat7 etc]# cp php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@redhat7 etc]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@redhat7 etc]# /etc/init.d/php-fpm
[14-Apr-2017 21:23:02] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:23:02] ERROR: FPM initialization failed
[root@redhat7 etc]# netstat -nldp|grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# chmod a+x /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# ll /etc/init.d/php-fpm
-rwxr-xr-x 1 root root 2401 4月 14 21:26 /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm [14-Apr-2017 21:28:09] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:28:09] ERROR: FPM initialization failed
failed
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# kill 3721
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm done
[root@redhat7 php-7.1.2]# service php-fpm status
php-fpm (pid 3927) is running...
[root@redhat7 php-7.1.2]# chkconfig --add php-fpm
[root@redhat7 php-7.1.2]# chkconfig php-fpm --level 345 on
配置nginx支持PHP
修改nginx的配置文件,支持php文件的解析,找到location的添加位置,在後面添加下面這個location
location ~ .php$ {
root /usr/share/nginx/html; #指定php的根目錄
fastcgi_pass 127.0.0.1:9000;#php-fpm的默認埠是9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
❸ 如何正確配置Nginx + PHP
先上配置的過程,下面是解釋。
❹ 如何正確配置 Nginx 和 PHP
php用php-fpm啟動,然後nginx
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
這樣就可以了
關於這個問題,差不多就是這個樣子的了,你如果不明白,可以自己去後盾瞅瞅,我這些都是在後盾上學的,有空可以去看一下,就算不喜歡也沒關系啊,何樂而不為呢?
❺ 如何正確配置 Nginx 和 PHP
安裝護衛神.nginx大師,一鍵配置nginx+php+mysql+ftp
❻ nginx配置支持php
nginx本身不支持php解析,需要配合php-fpm來配置。
location~.php${
root/var/www;#指定php的根目錄
fastcgi_pass127.0.0.1:9000;#php-fpm的默認埠是9000
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
centos下安裝php-fpm (php及其它組件已經安裝過的情況)
yuminstallphp-fpm
啟動php-fpm 並設置開機啟動 (centos 7)
systemctlstartphp-fpm
systemctlenablephp-fpm
❼ ThinkPHP在nginx下怎麼設置
讓nginx支持pathinfo,支持thinkphp
我們打開nginx的配置文件,如果是想某個游派站點支持,請打開對應站點的配置文件,添加的代碼如下:
location/{
if(!-e$request_filename){
rewrite^/(.*)$/index.php/$1last;
break;
}
}
location~.php{
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
includefcgi.conf;
神茄賀set$real_script_name$fastcgi_script_name;
if($fastcgi_script_name~"^(.+?.php)(/.+)$"){
set$real_script_name$1;
set$path_info$2;
}
納裂fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name;
fastcgi_paramSCRIPT_NAME$real_script_name;
fastcgi_paramPATH_INFO$path_info;
}
❽ 如何架設Nginx+Php Web伺服器
1、首先需要准備的應用程序包。nginx:nginx/Windows-1.0.4php:php-5.2.16-nts-Win32-VC6-x86.zip(nginx下php是以FastCGI的方式運行,所以我們下載非線程安全也就是nts的php包)(還會用到)RunHiddenConsole:RunHiddenConsole.zip2、安裝與配置。1)php的安裝與配置。直接解壓下載好的php包,到D盤wnmp目錄(D:\wnmp),這里把解壓出來的文件夾重命名成php5。進入文件夾修改php.ini-recommended文件為php.ini,並用Editplus或者Notepad++打開來。找到extension_dir="./ext"更改為extension_dir="D:/wnmp/php5/ext"往下看,再找到;extension=php_mysql.dll;extension=php_mysqli.dll前面指定了php的ext路徑後,只要把需要的擴展包前面所對應的「;」去掉,就可以了。這里打開php_mysql.dll和php_mysqli.dll,讓php支持mysql。當然不要忘掉很重要的一步就是,把php5目錄下的libmysql.dll文件復制到C:\Windows目錄下,也可以在系統變數裡面指定路徑,當然這里我選擇了更為方便的方法^_^。到這里,php已經可以支持mysql了。接下來我們來配置php,讓php能夠與nginx結合。找到;cgi.fix_pathinfo=1我們去掉這里的封號。cgi.fix_pathinfo=1這一步非常重要,這里是php的CGI的設置。2)nginx的安裝與配置。把下載好的nginx-1.0.4的包同樣解壓到D盤的wnmp目錄下,並重命名為nginx。接下來,我們來配置nginx,讓它能夠和php協同工作。進入nginx的conf目錄,打開nginx的配置文件nginx.conf,找到location/{roothtml;#這里是站點的根目錄indexindex.htmlindex.htm;}將roothtml;改為rootD:/wnmp/www;再往下,找到復制代碼#.0.0.1:9000##location~\.php${#roothtml;#fastcgi_pass127.0.0.1:9000;#fastcgi_indexindex.php;#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;#includefastcgi_params;#}復制代碼先將前面的「#」去掉,同樣將roothtml;改為rootD:/wnmp/www;。再把標記為紅色的/scripts改為「$document_root」,這里的「$document_root」就是指前面「root」所指的站點路徑,這是改完後的:復制代碼#.0.0.1:9000#location~\.php${rootD:/wnmp/www;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}復制代碼保存配置文件,就可以了。nginx+php的環境就初步配置好了,來跑跑看。我們可以輸入命令來啟動php,並手動啟動nginx,當然也可以利用腳本來實現。首先把下載好的RunHiddenConsole.zip包解壓到nginx目錄內,RunHiddenConsole.exe的作用是在執行完命令行腳本後可以自動關閉腳本,而從腳本中開啟的進程不被關閉。然後來創建腳本,命名為「start_nginx.bat」,我們在Notepad++里來編輯它復制代碼@echooffREMWindows下無效REMsetPHP_FCGI_CHILDREN=5REM每個進程處理的最大請求數,或設置為Windows環境變數setPHP_FCGI_MAX_REQUESTS=:/wnmp/php5/php-cgi.exe-b127.0.0.1:9000-cD:/wnmp/php5/php.:/wnmp/nginx/nginx.exe-pD:/wnmp/nginx復制代碼再另外創建一個名為stop_nginx.bat的腳本用來關閉nginx@/F/IMnginx.exe>/F/IMphp-cgi.exe>nulexit做好後,是這樣的這樣,我們的服務腳本也都創建完畢了。雙擊start_nginx.bat看看進程管理器是不是有兩個nginx.exe的進程和一個php-cgi.exe的進程呢?這樣nginx服務就啟動了,而且php也以fastCGI的方式運行了。到站點目錄下,新建一個phpinfo.php的文件,在裡面編輯保存後,打開瀏覽器輸入「phpinfo.php」,如果看到就說明,nginx+php的環境已經配置好了,呵呵~
❾ 如何正確配置 Nginx 和 PHP
前提:NGINX、PHP、PHP-FPM...安裝完成
基本配置
配置PHP-FPM:
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
#listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 60
pm.start_servers = 30
pm.min_spare_servers = 30
pm.max_spare_servers = 60
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
配置NGINX:
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
這是我復制我自己本地的配置。如果要全面一點的,你可以下載個lnmp一件安裝包,安裝之後有各種配置,挺全的。
❿ 如何正確配置Nginx + PHP
2.在nginx.conf中加入下面一雹氏段配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/滑磨local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
/usr/local/nginx/html/$fastcgi_script_name; 這里我寫的是php的絕對路徑,你可以修源讓散改成相應的。