nginxphp5.2,ceph nginx

本文目錄一覽:

windows nginx 安裝php什麼版本

1、下載如下這幾個版本都可以

PHP5.2.13 官方最終版

PHP5.3.29 目前使用最多的PHP版本

PHP 5.6 (5.6.4RC1) 官方最新的穩定版

RunHiddenConsole.exe 用來隱藏Nginx和PHP的小工具

2、Nginx for windowsz最新穩定版nginx-1.6.2

3、mysql選擇5.5的版本

如何架設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;再往下,找到複製代碼#passthePHPscriptstoFastCGIserverlisteningon127.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」所指的站點路徑,這是改完後的:複製代碼#passthePHPscriptstoFastCGIserverlisteningon127.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=1000echoStartingPHPFastCGIRunHiddenConsoleD:/wnmp/php5/php-cgi.exe-b127.0.0.1:9000-cD:/wnmp/php5/php.iniechoStartingnginxRunHiddenConsoleD:/wnmp/nginx/nginx.exe-pD:/wnmp/nginx複製代碼再另外創建一個名為stop_nginx.bat的腳本用來關閉nginx@echooffechoStoppingnginxtaskkill/F/IMnginx.exenulechoStoppingPHPFastCGItaskkill/F/IMphp-cgi.exenulexit做好後,是這樣的這樣,咱們的服務腳本也都創建完畢了。雙擊start_nginx.bat看看進程管理器是不是有兩個nginx.exe的進程和一個php-cgi.exe的進程呢?這樣nginx服務就啟動了,而且php也以fastCGI的方式運行了。到站點目錄下,新建一個phpinfo.php的文件,在裡面編輯保存後,打開瀏覽器輸入「phpinfo.php」,如果看到就說明,nginx+php的環境已經配置好了

nginx和php 怎麼安裝mysqli擴展

在 centos 下編譯安裝 php 時,有時候經常會忘了某些擴展,比如 pdo,mysqli,但是到擴展目錄下,我們又找不到相應的 擴展文件,(.so 文件) ,這樣的情況下只能 編譯安裝該模塊,生成對應的 so 文件,然後在 php.ini 中添加相應的 擴展記錄,重啟 php就可以了,我們以安裝 mysqli 為例。

首先進入 php 源碼包 如果 找不到可以可下載一個 地址在這裡:解壓

tar xvzf php-5.2.17.tar.gz

cdphp-5.2.17/ext/mysqli/

然後運行 php 安裝目錄下的 phpize

/usr/local/nginx_php-5.2.17/bin/phpize

(根據自己的 php 安裝目錄來查找,不一定是這個目錄,如果找不到,可以根據 phpinfo() 來查看)然後編譯安裝 mysqli 擴展

#./configure –prefix=/usr/local/mysqli –with-php-config=/usr/local/nginx_php-5.2.17/bin/php-config –with-mysqli=/usr/local/mysql/mysql_config安裝

make make install

然後在 php 的擴展目錄下已經生成了 mysqli.so 文件打開 php.ini 文件,看是否有如下內容

extension_dir = “/usr/local/nginx_php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/”如果沒有就添加上

再添加一條:

extension=mysqli.so

保存。

重啟 php。可以看到 mysqli 已經安裝完成了。

Linux系統中設置多版本PHP共存配合Nginx伺服器使用

應用環境

LNMP的環境,當前PHP版本5.3.8,遇到一個應用需求只支持PHP

5.2.x,又希望保持現有應用還是用PHP

5.3.8。也就是說需要兩個版本的PHP同時存在,供nginx根據需要調用不同版本。

思路

Nginx是通過PHP-FastCGI與PHP交互的。而PHP-FastCGI運行後會通過文件、或本地埠兩種方式進行監聽,在Nginx中配置相應的FastCGI監聽埠或文件即實現Nginx請求對PHP的解釋。

既然PHP-FastCGI是監聽埠和文件的,那就可以讓不同版本的PHP-FastCGI同時運行,監聽不同的埠或文件,Nginx中根據需求配置調用不同的PHP-FastCGI埠或文件,即可實現不同版本PHP共存了。

配置記錄

下面記錄簡單的配置流程,基於已經安裝了lnmp的debian環境。當前版本的PHP是5.3.8,位於/usr/local/php。

1.下載PHP-5.2.14及相關的FPM、autoconf組件:

mkdir

~/php5.2

cd

~/php5.2

wget

-c

wget

-c

2.解壓PHP-5.2.14,並打上PHP-FPM的補丁:

tar

zxvf

php-5.2.14.tar.gz

gzip

-cd

php-5.2.14-fpm-0.5.14.diff.gz

|

patch

-d

php-5.2.14

-p1

3.如果你已經通過lnmp安裝,應該已經安裝好了autoconf,如果沒有,請自行下載並編譯autoconf-2.13,然後設置autoconf環境變數:

export

PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬

export

PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader

3.編譯安裝PHP-5.2.14在新的路徑(/usr/local/php-5.2.14)下,注意–prefix、–with-config-file-path的路徑,並且打開fastcgi和fpm選項:

cd

php-5.2.14/

./buildconf

–force

./configure

–prefix=/usr/local/php-5.2.14

–with-config-file-path=/usr/local/php-5.2.14/etc

–with-mysql=/usr/local/mysql

–with-mysqli=/usr/local/mysql/bin/mysql_config

–enable-fastcgi

–enable-fpm

make

ZEND_EXTRA_LIBS=’-liconv’

make

install

4.設置/usr/local/php-5.2.14/etc/php-fpm.conf,監聽埠:

value

name=”listen_address”127.0.0.1:9001/value

或者監聽文件:

value

name=”listen_address”/path/to/unix/socket/value

其他參數根據伺服器環境和需求自行定製。

5.啟動php-fpm,以後可以通過php-fpm進行管理:

/usr/local/php-5.2.14/sbin/php-fpm

start

字php5.3.3後,php已經將php-fpm繼承到php中,而且內置的php-fpm默認不支持(start|stop|reload)的平滑啟動參數,需要使用官方源代碼中提供的啟動腳本來控制:

cp

-f

(php

-5.3.x-source-dir)/sapi/fpm/init.d.php-fpm

/etc/init.d/php-fpm

chmod

755

/etc/init.d/php-fpm

/etc/init.d/php-fpm

start

php-fpm支持的操作:

start,啟動PHP的FastCGI進程。

stop,強制終止PHP的FastCGI進程。

quit,平滑終止PHP的FastCGI進程。

restart,

重啟PHP的FastCGI進程。

reload,

重新載入PHP的php.ini。

logrotate,

重新啟用log文件。

5.3.3的php-fpm腳本支持的操作:start|stop|force-quit|restart|reload|status

6.配置好PHP-5.2.14的php.ini,重新載入生效:

vi

/usr/local/php-5.2.14/etc/php.ini

/usr/local/php-5.2.14/sbin/php-fpm

reload

7.修改nginx配置,對需要的服務配置使用PHP-5.2.14:

location

~

.*.(php|php5)?$

{

fastcgi_pass

127.0.0.1:9001;

fastcgi_index

index.php;

include

fcgi.conf;

}

8.記錄一下自己編譯php5.5.10使用的配置

./configure

–prefix=/usr/local/php-5.5.10

–with-config-file-path=/usr/local/php-5.5.10/etc

–with-mysql=mysqlnd

–with-mysqli=mysqlnd

–with-bz2

–with-curl=/usr/bin

–enable-ftp

–enable-sockets

–disable-ipv6

–with-gd

–with-jpeg-dir=/usr/local

–with-png-dir=/usr/local

–with-freetype-dir=/usr/local

–enable-gd-native-ttf

–with-iconv-dir=/usr/local

–enable-mbstring

–enable-calendar

–with-gettext

–with-libxml-dir=/usr/local

–with-zlib

–with-pdo-mysql=mysqlnd

–enable-dom

–enable-xml

–enable-fpm

–with-libdir=lib64

–with-mcrypt=/usr/bin

–enable-zip

–enable-soap

–enable-mbstring

–with-gd

–with-openssl

–enable-pcntl

–with-xmlrpc

–enable-opcache

如何編譯windows nginx php

作了N多次php環境的搭建,網上的方法還真是多,但是實際操作起來總有一些大大小小的出入,很多錯誤經常讓我糾結不已.久病成醫,漸漸地我自己就總結出了一些經驗。自我感覺良好。

這種方法並非以前所流行的apache 加 php_module 的方式運行,我是採用nginx 作為web伺服器,以fastcgi的方式運行php。

linux下編譯:

nginx我還是習慣選擇8.54的版本,它的編譯依賴以下幾個軟體包,解壓這些源碼包,在configure中設置好這些源碼的路徑,nginx在編譯的時候會自己將他們編譯進去的:

 pcre: 主要用於rewrite等模塊

 zlib: 這個不用說了

 openssl: 如果你還知道https這個東西,那麼你懂的~~~(當然你可以不需要這個功能)

 md5 /sha1: 這兩者都是用於生成信息摘要的希哈演算法,這倆個東西不是必須的,但是我發現如果不選擇其中一個那麼openssl是不會成功地編譯進nginx的

下面是我自己寫的一個安裝腳本,有temp-path字樣的編譯選項所設置都是nginx在運行時產生的臨時文件的路徑,pid-path,lock-path也是臨時文件路徑,log-path是日誌文件路徑,我因為自己機子上一些許可權的問題所以要設置一下.一般情況下其實這些是不必要的,nginx默認會統統把生成的這些文件放在自己的安裝目錄下.

tmp=/tmp/nginx

log=/home/jsckdao/log

pcre=~/Downloads/pcre-8.02

zlib=~/Downloads/zlib-1.2.5-src

openssl=~/Downloads/openssl-0.9.8q

md5=~/Downloads/md5-1.3.0

./configure –prefix=/usr/local/nginx \

–http-proxy-temp-path=${tmp}/nginx-proxy.tmp \

–http-fastcgi-temp-path=${tmp}/nginx-fcgi.tmp \

–http-uwsgi-temp-path=${tmp}/nginx-uwsgi.tmp \

–http-scgi-temp-path=${tmp}/nginx-scgi.tmp \

–http-client-body-temp-path=${tmp}/nginx-client.tmp \

–pid-path=${tmp}/nginx.pid \

–lock-path=${tmp}/nginx.lock \

–http-log-path=${log}/http.log \

–error-log-path=${log}/http-error.log \

–with-pcre=$pcre \ #pcre 源碼包的路徑

–with-zlib=$zlib \ #zlib 源碼包的路徑

–with-http_ssl_module \ #起用ssl支持

–with-openssl=$openssl #openssl 源碼包路徑

make

make install

php(5.2)的編譯可以複雜點,也可以簡單點,因為我們編譯php時主要目的是編譯它的腳本引擎和一些核心庫,很多外圍的東西不一定非要在編譯php的時候加進去,可以在需要的時候將它們編譯成擴展庫再修改配置文件來載入它們。

我的編譯代碼如下:

./configure –prefix=/usr/local/php \

–with-mysql=/usr/local/mysql \#設置mysql的安裝路徑

–enable-fastcgi \ #開啟fastcgi支持

–enable-debug #支持調試

make

make install

其實關於mysql的那一句都是可以不要的,只是我懶得再編譯一次mysql擴展,所以就這樣把它直接編譯進php了,這樣做的前提是你必須先安裝mysql。

令外還有一些注意事項:編譯php時必須確保系統中擁有libxml2與libxml2-dev這倆個軟體包,因為php默認會將xml的功能編譯進去,所以xml的支持是必不可少的。還有一個就是autoconf這條命令了,在編譯擴展的時候,phpize會調用系統中的這個命令來生成擴展包的configure文件,沒有它你就不能作擴展了,這一點也是要記住的,畢竟linux下的php不像windows版那樣事先把所有的擴展都編譯好了。

至於window下nginx,php的安裝就沒有什麼難度了,下個zip包,解壓就能用,只要稍微配置就可以了.

配置:

如果只是想讓php能運行的話那麼直接輸入命令:

./php-cgi -b 3344

這樣就開啟了php的fastcgi進程了,-b參數是綁定該進程的偵聽埠,隨便找個沒用的埠填就可以了,這裡綁定的是3344.

然後在nginx的配置文件中加上這麼幾行:

location ~ \.php$ {

root  /home/jsckdao/www; #這是你網站的根目錄

fastcgi_pass127.0.0.1:3344; #這裡指定了fastcgi進程偵聽的埠,nginx就是通過這裡與php交互的

fastcgi_index  index.php;

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

include fastcgi_params;

}

如果要改nginx的偵聽埠的話找到”listen”這麼一項,改就是了.運行nginx,在/home/jsckdao/www目錄中寫一個測試文件test.php:

?php

phpinfo();

?

訪問,如果顯示了php所以的配置信息,那麼就基本沒什麼問題,已經可以用這個環境寫些php代碼了.

至於php的調試器我選擇xdebug,不為什麼,習慣所致。載入xdebug時,在配置文件中的寫法根據系統的不同好像也有點不同。linux下是:zend_extension_debug=path,window中載入的dll有兩種,一種文件名會帶有ts的後綴,這種要這要樣寫:zend_extension_ts=path另外一種就這樣:zend_extension=path,path一定要寫絕對路徑。雖然ts為何意我也不是很清楚,但是這些設置是一定不可以搞錯的。

設置好後重新運行php-cgi,然後重新訪問test.php,如果有xdebug的那一塊出現了,那麼就成功了.

當然這是一個很簡單的配置,只能讓你運行php,要想真正做成你需要的開發環境,還需要你根據自己的需要修改php和nginx的配置文件,這些配置內容很多,我自己也在學習中,就不好多講了.

另外有一點需要注意,php的配置文件在它的源碼包中有兩個:php.ini-dist和php.ini-recommended,分別是針對生成環境和開發環境的配置.你需要把其中一個改名為php.ini.重啟後查看phpinfo()的頁面,靠上的地方有一項”Loaded Configuration File”,它的值如果就是你的php.ini的路徑,那麼就沒問題了,如果不是話,就看看上面一項”Configuration File (php.ini) Path”,你把你的php.ini文件移到這個目錄下在重啟就可以了.因為php默認會在這個路徑下尋找php.ini的.當然你也可以在運行php-cgi的時候設置你的php.ini路徑,比如這樣:

php-cgi -b 3344 -c /home/jsckdao/php.ini

這樣就是把/home/jsckdao/php.ini這個文件作為配置文件了.

按鈕!!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/272165.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-17 00:08
下一篇 2024-12-17 00:08

相關推薦

  • Java如何從Nginx下載文件

    本文將從以下幾個方面詳細介紹如何使用Java從Nginx下載文件。 一、準備工作 在Java中下載文件需要使用到Apache HttpClient庫,這個庫是一個基於Java的HT…

    編程 2025-04-27
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • NGINX許可權被拒絕問題

    NGINX是一款常見的Web伺服器軟體,但是在使用中常會遇到「permission denied」許可權被拒絕的問題。下文將從多個方面介紹本問題和解決方法。 一、系統許可權問題 1、檢…

    編程 2025-04-25
  • 關閉nginx命令詳解

    一、linux系統中關閉nginx命令 1、使用ps命令找到nginx的進程ID $ ps -ef | grep nginx 2、發送信號給nginx進程結束 $ kill -QU…

    編程 2025-04-25
  • 深入淺出:理解nginx unknown directive

    一、概述 nginx是目前使用非常廣泛的Web伺服器之一,它可以運行在Linux、Windows等不同的操作系統平台上,支持高並發、高擴展性等特性。然而,在使用nginx時,有時候…

    編程 2025-04-24
  • nginx指定配置文件詳解

    一、配置文件介紹 nginx的配置文件主要由指令和塊組成,以「;」分號作為結束符號,以「{}」大括弧作為塊的開始和結束標誌。 nginx的默認配置文件在安裝目錄下的conf文件夾中…

    編程 2025-04-24
  • 重啟nginx服務的命令詳解

    nginx是一個高性能的Web伺服器,可通過重新啟動nginx服務來更新配置文件和釋放資源。本文將從多個方面詳細闡述如何重啟nginx服務,包括命令的使用、參數的說明等。 一、ng…

    編程 2025-04-24
  • Nginx$Host詳解

    一、什麼是Nginx$Host Nginx是一款輕量級的Web伺服器,可以作為反向代理伺服器、負載均衡伺服器等。而Nginx$Host是Nginx中的一個特殊變數,它用於表示當前請…

    編程 2025-04-23
  • Mac Nginx詳細介紹

    一、安裝Nginx 安裝nginx最簡便的方法是使用Homebrew。執行以下命令來安裝Homebrew: /usr/bin/ruby -e “$(curl -fsSL https…

    編程 2025-04-23
  • 如何解決Windows下Nginx啟動一閃而過的問題

    一、Nginx 安裝及配置過程 Nginx是一款輕量級的Web伺服器,可以用於反向代理、負載均衡、緩存等方面的應用,常用於Web應用的高並發場景。在Windows系統上,安裝ngi…

    編程 2025-04-23

發表回復

登錄後才能評論