Raspberry Pi 安裝 LAMP(PHP 7.3)

最近因為工作上的需求,要在樹莓派上安裝 Web Server,於是開始嘗試將各種 Web Server 架構安裝在樹莓派上,第一個嘗試的是目前很常見的 LAMP 架構,即是 Linux Base OS、Apache、MySQL、PHP。網路上找過很多資料,大部分都是直接安裝樹莓派對應版本支援的最新版 PHP,但是由於安全性及支援度考量問題,會需要去安裝最新版的 PHP (7.3),所以這篇文章主要就先採取目前最新版 7.3 版為主要安裝版本,其他版本安裝方式雷同,更換版本號即可。

套件更新

將目前已經安裝的套件都先更新到最新。

sudo apt update

sudo apt upgrade

設定PHP套件路徑

由於我們要安裝的是 PHP 7.3,在目前樹莓派官方網站所下載的 OS (Raspbian)中預設的版本非 7.3,所以要另外更改路徑。

sudo apt install ca-certificates apt-transport-https -y

wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

sudo apt update

安裝及設定 Apache

sudo apt install apache2 -y

sudo a2enmod rewrite

sudo service apache2 restart

設定資料夾權限

Apache 的根目錄預設為 /var/www/html,但是僅有 root 權限可以編輯跟修改,對我們後續開發及編寫較為不容易,所以這邊將該資料夾所有者設定為目前的使用者(預設是 pi,如果有另外新增使用者,將 pi 改為使用者名稱即可),接著將資料夾權限修改為 770,代表 root 及 同群組使用者(這邊指 pi)都擁有完全控制權。

sudo chown -R pi:www-data /var/www/html/

sudo chmod -R 770 /var/www/html/

安裝 PHP 7.3

這邊主要安裝幾個 PHP 常用的模組,若需要其他模組可以上下列網址查詢
https://packages.debian.org/source/buster/php7.3

  • libapache2-mod-php7.3 讓Apache支援PHP
  • php7.3-cli PHP的命令列模式
  • php7.3-common PHP的文件、範例及基本模組
  • php7.3-curl PHP連接其他URL或網站使用(包含網路協定處理)
  • php7.3-mbstring PHP字串處理使用(PhpMyAdmin必須要有此項)
  • php7.3-mysql PHP連接MySQL使用
  • php7.3-xml PHP處理XML使用
  • php7.3-json PHP處理JSON使用
sudo apt install libapache2-mod-php7.3 php7.3-cli php7.3-common php7.3-curl php7.3-mbstring php7.3-mysql php7.3-xml php7.3-json -y

安裝 MySQL

sudo apt install mysql-server -y

sudo service apache2 restart

安裝及設定 PhpMyAdmin

安裝過程中會需要進行相關設定,依照下列圖片及說明進行設定即可。

sudo apt install phpmyadmin -y

由於我們要使用 LAMP,所以網頁伺服器選擇 apache2,再按確定。

接著他會詢問你是否要設定 PhpMyAdmin 連結資料庫,這邊選是即可。

接著要設定 PhpMyAdmin 連結資料庫的密碼,這邊直接空著按下確定,他會自動亂數幫你產生。

重設 MySQL 的 root 帳號

輸入下列指令後,會以 root 身分進入 MySQL。

sudo mysql -u root

進入後左方會變成類似如下的 MariaDB [(none)]>,依照下列順序輸入指令即可,全部輸入完成後便會離開 MySQL。

MariaDB [(none)]> use mysql;

MariaDB [(none)]> update user set plugin='' where User='root';

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> \q

接下來設定 root 帳戶的密碼及相關內容,輸入該指令後依照下列圖片及說明操作即可。

mysql_secure_installation

首先要輸入當前 root 帳戶的密碼,預設是沒有密碼的所以直接按下 Enter 就好。

接著會詢問是否要設定密碼,輸入 y 之後,會要輸入兩次密碼(如下圖三條紅線處),輸入完成可以看到如下結果畫面。

接著會詢問是否移除訪客帳戶,基於安全性考量建議輸入 y,然後按下 Enter,移除訪客帳戶。

接下來會詢問是否不允許 root 帳戶從遠端電腦登入 MySQL,基於安全性建議輸入 y,再按 Enter,不允許 root 遠端登入。

然後會詢問是否移除測試資料庫,建議輸入 y,再按 Enter 以移除測試資料庫。

最後會詢問是否重新載入權限資料表,這邊要輸入 y,重新加載讓剛剛設定更新。

設定 PhpMyAdmin 存取路徑

依照下方設定完成後,就可以開啟瀏覽器輸入 http://127.0.0.1/phpmyadmin 或 http://localhost/phpmyadmin 應該就可以正常啟動 PhpMyAdmin,並能夠登入及使用。

cd /etc/apache2/conf-available

sudo ln -s ../../phpmyadmin/apache.conf phpmyadmin.conf

cd /etc/apache2/conf-enabled

sudo ln -s ../conf-available/phpmyadmin.conf phpmyadmin.conf

sudo service apache2 restart

備註

輸入下列指令,即可改以 root 權限執行後續所有指令,故可以省略上方所有指令的 sudo。

sudo bash

使用 apt 安裝時(類似下列指令),最後方輸入 -y 是為了強制同意安裝所有相依的套件,若沒有輸入則在安裝時會跳出所有相依套件,並詢問是否安裝,這部分可以依個人需求調整。

sudo apt install apache2 -y

參考資料