:clap: 本系列持續更新中,歡迎關注:https://github.com/wi1dcard/laravel-deploy...。
由於課程上下文關聯比較緊密,在開始前請先閱讀 本文。
你的支援是我寫作的動力;關注我的客官們,請在右上角點個贊,將會讓文章在首頁展示,幫助更多人。
感謝 :clap: !
PHP 環境是執行 Laravel 應用必不可少的元件之一,本節將帶領大家安裝 PHP 7.2。
配置第三方軟體源
由於 Ubuntu 的官方軟體源通常不包含最新版本的 PHP,因此需要新增一個包含最新 PHP 的第三方軟體源。
在新增之前,我們首先安裝名為 software-properties-common
的軟體包,它提供了快速管理軟體源的實用指令碼:
$ apt install -y software-properties-common
相比之前執行的 apt install
命令,這次我新增了 -y
選項,表示當 APT 遇到詢問時預設確認,避免再次輸入 Y
並回車。
隨後,執行以下指令碼新增第三方 PHP 軟體源:
$ add-apt-repository -y ppa:ondrej/php
成功後別忘記重新整理:
$ apt-get update
安裝 PHP
PHP 的安裝實際上分為三個軟體包:
- PHP - PHP 自身。
- PHP-CLI - PHP 的命令列介面,通俗地說,在命令列內執行
php
便依賴於此包。 - PHP-FPM - 全稱為
PHP FastCGI Process Manager
,用於管理 PHP 程式,並提供 FastCGI 介面與 Nginx 互動;瀏覽網頁時的請求便是由 Nginx 交由 PHP-FPM 處理的。
apt install
支援多引數,所以我們不必執行多次安裝,只需在單條命令內寫明多個軟體包即可:
$ apt install -y php7.2 php7.2-cli php7.2-fpm
按照 Laravel 5.8 安裝文件 的說明,接著安裝幾個必備的 PHP 擴充套件:
$ apt install -y php7.2-mbstring php7.2-xml php7.2-bcmath
注意:由於 PDO 等擴充套件已經內建在 PHP 中,故無需額外安裝。
對於不同專案的不同依賴,可能有必要安裝以下擴充套件,根據實際情況選擇即可:
$ apt install php7.2-curl php7.2-gd php7.2-mysql php7.2-opcache php7.2-zip php7.2-sqlite3
有個小技巧是,你可以通過 apt-cache
命令來搜尋當前軟體源內的包:
$ apt-cache search php7.2
例如以上命令,將會得到所有名稱、描述等資訊內包含 php7.2
字樣的軟體包:
php-amqp - AMQP extension for PHP
php-apcu - APC User Cache for PHP
php-geoip - GeoIP module for PHP
...
管理 PHP-FPM 服務
與管理 Nginx 服務類似,你同樣可以通過 service
和 systemctl
命令管理 PHP-FPM 服務:
$ service php7.2-fpm restart # 重啟 PHP-FPM
$ service php7.2-fpm start # 啟動 PHP-FPM
$ service php7.2-fpm stop # 停止 PHP-FPM
$ systemctl enable php7.2-fpm # 啟用 PHP-FPM 開機啟動
$ systemctl disable php7.2-fpm # 禁用 PHP-FPM 開機啟動
注意:不同版本的 PHP-FPM 服務名是不一致的。例如 7.2 為
php7.2-fpm
,7.3 為php7.3-fpm
,以此類推……
確認 PHP-FPM 正常執行
通過以下命令可確認 PHP-FPM 程式正在執行:
$ ps aux | grep php
其中:
ps aux
用於列出系統當前正在執行的所有程式的所有資訊。|
名為管道操作符,將前一條命令的標準輸出連線到下一條命令的標準輸入。grep
是一款文字搜尋工具,常用來過濾命令列輸出;php
是搜尋的關鍵詞。
ps
將程式資訊輸出到 grep
進行過濾,後者篩選出包含 php
字樣的行,再將它們輸出。於是,它們相結合,產生的效果便是這樣:
root 6546 0.0 3.8 315484 19340 ? Ss 14:13 0:00 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
www-data 6550 0.0 1.0 315484 5260 ? S 14:13 0:00 php-fpm: pool www
www-data 6551 0.0 1.0 315484 5260 ? S 14:13 0:00 php-fpm: pool www
root 6566 0.0 0.1 15964 920 pts/0 S+ 14:13 0:00 grep --color=auto php
忽略最後一行(這是我們正在執行的 grep
命令),可觀察到有 php-fpm
程式正在執行中。
若 PHP-FPM 程式不存在,那麼輸出將只有孤零零的 grep
:
root 6722 0.0 0.1 15964 920 pts/0 S+ 14:24 0:00 grep --color=auto php
提示:你可以結合上文提到的
service
命令,將服務程式手動停止試試看;測試完畢不要忘記再次啟動。
本作品採用《CC 協議》,轉載必須註明作者和本文連結