要想讓 PHP 能夠被 web 服務器運行,需要搭建一個能夠運行 PHP 腳本的環境。LNMP 是 Linux、Nginx、MySQL 和 PHP 的首字母縮寫,是一個能夠運行 PHP 的環境。LNMP 的部署非常簡單,可以使用包管理器或手動安裝。使用包管理器部署 LNMP 只需要一行命令,如在 Ubuntu 上使用 APT 管理器安裝:
sudo apt-get install nginx mysql-server php-fpm
然而這樣部署 LNMP 只能獲得默認的配置文件,如果需要調整配置,需要手動編輯。例如,如果需要修改 Nginx 的配置,可以編輯 /etc/nginx/sites-available/default 文件。Nginx 的這個配置文件中可以配置下列信息:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
上面的示例中,server_name 配置為 "_",表示任何 IP 地址或域名都可以訪問。如果在同一臺服務器上工作,可以將 server_name 修改為 localhost 或 127.0.0.1。如果需要在默認路徑 /var/www/html 之外部署網站,還需要修改 root 設置。
配置 Nginx 后,還需要配置 PHP-FPM。PHP-FPM 是 PHP FastCGI 進程管理器的縮寫,功能是管理 PHP 進程、調度請求,并提供進程池等方便的功能。PHP-FPM 的配置文件在 /etc/php/{version}/fpm/pool.d/www.conf 中,可以編輯此文件來配置 PHP-FPM:
[www] user = www-data group = www-data listen = /run/php/php7.0-fpm.sock listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 request_terminate_timeout = 30
在上面的示例中,我們使用 Unix 域套接字來綁定 PHP-FPM,而不是使用 TCP 端口。關于 pm 相關的設置,可以根據實際情況來選擇適當的值。
配置好 Nginx 和 PHP-FPM 后,就可以放置 PHP 文件到 /var/www/html 目錄下并訪問了。例如,如果有一個 hello.php 文件:
可以使用瀏覽器訪問服務器的 IP 地址加文件名的方式訪問該 PHP 文件。在瀏覽器中輸入:http://服務器IP/hello.php,就能看到 "Hello, world!" 的輸出了。
總之,LNMP 提供了一個能夠部署 PHP 的環境,而且可以通過簡單的配置文件來定制環境。部署 LNMP 可以一步步來配置,非常容易上手。希望讀者在本文介紹的 LNMP 環境下愉快地開發 PHP 項目!