windows下配置nginx+php環境
nginx相較於我們熟悉的apache,IIS的優勢,就我淺入淺出的瞭解,在於”反向代理”和”負載均衡”。因此考慮到能夠為Web伺服器節省資
源,它可以代替apache來提供Web服務。那麼上正題了,nginx有這麼多優勢,那在windows下如何來配置nginx+php環境?網上看到
還是那麼多轉載來轉載去的文章。這裡就我配置的過程,來介紹一下:
1、首先需要準備的應用程式包。
nginx:nginx/Windows-1.0.4
php:php-5.2.16-nts-Win32-VC6-x86.zip
RunHiddenConsole:RunHiddenConsole.zip
nginx下php是以FastCGI的方式執行,所以我們下載非執行緒安全也就是nts的php包。
2、安裝與配置。
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
實際中,可能還要開啟
extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_exif.dll
extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_msql.dll
extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_snmp.dll
extension=php_sockets.dll
extension=php_sqlite.dll
extension=php_xsl.dll
extension=php_zip.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 / {
root html; #這裡是站點的根目錄 index index.html
index.htm;
}
將root html;
改為root D:/wnmp/www;
加上index.php
,即:
location / {
root D:/wnmp/www; #這裡是站點的根目錄
index index.php index.html index.htm;
}
這裡需要注意,路徑分隔符請使用/
而不要使用Windows中的以防歧義。
再往下,找到
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ .php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
先將前面的#
去掉,同樣將root html;
改為root D:/wnmp/www;
。再把標記為紅色的/scripts
改為$document_root
,這裡的$document_root
就是指前面root
所指的站點路徑,這是改完後的:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
root D:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
設定error.log的存放目錄,將#error_log logs/error.log;
的#
去處,預設error.log
是存放在Nginx安裝目錄中logs目錄下。
儲存配置檔案,就可以了。
nginx+php的環境就初步配置好了,來跑跑看。我們可以輸入命令:
php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/www/php/php.ini
來啟動php,並手動啟動nginx(可能不可行)。當然也可以利用指令碼來實現。
首先把下載好的RunHiddenConsole.zip
包解壓到nginx目錄內,RunHiddenConsole.exe
的作用是在執行完命令列指令碼後可以自動關閉指令碼,而從指令碼中開啟的程式不被關閉。然後來建立指令碼,命名為start_nginx.bat
,我們在Notepad++
裡來編輯它:
@echo off
REM Windows 下無效
REM set PHP_FCGI_CHILDREN=5
REM 每個程式處理的最大請求數,或設定為 Windows 環境變數
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole D:/phpsetup/php-5.4.45-nts-Win32-VC9-x86/php-cgi.exe -b 127.0.0.1:9000 -c D:/phpsetup/php-5.4.45-nts-Win32-VC9-x86/php.ini
echo Starting nginx...
RunHiddenConsole D:/phpsetup/nginx-1.6.0/nginx.exe -p D:/phpsetup/nginx-1.6.0
再另外建立一個名為stop_nginx.bat
的指令碼用來關閉nginx:
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
這樣,我們的服務指令碼也都建立完畢了。雙擊start_nginx.bat
,再看看程式管理器是不是有兩個nginx.exe的程式和一個php-cgi.exe的程式呢?
這樣nginx服務就啟動了,而且php也以fastCGI的方式執行了。
到站點目錄下,新建一個phpinfo.php的檔案,在裡面編輯
<?php
phpinfo();
?>
儲存後,開啟瀏覽器輸入http://localhost/phpinfo.php
,如果看到
就說明,nginx+php
的環境已經配置好了,呵呵~
Nginx 403 forbidden的解決辦法
常見的,引起nginx 403 forbidden有二種原因,一是缺少索引檔案,二許可權問題。
1、缺少index.html或者index.php檔案
程式碼如下:
server {
listen 80;
server_name localhost;
index index.php index.html;
root /var/www;
}
如果在/var/www下面沒有index.php,index.html的時候,直接訪問域名,找不到檔案,會報403 forbidden。
例如:你訪問www.test.com而這個域名,對應的root指定的索引檔案不存在。
許可權問題
對於PHP而言,如果nginx使用者沒有web目錄的許可權,則會導致該錯誤。
解決辦法:修改web目錄的讀寫許可權,或者是把nginx的啟動使用者改成目錄的所屬使用者,重起一下就能解決。 如:
程式碼如下(Linux下):
chown -R nginx_user:nginx_user /htdocs
相關文章
- Windows 下 Laravel 環境配置WindowsLaravel
- NVM,Windows下環境配置Windows
- windows下JDK環境配置WindowsJDK
- windows下配置安裝YAF環境Windows
- 在windows下配置Eclipse + go環境WindowsEclipseGo
- Windows下配置NodeJS環境詳解WindowsNodeJS
- Windows下Android開發環境配置WindowsAndroid開發環境
- PHP入門-Window 下利用Nginx+PHP 搭建環境PHPNginx
- windows 配置JAVA環境WindowsJava
- Windows配置java環境WindowsJava
- windows環境下Django環境搭建WindowsDjango
- windows環境下memcache配置方法 詳細篇Windows
- (轉)Windows下安裝Docker, GitBash環境配置WindowsDockerGit
- Ant系列-在windows下配置環境變數Windows變數
- Windows下Java環境變數的配置(詳)WindowsJava變數
- windows環境下Resin和apache的配置薦WindowsApache
- Windows環境下的tomcat+apache配置WindowsTomcatApache
- 在Windows下配置Ruby on Rails開發環境WindowsAI開發環境
- windows下yolov8訓練環境配置WindowsYOLO
- win7下搭建nginx+php的開發環境Win7NginxPHP開發環境
- Windows環境下的Nginx環境搭建WindowsNginx
- win11搭建nginx+php環境NginxPHP
- Arcanist on Windows 環境配置指南Windows
- windows配置環境變數Windows變數
- Windows10下如何安裝配置 perl 環境Windows
- windows環境下go module的使用和goland配置WindowsGoLand
- Windows 環境下 libfreenect2的配置Windows
- Windows環境下phpMyAdmin的安裝配置方法WindowsPHP
- Windows 環境下 Python 環境安裝WindowsPython
- 《學習 VUE - Windows 下配置 vue 的開發環境 》VueWindows開發環境
- Linux & Windows 環境下 RabbitMQ 安裝與基本配置LinuxWindowsMQ
- Linux & Windows 環境下 Redis 安裝與基本配置LinuxWindowsRedis
- Windows環境下嘗試安裝並配置PHP PEARWindowsPHP
- Windows7環境下Apache+PHP+MySQL完美配置WindowsApachePHPMySql
- Windows環境下的Oracle Data Guard安裝和配置WindowsOracle
- Windows 下搭建 lnmp 環境WindowsLNMP
- Windows下搭建Solr環境WindowsSolr
- windows下搭建lisp環境WindowsLisp