ubuntu中安裝和配置nginx+php-fpm

2021-12-28 hustoj

昨天有朋友問,如何安裝和配置nginx,其實非常簡單。

發行版已經很貼心的把這些常用的工具都放在軟體倉庫裡了,這裡以ubuntu為例:

sudo apt-get install nginx

sudo apt-get install php-fpm php-gd php-mbstring php-mysql

第一句就是安裝nginx,第二句就是安裝php-fpm和常用的組件。

裝好以後可以用netstat -lnt查看當前監聽的埠。


這裡還可以留意是否有php-fpm在監聽127.0.0.1:9000這個埠,因為不同的發行版可能會有不一樣的默認配置,如果有,下面的操作會略有差異。

接下來編輯默認的配置文件

 sudo vim /etc/nginx/sites-enabled/default


vim按i進入插入模式

root 這行指定了默認web目錄的位置。

藍色字體的是注釋部分,照著注釋,可以看見應該做的修改。

1、添加index.php ,紅色框

2、通過移除#注釋打開php解析,黃色框。

* 如果前面有127.0.0.1:9000在監聽,那麼應該啟用綠框裡的內容

fastcgi_pass 127.0.0.1:9000;

而不是 

   fastcgi_pass unix:/run/php/php7.0-fpm.sock;

改完保存退出(vim指令  Esc : wq)

然後重啟nginx

sudo /etc/init.d/nginx restart

就算大功告成了。

可以寫個phpinfo.php來測試一下php是否正確運行。


原創不容易,歡迎進入官方QQ群23361372。

如果有人想看,下次我再寫個ubuntu上自帶的tomcat怎麼用,估計很多人也是不會。

相關焦點

  • Ubuntu安裝部署配置Nginx服務
    HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。其將原始碼以類BSD許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4發布。Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。
  • 如何在 CentOS 7 中使用 Nginx 和 PHP7-FPM 安裝 Nextcloud
    在這篇文章中,我將向你展示如何在 CentOS 7 伺服器中安裝和配置最新版本的 Nextcloud 10。我會通過 Nginx 和 PHP7-FPM 來運行 Nextcloud,同時使用 MariaDB 做為資料庫系統。
  • php-fpm的配置和優化
    php-fpm配置詳解這是搜索的一份還算算比較詳細的php-fpm.conf配置詳解,我會針對性的修改下,當然php手冊上也有詳細的講解:http://php.net/manual/zh/install.fpm.configuration.phppid = /usr/local
  • 【高級】伺服器部署:在伺服器上對 PHP-FPM 和 Nginx 進行安裝配置詳解
    安裝sudo apt-get install python-software-propertiessudo add-apt-repository ppa:ondrej/php-5.6sudo apt-get updatesudo apt-get install php5-fpm php5-cli php5-curl \     php5-gd
  • 在Linux 容器中對php-fpm緩衝區溢出漏洞的復現分析 ( CVE-2019-11043 )
    CVE-2019-11043是php-fpm中的一個緩衝區溢出漏洞,在某些情況下會導致遠程執行。PHuiP-FPizdaM有一個針對某些nginx和php-fpm配置的漏洞復現測試,他們描述了如何使用Docker來測試此漏洞。在本文中,我們使用LXD來測試漏洞並驗證其是否真實有效。
  • 在 Ubuntu 16.04 為 Nginx 伺服器安裝 LEMP 環境(MariaDB,PHP 7 並支持 HTTP 2.0)
    看到協議中有 h2 的話,表明 Nginx 已經成功配置使用 HTTP/2.0 協議。所有最新的瀏覽器默認都能夠支持這個協議。FastCGI 能夠從 Ubuntu 官方倉庫中安裝 php-fpm 二進位包來獲取。9、 在你的伺服器控制臺裡輸入下面的命令來獲取 PHP7.0 和擴展包,這能夠讓 PHP 與 Nginx 網絡服務進程通信。
  • php環境搭建(正確配置nginx和php)
    前言:首先來了解一下nginx工作原理:https://blog.csdn.net/hguisu/article/details/8930668一.nginx實現php動態解析原理nginx 是一個高性能的http伺服器和反向代理伺服器。
  • nginx調用php-fpm的工作原理
    本文的主要內容為如何在nginx server中正確配置php調用方法,以及配置的基本原理。 一、nginx+php運行原理:首先簡單的講一講原理,目前主流的nginx+php的運行原理如下:1、nginx的worker進程直接管理每一個請求到nginx的網絡請求。
  • PHP-FPM 與 Nginx 的通信機制總結
    Nginx 與 php-fpm 的結合在 Linux 上,nginx 與 php-fpm 的通信有 tcp socket 和 unix socket 兩種方式。tcp socket 的優點是可以跨伺服器,當 nginx 和 php-fpm 不在同一臺機器上時,只能使用這種方式。
  • 全面剖析 PHP-FPM+Nginx 通信原理
    php-fpm和nginx一樣,也會監聽埠(通過nginx.conf裡的配置我們知道,nginx默認監聽8080埠,php-fpm默認監聽9000埠),並且有master和worker進程,worker負責處理每一個php請求關於fastcgi:fastcgi是一個協議。市面上有多種實現了fastcgi協議的進程管理器,php-fpm就是其中的一種。
  • nginx和php-fpm通信,使用unix socket還是TCP?
    配置指南一、TCP配置方式TCP通信配置起來很簡單,三步即可搞定第一步,編輯 /etc/nginx/conf.d/你的站點配置文件(如果使用的默認配置文件,修改/etc/nginx/sites-available/default)將fastcgi_pass參數修改為
  • Nginx+Php-fpm運行原理詳解
    Php-fpm是什麼1、cgi、fast-cgi協議cgi的歷史早期的webserver只處理html等靜態文件,但是隨著技術的發展,出現了像php等動態語言。webserver處理不了了,怎麼辦呢?那就交給php解釋器來處理吧!交給php解釋器處理很好,但是,php解釋器如何與webserver進行通信呢?
  • 502錯誤,讓你進一步明白nginx和php-fpm之間的關係
    在我這個案例中,Nginx通過FastCGI協議連接PHP-FPM(7.1),Nginx和PHP-FPM部署在同一臺機器上,配置完成後,在瀏覽器中訪問,報了一個 502 錯誤。/fpm-www.access.log再解釋下 pool 配置文件,一般情況下,nginx 一個虛擬主機對應一個 php-fpm pool 文件,這樣不同的 php-fpm 工作進程就隔離了,互不影響。
  • 只需某些特定的Nginx + PHP-FPM 配置,即可觸發PHP 遠程代碼執行漏洞
    他和另外兩名研究員 Emil Lerner 和 beched 研究發現,在某些 nginx +php-fpm 配置下,漏洞即可被觸發。如果一臺 web 伺服器運行 nginx +php-fpm且 nginx 的配置如下:location ~ [^/]\.php(/|$) { ... fastcgi_split_path_info ^(.+?
  • php7+的php-fpm參數配置注意事項
    安裝php7+的,如果php-fpm的這幾個參數設置不當了,會導致php-fpm啟動不了,nginx站點不能解析php文件,報404
  • 用 caddy 代替 nginx, 一行配置搞定 php-fpm 反向代理
    一是當時 nginx 還是非常堅挺, 可以說在 nginx + php-fpm 這一搭配方面, 基本上無敵手. 二是, 當時我試用過 Caddyfile 後,發現它太簡潔了,簡潔到我以配置 nginx 的思維, 完全無法適應配置 Caddyfile. 沒錯, 我當時覺得 , 配置 nginx 比 Caddyfile 簡單多了 (因為 nginx 配置已經熟練多年).
  • 漏洞警告:PHP 官方披露了Nginx + php-fpm 部分配置下存在的遠程代碼執行高危漏洞
    官方發布了在 Nginx 配置不當的情況下 php-fpm 可導致遠程代碼執行的漏洞。但由於是配置文件的開放性,還請使用nginx+php-fpm 的服務管理員/運維人員及時做好自查自檢工作。【漏洞詳情】        PHP 官方發布漏洞通告,提到 Nginx 與 php-fpm 伺服器上存在的一處高危漏洞,由於Nginx的 fastcgi_split_path_info 模塊在處理帶 %0a 的請求時,對換行符 \n 處置不慎導致將 PATH_INFO 置為空,從而導致 php-fpm 組件在處理
  • PHP 連接方式介紹以及如何攻擊 PHP-FPM
    ,第三張圖的 FPM 代表了 php-fpm 進程的 fastcgi 模式一般來說,apache 伺服器常用 module 方式起 php,nginx 伺服器常用 fastcgi 模式起 php,所以接下來我已 nginx 為例php-fpm 的模式是不是很繞,php-fpm 下還可以繼續分,如果使用 fastcgi 模式,nginx 與 php-fpm 通信可以通過兩種模式
  • 為多個PHP-FPM容器量身打造單一Nginx鏡像
    PHP-FPM和Nginx一起使用可以產生更好的PHP應用程式性能[3],但缺點是PHP-FPM Docker鏡像默認沒有像PHP Apache鏡像那樣與Nginx捆綁在一起。如果您想將Nginx容器連接到PHP-FPM後端,則需要將該後端的DNS記錄添加到您的Nginx配置中。例如,如果PHP-FPM容器作為名為php-fpm-api的容器運行,那麼您的Nginx配置文件應該這樣寫:
  • php-fpm優化
    = E_WARNING & E_ERRORlog_errors = Onerror_log = /var/log/php_error.log2. php-fpm主配置文件/etc/php-fpm.conf調整#第一部分,fpm配置;include=etc/fpm.d/*.conf#第二部分,全局配置[global