本筆記紀錄如何在Linux(CentOS 8)安裝Nginx, MySQL, PHP環境。
為了方便,以下皆以root身份來安裝,先切換至root:
$ su -
安裝Nginx:
CentOS 8 的 Repository 內建 Nginx,直接下指令安裝:
$ yum -y install nginx
啟動Nginx:
$ systemctl start nginx
設定開機自動啟動:
$ systemctl enable nginx
接著設定firewalld:
- 啟動與開機自動執行
$ systemctl start firewalld
$ systemctl enable firewalld
- 列出目前允許的rule:
$ firewall-cmd --list-services
- 打開80 & 443 port:
$ firewall-cmd --permanent --add-service=http
$ firewall-cmd --permanent --add-service=https
$ firewall-cmd --reload
測試Nginx是否安裝成功:
安裝PHP:
CentOS 8 自帶PHP 7.2版本,若想安裝7.2以上的版本,需用其他方式安裝。
安裝php與常用套件:
$ yum install php php-fpm php-mysqlnd php-opcache php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel
php fpm 預設以apache這個user/group的身分來執行,需改為nginx。
打開這個文件:
$ vim /etc/php-fpm.d/www.conf
找到如下圖紅框,改為nginx。
啟動PHP-FPM與開機自啟動:
$ systemctl start php-fpm
$ systemctl enable php-fpm
重啟nginx生效設定:
$ systemctl restart nginx
測試php是否成功安裝:
$ vim /usr/share/nginx/html/test.php
建立並打開test.php輸入以下code:
?php
phpinfo();
?
安裝MySQL:
CentOS 8 預設的 repositories 已經內建 MySQL 8.0
$ dnf install @mysql
啟動MySQL與開機自動執行:
$ systemctl enable --now mysqld
安全設定:
$ mysql_secure_installation
如上圖,會詢問是否要安裝 VALIDATE PASSWORD component,這是可以測試 MySQL 密碼強度的 plugin,可選擇等級。
輸入完設定的密碼後,會判斷密碼強度數值,詢問是否確定。
提示MySQL預設會有一個匿名用戶,允許任何人不必創建帳號就能登入,這僅用於測試跟讓安裝快速,記得把它刪除。
正常來說,root應該只能從localhost登入,避免有意人士從外部連進來猜root密碼,因此詢問要不要移除root可遠端登入。
是否要移除測試資料庫與權限,之後reload privilege table立刻生效。
登入MySQL:
$ mysql -u root -p
輸入密碼
若登入成功即安裝完成。