nginxphp伺服器搭建
A. 如何正確配置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腳本測試下成功與否就可以了
B. Thinkphp5項目在nginx伺服器部署
1,切換到nginx的配置目錄,找到nginx.conf文件
cd /usr/local/nginx/conf
vim nginx.conf
2,如果是單項目部署的話,只需要在nginx.conf文件裡面加上以下
server{
listen 80;
# 域名,本地測試可以使用127.0.0.1或localhost
server_name www.zhangc.cn;
# php項目根目錄
root /home/data-www/blog;
location /{
# 定義首頁索引文件的名稱
index index.php index.html index.htm;
# 影藏入口文件
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
try_files $uri $uri/ /index.php?$query_string;
}
# PHP 腳本請求全部轉發到 FastCGI處理. 使用FastCGI協議默認配置.
# Fastcgi伺服器和程序(PHP)溝通的協議
.location ~ .*\.php${
# 設置監聽埠
fastcgi_pass 127.0.0.1:9000;
# 設置nginx的默認首頁文件
fastcgi_index index.php;
# 設置腳本文件請求的路徑
fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
# 引入fastcgi的配置文件
include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
try_files $fastcgi_script_name =404;
}
}
3,如果多項目部署,就需要配置vhost
第一步:編輯nginx.conf文件,在最後加上 include vhost/*.conf;
第二步:進入vhost文件夾,創建 域名.conf 文件,如創建一個:quanma.meyat.com.conf
第三步:編輯quanma.meyat.com.conf文件,內容如下:
server
{
listen 80;
server_name quanma.meyat.com;
index index.html index.htm index.php default.html default.htm default.php;
root /data/wwwroot/default/quanma/public/;
#error_page 404 /404.html;
location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
try_files $uri $uri/ /index.php?$query_string;
}
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
#try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
try_files $fastcgi_script_name =404;
#include fastcgi.conf;
#include pathinfo.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
# Disallow access to .ht, .svn, .bzr, .git, .hg, .cvs directories
location ~ /\.(ht|svn|bzr|git|hg|cvs) {
deny all;
}
#access_log /date/nginx/bmp.com.conf/access.log main;
}
C. 雲伺服器如何配置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;
}
D. 如何正確配置Nginx+PHP
1、Nginx安裝
安裝編譯軟體庫
[root@leixuesong ~]# yum -y install gcc gcc-c++ autoconf automake openssl openssl-devel pcre-devel zlib-devel
下載nginx 1.6.2源碼包
[root@leixuesong ~]# wget http://nginx.org/download/nginx-1.6.2.tar.gz
解壓nginx
[root@leixuesong ~]# tar zxvf nginx-1.6.2.tar.gz
進入解壓文件夾
[root@leixuesong ~]# cd nginx-1.6.2
編譯設置模塊
[root@leixuesong nginx-1.6.2]# ./configure –with-http_stub_status_mocule –prefix=/opt/nginx
安裝
[root@leixuesong nginx-1.6.2]# make && make install
nginx編譯安裝性能優化
1、在nginx 源碼文件找到auto/cc/gcc文件找到如下幾行
#debug
[root@leixuesong ~]# CFLASS=」$CFLAGS -g」
2、特定CPU優化CPU類型編譯
–with-cc-opt=」-O3″
–with-cpu-opt=CPU類型
查看CPU類型
[root@leixuesong ~]# cat /proc/cpuinfo | grep 「model name」
nginx重新啟動
[root@leixuesong ~]# /opt/nginx/sbin/nginx -s reload
nginx啟動
[root@leixuesong ~]# /opt/nginx/sbin/nginx
nginx檢測配置
[root@leixuesong ~]# /opt/nginx/sbin/nginx -t
2、PHP的安裝和配置
安裝php依賴軟體庫
[root@leixuesong ~]# yum install -y gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel mysql mysql-devel
下載php5.6源碼包
[root@leixuesong ~]# wget http://am1.php.net/distributions/php-5.6.3.tar.gz
解壓
[root@leixuesong ~]# tar -zxvf php-5.6.3.tar.gz
[root@leixuesong ~]# cd php-5.6.3
編譯設置模塊
[root@leixuesong php-5.6.3]# ./configure –prefix=/usr/local/php –with-mysql=mysqlnd–with-mysqli=mysqlnd –enable-fpm –with-pear –with-curl –with-gd –with-jpeg-dir –with-png-dir –with-freetype-dir –with-iconv –with-mhash –with-zlib –enable-mbstring –disable-debug
make && make install
復制php配置文件
[root@leixuesong php-5.6.3]# cp php.ini-proction /opt/php/lib/php.ini
啟動php-fpm
[root@leixuesong php-5.6.3]# /opt/php/sbin/php-fpm
檢測配置是否正確
[root@leixuesong php-5.6.3]# /opt/php/sbin/php-fpm -t
在centos上成功編譯安裝nginx 1.6、php 5.6並成功啟動nginx和php-fpm後,訪問php提示」File not found.」,同時在錯誤日誌中看到:
2013/10/22 20:05:49 [error] 12691#0: *6 FastCGI sent in stderr: 「Primary script unknown」 while reading response header from upstream, client: 192.168.168.1, server: localhost, request: 「GET / HTTP/1.1″, upstream: 「fastcgi://127.0.0.1:9000″, host: 「192.168.168.133」:
在Nginx配置文件中找到定義調用腳本文件的地方,如:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
修改成如下方式($document_root):
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
nginx gzip設置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css applocation/xml;
gzip_vary on;
來源:CentOS編譯安裝Nginx1.6、PHP5.6 - http://www.leixuesong.cn/84
E. windows7配置Nginx+php+mysql的詳細操作是怎樣
在Windows下配置搭建PHP環境的步驟:
一、准備工作-下載所需軟體
Apache httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
PHP php-5.3.10-Win32-VC9-x86.zip
MySQL mysql-5.5.20-win32.msi
二、安裝軟體
1、安裝Apache: 雙擊安裝,與安裝其他Windows軟體沒有什麼區別,在填Server Infomation時,並沒有特殊規定,只要輸入的信息符合格式即可。
安裝完成之後,在瀏覽器輸入http://localhost,如果顯示It Works!,表示Apache安裝成功。
2、安裝PHP:將php-5.3.10-Win32-VC9-x86.zip解壓到一個目錄即可。
3、安裝MySQL:雙擊答桐安裝,如果需要更改安裝目錄,則在Choose Setup Type選擇Custom
安裝完成後開肆舉迅始配置MySQL,全部保持默認選項即可,但最好把MySQL默認編碼改為utf8,在Modify Security Settings選項中設置密碼,輸入兩次密碼即可完成,最後點Execute完成配置。
三、整合Apache+PHP+MySQL
Apache : 首先修改Apache的配置文件,讓Apache支持解析裂此PHP文件。Apache配置文件在Apache安裝目錄的conf目錄下的httpd.conf。
1. 讓Apache可以解析php文件,在配置文件中找到
#LoadMole vhost_alias_mole moles/mod_vhost_alias.so
在下一行添加 (綠色的位置是根據PHP的所在目錄而定的)
LoadMole php5_mole "D:/Develop/PHP/php5apache2_2.dll"PHPIniDir "D:/Develop/PHP"AddType application/x-httpd-php .php .html .htm
2. 在配置文件中找到
DirectoryIndex index.html
改為
DirectoryIndex index.php index.html
3. 修改Apache站點目錄,在配置文件中找到(Apache安裝的目錄不同,顯示的值不一樣)
DocumentRoot "D:/Develop/Apache2.2/htdocs"
改為
DocumentRoot "D:/Workspace/PHP"
再找到
<Directory "D:/Develop/Apache2.2/htdocs">
改為
<Directory "D:/Workspace/PHP">
PHP : 把php.ini-development改名為php.ini,作為PHP的配置文件。修改php.ini
1. 設置PHP擴展包的具體目錄,找到
; On windows:; extension_dir = "ext"
改為 (值是ext文件夾的目錄)
; On windows: extension_dir = "D:/Develop/PHP/ext"
2. 開啟相應的庫功能,找到需要開啟的庫的所在行
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_xmlrpc.dll
去掉前面的分號(注釋),即改為
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll
3. 設置時區,找到
;date.timezone =
改為
date.timezone = Asia/Shanghai
配置完成,檢測一下配置是否成功。重啟Apache,在站點目錄下新建文件index.php,輸入內容。
F. 怎麼用nginx在windows上搭建web伺服器
怎麼用nginx在windows上搭建web伺服器解決方法
所需工具:
一台聯網的電腦
phpStudy 2014版
windows 2003 server sp2伺服器一台
1.phpstudy安裝在第四步時選擇Nginx&php
G. 如何正確配置Nginx + PHP
先上配置的過程,下面是解釋。