最近因為工作上的需求,要在樹莓派上安裝 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