# 安裝 Mariadb
yum install mariadb mariadb-server -y
# 開啟 Mariadb
systemctl start mariadb
# 設定為服務
systemctl enable mariadb
# mysql 安裝
mysql_secure_installation
# 安裝畫面
# 登入
mysql -u root -p
# 查看 db
show databases;
# 離開 mariadb
exit
# 安裝 phpmyadmin
yum install epel-release
yum install phpmyadmin
# 安裝 php
yum install php php-mysql php-fpm
# 設定 phpmyadmin 到 nginx 的目錄下
ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
# 修改 cgi.fix_pathinfo = 0, 1表示找尋相似(相近)的檔案讀取, 關閉此功能讓系統安全一點
參考:
cgi.fix_pathinfo 漏洞
vim /etc/php.ini
# 找到 cgi.fix_pathinfo, 設定為 0
cgi.fix_pathinfo=0
# 修改 php-fpm 的設定檔 www.conf
vim /etc/php-fpm.d/www.conf
# 找到 listen, 修改如下列所示(檔案尚未產生, 等重新執行 php-fpm 後就會有了)
listen = /var/run/php-fpm/php-fpm.sock
# 接下來找 listen.owner 跟 listen.group, 取消註解
listen.owner = nobody
listen.group = nobody
# 最後找 user 跟 group, 將他們的值從 apache 改成 nginx
user = nginx
group = nginx
# 重新執行 nginx
systemctl restart nginx
# 設定成服務
systemctl enable nginx
再來設定 Nginx, 讓他可以執行 php-fpm(未設定好, php 的檔案會變成下載的方式讀取)
# 修改 Nginx server block level(Nginx服務區塊, 類似 apache 的 virtual host)
vim /etc/nginx/conf.d/default.conf
# 修改內容如下
server {
listen 80;
server_name localhost;
# note that these lines are originally from the "location /" block
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 重啟 Nginx
systemctl restart nginx
開啟 phpmyadmin 之後發現 session 寫入有問題
因為 nginx 沒有寫入 php/session 的權限
# 修改 php/session 的權限
chown nginx:nginx /var/lib/php/session
# 重新開啟 phpmyadmin, 正常了
登入 phpMyAdmin 後出現 blowfish_secret 錯誤
# 修改 /usr/share/phpMyAdmin/libraries/config.default.php
vim /usr/share/phpMyAdmin/libraries/config.default.php
# 填入隨便一組加密碼
$cfg['blowfish_secret'] = 'oxoxox12345';
# 重新登入 phpMyAdmin 後就正常了
之前由於 php-fpm 沒設定
導致透過 nginx 開啟 php 網頁都變成下載 php 的檔案
連到 localhost/phpMyAdmin 則會出現 403 forbidden
用 google 查了 nginx phpmyadmin 403 forbidden
大部分都是檔案缺少或是權限問題
可是我實際處理之後發現我的問題似乎不在此
後來就回頭去研究 nginx + php-fpm 的設定
參考了
How To Install LEMP(Linux Nginx Mysql PHP) 之後
所有的問題就都解決了