国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

windows平臺中配置nginx+php環境

2024-08-30 12:06:31
字體:
來源:轉載
供稿:網友

相對于linux來說,windows配置web環境不管是一鍵安裝包還是獨立配置簡單多了,這次是講以NGINX作為web的本地的測試環境。

剛看到nginx這個詞,我很好奇它的讀法(engine x),我的直譯是"引擎x",一般引"擎代"表了性能,而"x"大多出現是表示"xtras(額外的效果)",那么整個詞的意思就是類似"極致效果","額外性能"。當然這里不是要來嘮嗑,以上是題外話。

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

實際中,可能還要開啟

  1. extension=php_bz2.dll 
  2. extension=php_curl.dll 
  3. extension=php_gd2.dll 
  4. extension=php_mbstring.dll 
  5. extension=php_exif.dll 
  6. extension=php_mcrypt.dll 
  7. extension=php_mhash.dll 
  8. extension=php_msql.dll 
  9. extension=php_mssql.dll 
  10. extension=php_mysql.dll 
  11. extension=php_mysqli.dll 
  12. extension=php_openssl.dll 
  13. extension=php_pdo.dll 
  14. extension=php_pdo_mssql.dll 
  15. extension=php_pdo_mysql.dll 
  16. extension=php_pdo_pgsql.dll 
  17. extension=php_pdo_sqlite.dll 
  18. extension=php_snmp.dll 
  19. extension=php_sockets.dll 
  20. extension=php_sqlite.dll 
  21. extension=php_xsl.dll 
  22. 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,找到

  1. location / { 
  2.   root html;   #這里是站點的根目錄 index index.html 
  3.   index.htm; 

將root html;改為root D:/wnmp/www;加上index.php,即:

  1. location / { 
  2.   root D:/wnmp/www;  #這里是站點的根目錄  
  3.   index index.php index.html index.htm; 

這里需要注意,路徑分隔符請使用/而不要使用Windows中的/以防歧義。

再往下,找到

  1. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
  2. #location ~ /.php$ { 
  3. # root html; 
  4. # fastcgi_pass 127.0.0.1:9000; 
  5. # fastcgi_index index.php; 
  6. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name
  7. include fastcgi_params; 
  8. #} 

先將前面的#去掉,同樣將root html;改為root D:/wnmp/www;。再把標記為紅色的/scripts改為$document_root,這里的$document_root就是指前面root所指的站點路徑,這是改完后的:

  1. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
  2. location ~ /.php$ { 
  3.   root D:/wnmp/www; 
  4.   fastcgi_pass 127.0.0.1:9000; 
  5.   fastcgi_index index.php; 
  6.   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
  7.   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++里來編輯它:

  1. @echo off 
  2. REM Windows 下無效 
  3. REM set PHP_FCGI_CHILDREN=5 
  4.  
  5. REM 每個進程處理的最大請求數,或設置為 Windows 環境變量 
  6. set PHP_FCGI_MAX_REQUESTS=1000 
  7.    
  8. echo Starting PHP FastCGI... 
  9. 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 
  10.    
  11. echo Starting nginx... 
  12. RunHiddenConsole D:/phpsetup/nginx-1.6.0/nginx.exe -p D:/phpsetup/nginx-1.6.0 

再另外創建一個名為stop_nginx.bat的腳本用來關閉nginx:

  1. @echo off 
  2. echo Stopping nginx...  
  3. taskkill /F /IM nginx.exe > nul 
  4. echo Stopping PHP FastCGI... 
  5. taskkill /F /IM php-cgi.exe > nul 
  6. exit 

這樣,我們的服務腳本也都創建完畢了。雙擊start_nginx.bat,再看看進程管理器是不是有兩個nginx.exe的進程和一個php-cgi.exe的進程呢?

這樣nginx服務就啟動了,而且php也以fastCGI的方式運行了。

到站點目錄下,新建一個phpinfo.php的文件,在里面編輯

  1. <?php 
  2. phpinfo(); 
  3. ?> 

保存后,打開瀏覽器輸入http://localhost/phpinfo.php,如果看到

就說明,nginx+php的環境已經配置好了,呵呵~

Nginx 403 forbidden的解決辦法

常見的,引起nginx 403 forbidden有二種原因,一是缺少索引文件,二權限問題。

1、缺少index.html或者index.php文件,代碼如下:

  1. server {  
  2.  listen 80;  
  3.  server_name localhost;  
  4.  index index.php index.html;  
  5.  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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 行唐县| 始兴县| 土默特左旗| 余庆县| 朝阳县| 永新县| 荥经县| 囊谦县| 怀化市| 南昌县| 盖州市| 陕西省| 宾川县| 依安县| 池州市| 香格里拉县| 茂名市| 中江县| 伽师县| 香港 | 牡丹江市| 墨竹工卡县| 十堰市| 阳西县| 新密市| 湖南省| 湛江市| 杭锦后旗| 富川| 巨野县| 昭觉县| 大新县| 宣城市| 嘉义市| 莒南县| 仪陇县| 阿尔山市| 同德县| 韶山市| 富裕县| 江孜县|