[phpMyAdmin] CentOS 8.2 + Nginx + MariaDB 10 + php-fpm + phpMyAdmin
說到使用 MySQL/MariaDB 就會想到 phpMyAdmin這個使用者圖像介面,他是用 php 做出來操作 MySQL/MariaDB 的介面,所以若要使用,必須先安裝網頁伺服器與php。
(環境:CentOS8.2)
- 安裝由Fedora社群打造的第三方源 EPEL(Extra Packages for Enterprise Linux),其中包含比官方 repository 要新的伺服器版本
[user@localhost ~]$ sudo dnf -y install epel-release
- 安裝 Nginx,詳細過程參考([Nginx] 安裝網頁伺服器Nginx (CentOS8.2)),安裝好後從瀏覽器輸入「localhost」確定可看到 Nginx 預設頁面
[user@localhost ~]$ sudo dnf -y install nginx [user@localhost ~]$ sudo systemctl start nginx [user@localhost ~]$ sudo systemctl enable nginx
- 安裝 MariaDB,詳細過程參考([MySQL] 在CentOS8.2上安裝MySQL8.0 與更改root密碼)
[user@localhost ~]$ sudo dnf -y install mariadb-server mariadb [user@localhost ~]$ sudo systemctl start mariadb [user@localhost ~]$ sudo systemctl enable mariadb
- 安裝 php,這裡使用安裝預設版本(目前是7.2版),若有其它版本需求,請自行研究如何安裝指定版本的 php
[user@localhost ~]$ sudo dnf -y install php php-fpm php-json php-mysqlnd php-mbstring
- 修改「/etc/php-fpm.d/www.conf」檔案內容
- 改『user = apache』為『user = nginx』
- 改『group = apache』為『group = nginx』
- 改『listen = /run/php-fpm/www.sock』為『listen = /var/run/php-fpm/php-fpm.sock』
- 拿掉『;listen.owner = nobody』的分號,並改為『listen.owner = nginx』
- 拿掉『;listen.group = nobody』的分號,並改為『listen.group = nginx』
- 拿掉『;listen.mode = 0660』的分號
- 啟動 php-fpm 服務
[user@localhost ~]$ sudo systemctl start php-fpm [user@localhost ~]$ sudo systemctl enable php-fpm
- 修改「/etc/nginx/conf.d/php-fpm.conf」檔案內容
- 改『server unix:/run/php-fpm/www.sock;』為『server unix:/var/run/php-fpm/php-fpm.sock;』
- 新增「/etc/nginx/conf.d/phpmyadmin.conf」檔案,內容如下
server { listen 80; server_name server_domain_or_IP; 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 重新載入設定檔,要看到「ok」與「/etc/nginx/nginx.conf test is successful」才是對的哦!
[user@localhost ~]$ sudo systemctl reload nginx [user@localhost ~]$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
- 確定 nginx + php-fpm 可以正常運作
- 創建「/usr/share/nginx/html/info.php」其內容如下
<?php phpinfo();
- 這時從瀏覽器輸入「localhost/info.php」確定可看到 phpinfo 的頁面,若看得到代表 nginx + php-fpm 有在正常運作囉
- 創建「/usr/share/nginx/html/info.php」其內容如下
- 打開 Nginx 對 php session 的權限
[user@localhost ~]$ sudo chown nginx:nginx /var/lib/php/session/
- 下載 phpmyadmin 並解壓縮到/usr/share/nginx/html下
[user@localhost ~]$ unzip Downloads/phpMyAdmin-5.0.2-all-languages.zip [user@localhost ~]$ sudo mv phpMyAdmin-5.0.2-all-languages/ /usr/share/nginx/html/phpMyAdmin
- 修改 phpMyAdmin 的安全性文本,讓 Nginx 可以有權限可以讀寫,否則 SELinux 會阻檔,然後在瀏覽器出現403的錯誤碼
[user@localhost ~]$ sudo chcon -R -t httpd_sys_rw_content_t /usr/share/nginx/html/phpMyAdmin
- 創建「phpMyAdmin/tmp/」並賦予 Nginx 權限
[user@localhost ~]$ sudo mkdir /usr/share/nginx/html/phpMyAdmin/tmp [user@localhost ~]$ sudo chown nginx:nginx /usr/share/nginx/html/phpMyAdmin/tmp [user@localhost ~]$ sudo chmod 755 /usr/share/nginx/html/phpMyAdmin/tmp
- 給phpMyAdmin blowfish_secret密鑰
- 先將創建一個「config.inc.php」
[user@localhost ~]$ sudo cp /usr/share/nginx/html/phpMyAdmin/config.sample.inc.php /usr/share/nginx/html/phpMyAdmin/config.inc.php
- 從這個網址拿到較安全的密鑰
- 將密鑰貼給$cfg['blowfish_secret'] = '' 中的 '',也可以選擇自己決定密鑰是甚麼。但上面的是幫忙產生一個較安全的密鑰
- 先將創建一個「config.inc.php」
- 在瀏覽器網址輸入 localhost/phpMyAdmin 就可以如同 xampp 一般,使用 phpMyAdmin 操作作資料庫啦!
留言
張貼留言