摘要:安裝和這里我使用的版本,目前官方已經發布了的版本。已經被包含在里面了,無需另外安裝。。。當然,我這里只是配置了一個最基本的運行環境,像你要運行項目的話應該還要配置虛擬主機偽靜態這些。
基本原理回想以前使用php都是通過apache來加載php的module運行的,最近看到公司的項目逐漸切到nginx了,抱著好奇心,周末就開始搗鼓起來了。。。
nginx本身不能處理PHP,它只是個web服務器,當接收到請求后,如果是php請求,則發給php解釋器處理,并把結果返回給客戶端。
nginx一般是把請求發fastcgi管理進程處理,fascgi管理進程選擇cgi子進程處理結果并返回被nginx。
這里我使用的php7版本,目前官方已經發布了php7的beta3版本。php-fpm已經被包含在里面了,無需另外安裝。。。
至于php7的編譯安裝,看一下我之前的 這篇文章 文章就妥妥的搞定了!
nginx的話,毫無疑問我肯定選擇源碼編譯安裝,因為確實是習慣了這種方式了!
我這里就拿1.6.2版本為例,戳 這里下載,解壓之后進入源碼目錄
#配置,相關參數含義自己去查閱文檔哦 ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-cc-opt="-Wno-deprecated-declarations" #編譯 make #安裝 sudo make install測試ngnix
#命令拷貝到系統目錄,方便使用 sudo cp /usr/local/nginx/nginx /usr/bin #測試配置是否出錯,如果出錯,按照錯誤信息提示去修改了 nginx -t #啟動nginx nginx
頁面訪問,輸入http://localhost:8888查看【這里我在配置文件里面把nginx的監聽端口改成了8888】出現如下頁面就正常了
配置php-fpm#復制一份有效的配置文件 sudo cp /usr/local/php7/etc/php-fpm.conf.default.conf php-fpm.conf #復制一份有效的用戶配置文件,用戶名是配置php的時候指定的 sudo cp /usr/local/php7/etc/php-fpm.d/www.conf.default www.conf #啟動php-fpm,mac必須要以root用戶啟動,-R 參數表示 --allow-to-run-as-root sudo /usr/local/php7/sbin/php-fpm -R #查看一下php-fpm是否啟動成功 ps aux | grep php-fpm #這里我修改了php-fpm的端口號,默認是9000 netstat -ant | grep 90001nginx整合php-fpm
修改nginx的配置文件,支持php文件的解析
#打開配置文件,找到`location ~ .php$`這里,默認的如下 ... #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9001; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # include fastcgi_params; #} ... #稍微改吧改吧就成了下面的樣子,相信你看的懂什么意思了。。。 ... location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ...測試php文件的解析
cd /usr/local/ngnix/html echo " index.php
瀏覽器訪問 http://localhost:8888/index.php,熟悉的畫面又出現了!
總結一下經過以上這些簡單的步驟之后,nginx下運行php相信不再是那么神秘了。。。
當然,我這里只是配置了一個最基本的運行環境,像你要運行項目的話應該還要配置虛擬主機、偽靜態這些。
還有就是nginx配置文件的參數含義,這個有空的話還是去看看官方文檔說明,畢竟你要知道你配置的每一項是什么意思才好!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39180.html
摘要:地址這是一份適用于生產和開發環境的。目前已經在我司的生產環境上并運行良好。日常開發中也是基于此鏡像進行的。如果想快速看看鏡像里有啥東西,只需要運行其中替換成你實際的鏡像。開發環境的使用單獨運行這個容器是沒有意義的。 GITHUB地址:https://github.com/banyancheu... 這是一份適用于生產和開發環境的 Dockerfile。 在 phuison/baseim...
摘要:地址這是一份適用于生產和開發環境的。目前已經在我司的生產環境上并運行良好。日常開發中也是基于此鏡像進行的。如果想快速看看鏡像里有啥東西,只需要運行其中替換成你實際的鏡像。開發環境的使用單獨運行這個容器是沒有意義的。 GITHUB地址:https://github.com/banyancheu... 這是一份適用于生產和開發環境的 Dockerfile。 在 phuison/baseim...
摘要:為提供模塊,需要庫支持為提供功能為支持地址重寫功能確保已正確安裝在上面的基礎環境安裝中,我們已經安裝了,但是部分服務器上并沒有的安裝包,所以我們可以通過下載包自行編譯安裝。 一直以來我都通過網上的一些材料去搭建lnmp環境,通過直接yum安裝nginx mysql php等軟件。但是為了原生態的編譯安裝最新的軟件版本,我決定自己親手搭建lnmp環境,采用最新的nginx1.9.7(昨天...
摘要:將復制到容器中,這三個文件用于后續安裝擴展。非常容易理解,這里定義了兩個服務,依賴鏡像,并且將文件夾映射為文件夾,服務依賴服務,并且服務,這樣就能通過網絡與容器通信,服務基于鏡像,并將文件映射為文件。 環境部署一直是一個很大的問題,無論是開發環境還是生產環境,但是 Docker 將開發環境和生產環境以輕量級方式打包,提供了一致的環境。極大的提升了開發部署一致性。當然,實際情況并沒有這么...
摘要:將復制到容器中,這三個文件用于后續安裝擴展。非常容易理解,這里定義了兩個服務,依賴鏡像,并且將文件夾映射為文件夾,服務依賴服務,并且服務,這樣就能通過網絡與容器通信,服務基于鏡像,并將文件映射為文件。 環境部署一直是一個很大的問題,無論是開發環境還是生產環境,但是 Docker 將開發環境和生產環境以輕量級方式打包,提供了一致的環境。極大的提升了開發部署一致性。當然,實際情況并沒有這么...
閱讀 2319·2021-11-23 09:51
閱讀 3752·2021-11-11 10:57
閱讀 1400·2021-10-09 09:43
閱讀 2489·2021-09-29 09:35
閱讀 2019·2019-08-30 15:54
閱讀 1792·2019-08-30 15:44
閱讀 3185·2019-08-30 13:20
閱讀 1694·2019-08-30 11:19