VirtualBox建置LNMP-2
安裝MariaDB
安裝 MariaDB 及 MariaDB-server套件
1
sudo yum groupinstall mariadb mariasb-client -y
啟動服務
1
sudo systemctl start mariadb
啟用開機自動啟動
1
sudo systemctl enable mariadb
檢查服務狀態
1
sudo systemctl status mariadb
加強 MariaDB 安裝的安全性(建議)
1
sudo mysql_secure_installation
- 要求先輸入目前DB root 的密碼(預設無,直接按enter)
- 詢問是否變更root 密碼(建議Y)
- 是否移除匿名使用者(建議Y)
- 是否關閉root 遠端登入(建議Y)
- 是否移除 test DB(建議Y)
- 是否重新載入權限資料表(Y)
完成後可檢查版本,確認安裝成功
1 | mysql -V |
連線進入
1
mysql -u root -p
建議另開user 及賦予權限 (可跳過)
1
2CREATE USER 'username'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;安裝PHP
因客戶家要求使用7.3.11 以上的版本,目前7.3的生命週期已經結束,所以這邊用7.4來做安裝
安裝 EPEL Yum 源,基本上就是一個額外的Linux軟體包
1
sudo yum install epel-release -y
安裝Remi的軟體包,這樣才可以把PHP7抓回來安裝
1
sudo yum localinstall <http://rpms.remirepo.net/enterprise/remi-release-7.rpm> -y
啟用php7.4
1
sudo yum-config-manager --enable remi-php74
安裝php
1
2
3sudo yum --enablerepo=remi-php74 install php -y
#or
#sudo yum install php確認php 版本
1
php -v
安裝php-fpm
1
sudo yum --enablerepo=remi-php73 install php-fpm -y
啟用php-fpm
1
2sudo systemctl start php-fpm
sudo systemctl enable php-fpm編輯nginx conf
1
sudo vi /etc/nginx/conf.d/default.conf
將紅框處註解打開
編輯 php-fpm conf檔
1
sudo vi /etc/php-fpm.d/www.conf
- 找到user & group,把apache 改成 nginx
- 找到$HOSTNAME 將以下內容註解打開
1
2
3
4
5
6
7
8
9env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
- 重新載入nginx
1
sudo systemctl reload nginx
- 在根目錄位置加上index.php這時可能會跳出找不到檔案的錯誤訊息,需要在default.conf加上這段
1
2sudo vi /usr/share/nginx/html/index.php
# <?php phpinfo(); ?>1
2
3
4
5
6
7
8
9
10
11
12# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重啟nginx 服務即可在ip_addr/index.php 看到目前的php 資訊
放上專案
預計要將專案放在/var/www/html中,所以我建立一個資料夾 project
1 | sudo mkdir /var/www/html/project |
並在裡面建立一個info.php 的檔案,內容一樣是先印出phpinfo
1 | sudo vi /var/www/html/project/info.php |
以及一個index.html 的檔案,內容隨便,可以辨識有正確顯示畫面就好。
因為我沒有申請網域名,所以設定virtual host 的方式無法實現。
這邊我直接將 /etc/nginx/conf.d/default.conf中的root 設定指向
/var/www/html/project
location ~ .php的root 路徑也要記得改,重啟 nginx service 後,
ip_addr/ 會顯示index.html的內容;
ip_addr/info.php 則會顯示phpinfo
心得
以上過程遇到了不少奇奇怪怪的錯誤,希望透過此次整理可以在之後建環境順利一點。不過網路上找到的資訊,許多都不見得適用,其實也還有很多不懂為什麼加上這行就可以的地方,希望透過經驗的累積,未來可以再回來把這篇更新,並幫助到其他人。