在 Ubuntu 20.04 LTS 上安裝 Apache、MariaDB及php

656 字
3 分鐘
在 Ubuntu 20.04 LTS 上安裝 Apache、MariaDB及php

更新 Ubuntu Server#

Terminal window
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

改時區 Asia/Taipei (依需求執行)#

Terminal window
sudo timedatectl set-timezone Asia/Taipei

改語言 zh_TW (依需求執行)#

下載語言包

Terminal window
sudo apt-get install language-pack-zh-hant language-pack-zh-hant-base manpages

將 /etc/default/locale 打開,將檔案內容改為以下內容

LANG="zh_TW.UTF-8"

最後,執行以下指令進行套用,或重開機自動套用

Terminal window
. /etc/default/locale

安裝LAMP#

1. Apache 網頁伺服器#

安裝

Terminal window
sudo apt install -y apache2 apache2-utils

檢查安裝結果

Terminal window
systemctl status apache2

以下為其他常用指令

Terminal window
sudo systemctl start apache2 #將apache2啟用為系統服務
sudo systemctl enable apache2 #將apache2自系統服務關閉
apache2 -v #檢查apache2版本

開啟防火牆的 80 port

Terminal window
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo ufw allow http

將Web根目錄的擁有者設為「www-data」

Terminal window
sudo chown -R www-data:www-data /var/www/html/

檢查設定檔是否有誤

Terminal window
sudo apache2ctl -t

若執行上述程式碼時遇到錯誤「AH00558: apache2: …」錯誤時,編輯「/etc/apache2/conf-available/servername.conf」並加入一行「ServerName localhost」之後執行以下指令

Terminal window
sudo a2enconf servername.conf
sudo systemctl reload apache2

2. MariaDB 資料庫#

安裝 software-properties-common 並下載金鑰

Terminal window
sudo apt-get install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

指定版本安裝 (此文章發布時最新版為 mariadb 10.5版)

Terminal window
sudo add-apt-repository 'deb [arch=amd64] http://mariadb.mirror.globo.tech/repo/10.5/ubuntu focal main'
sudo apt-get update
sudo apt-get install mariadb-server mariadb-client

檢查安裝結果

Terminal window
systemctl status mariadb

以下為其他常用指令

Terminal window
sudo systemctl start mariadb #將mariadb啟用為系統服務
sudo systemctl enable mariadb #將mariadb自系統服務關閉
mariadb --version #檢查mariadb版本

以root帳號(有密碼)登入資料庫指令

Terminal window
mysql -u root -p

3. php 7.4#

安裝php及常用的相關模組

Terminal window
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline

啟用php模組並重啟apache2

Terminal window
sudo a2enmod php7.4
sudo systemctl restart apache2

檢查php版本

Terminal window
php --version

安裝phpMyAdmin#

執行指令,並依照畫面提示安裝

Terminal window
sudo apt install phpmyadmin

設定資料庫root密碼#

1. 安裝 mysql_secure 設定#

執行指令,並依照畫面提示設定

Terminal window
sudo mysql_secure_installation

2. 進入資料庫手動設定#

Terminal window
sudo mysql -u root mysql
#mysql(mariadb)指令頁
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;
#查看密碼設定
select User,Host,Password,Plugin from mysql.user;
#變更密碼Plugin
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
#變更密碼
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("password");

【後記】安裝 mariaDB後 無法正常運作之排除#

  • 發生mariadb常常自己關掉開了mariadb沒多久就關掉下了service mariadb start指令後直接timeout

1. 安裝AppArmor管理工具#

安裝 AppArmor 並查詢 /usr/sbin/mysqld

Terminal window
sudo apt-get install apparmor-utils
sudo aa-status

2. 移掉/usr/sbin/mysqld#

方法一

Terminal window
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo reboot

方法二

Terminal window
sudo aa-remove-unknown
sudo reboot

3. 故障排除參考來源#

摘要:

Terminal window
sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.
ERROR: /etc/apparmor.d/usr.sbin.mysqld contains no profile

add the lines to /etc/apparmor.d/usr.sbin.mysqld, and then I could set it to complain mode successfully.

/usr/sbin/mysqld {
}

文章分享

如果這篇文章對你有幫助,歡迎分享給更多人!

在 Ubuntu 20.04 LTS 上安裝 Apache、MariaDB及php
https://linziyou.info/posts/2020-03-24-在-ubuntu-20-04-lts-上安裝-apachemariadb及php/
作者
Lin Ziyou
發布於
2020-03-24
許可協議
CC BY-NC-SA 4.0
最後更新於 2020-03-24,距今已過 2169 天

部分內容可能已過時

Profile Image of the Author
Lin Ziyou
Hi! I'm Jerry~
分類
標籤
站點統計
文章
45
分類
8
標籤
10
總字數
43,470
運作天數
0
最後活動
0 天前

目錄