PHPMyAdmin 為 MySQL (MariaDB) 資料庫的管理系統,使用者可以透過 網頁 (使用 PHP 語言) 來進行設定與管理.使用前需要先行安裝 資料庫系統 MariaDB (MySQL) , Web 伺服器 (Apache 或 Nginx) 與 PHP .
測試環境為 CentOS 7 / CentOS 8 x86_64 (IP:192.168.1.1 ,請使用 static IP)
資料庫 MaraiDB
從 CentOS 7 開始的 Database 都換成了 MariaDB (與 MySQL 資料庫是相容的)
[root@localhost ~]# yum update [root@localhost ~]# yum install -y mariadb mariadb-server mariadb-devel
檢查一下 MariaDB 的服務狀態.
[root@localhost ~]# systemctl enable mariadb [root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl status mariadb ● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2017-07-21 11:30:32 CST; 2s ago Process: 5733 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS) Process: 5705 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) Main PID: 5732 (mysqld_safe) CGroup: /system.slice/mariadb.service ├─5732 /bin/sh /usr/bin/mysqld_safe --basedir=/usr └─5890 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql -...
設定一下 MariaDB
[root@localhost ~]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] n ... skipping. By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
剛剛就已經設定了 MariaDB root 密碼.登入看看.
[root@localhost ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 10 Server version: 5.5.52-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.01 sec) MariaDB [(none)]> exit; Bye
資料庫的安裝就告一段落了,後面需要安裝 PHPMyAdmin 但在這之前需要啟動 web server (Apache).
Apache (Httpd)
Web Server 可以自行選擇 Apache 或是 Nginx .下面使用的是 Apache
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@localhost ~]# systemctl start httpd [root@localhost ~]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2017-07-21 12:03:23 CST; 5s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 6418 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─6418 /usr/sbin/httpd -DFOREGROUND ├─6419 /usr/sbin/httpd -DFOREGROUND ├─6420 /usr/sbin/httpd -DFOREGROUND ├─6421 /usr/sbin/httpd -DFOREGROUND ├─6422 /usr/sbin/httpd -DFOREGROUND └─6423 /usr/sbin/httpd -DFOREGROUND
[root@localhost ~]# systemctl stop firewalld
CentOS 8 搭配的 Apache 沒有預設網頁,可以自行建立 index.html 來測試.
[root@localhost ~]# echo Apache on CentOS 8 > /var/www/html/index.html
PHP
phpMyAdmin 主要透過 PHP 的程式語言架構出來的,而 PHP 是一種直譯式的程式語言,用於網頁的撰寫,不同於靜態式的 HTML 它可以依據使用者的需求來呈現不同的網頁內容.
- CentOS 7
[root@localhost ~]# yum install -y php php-pear php-mysql php-mbstring
還需要安裝 mcrypt 擴充套件(沒安裝時 PHPMyAdmin 會顯示錯誤訊息: 缺少 mcrypt 擴充套件,請檢查 PHP 設定),預設的 YUM Repo 並沒有這些套件,需要新增 Repo 檔 (epel-release, Extra Packages for Enterprise Linux) .
[root@localhost ~]# yum install -y epel-release [root@localhost ~]# yum install -y php-mcrypt
[root@localhost ~]# systemctl restart httpd [root@localhost ~]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2017-07-21 14:54:28 CST; 1s ago Docs: man:httpd(8) man:apachectl(8) Process: 7072 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 7078 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─7078 /usr/sbin/httpd -DFOREGROUND ├─7080 /usr/sbin/httpd -DFOREGROUND ├─7081 /usr/sbin/httpd -DFOREGROUND ├─7082 /usr/sbin/httpd -DFOREGROUND ├─7083 /usr/sbin/httpd -DFOREGROUND └─7084 /usr/sbin/httpd -DFOREGROUND
- CentOS 8
CentOS 8 的 Apache, 預設使用 PHP-FPM 執行 PHP,需要額外啟動 PHP-FPM 服務.[root@localhost ~]# yum install -y php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd
[root@localhost ~]# systemctl restart httpd [root@localhost ~]# systemctl status php-fpm
順便試一下 PHP 功能運作是否正常.可以使用編輯器來鍵入 PHP 程式碼,內容如下 (檔案需儲存在 /var/www/html – Apache 預設的目錄),或是透過 echo 直接產生.
[root@localhost ~]# echo "<?php phpinfo() ?>" > /var/www/html/phpinfo.php
/var/www/html 是 Apache 預設的目錄,你可以修改 /etc/httpd/conf/httpd.conf 修改 DocumentRoot .
這是 PHP 的格式,開啟你的網頁連上你 http://localhost/phpinfo.php ,如果一切運作正常那你會看到和下面一樣的網頁.
PHPMyAdmin
PHPMyAdmin 需要到 https://www.phpmyadmin.net/files/ 下載檔案,要注意一下版本選擇 (要看一下目前作業系統的 PHP 以及 MySQL 版本).
- CentOS 7
但我使用的作業系統 CentOS 7 的版本 PHP Version 5.4.16 與 mariadb-5.5.52-1,所以只能選擇 phpMyAdmin 4.0.10.20 (PHP 5.2 以及 MySQL 5). 如果使用到不支援的版本,網頁會顯示不出來 (空白).[root@localhost ~]# cd /var/www/html/ [root@localhost html]# wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.tar.gz [root@localhost html]# tar zxvf phpMyAdmin-4.0.10.20-all-languages.tar.gz [root@localhost html]# mv phpMyAdmin-4.0.10.20-all-languages phpMyAdmin
- CentOS 8
作業系統 CentOS 8 的版本 PHP Version 7.2.11 與 mariadb-10.3.11,可以選擇 phpMyAdmin 4.9.x (需要 PHP 5.5 到 7.4 與 MySQL 5.5 以上的版本 ) , phpMyAdmin 5.x 也可以使用 (需要 PHP 7.1 與 MySQL 5.5 以上的版本 )[root@localhost ~]# cd /var/www/html/ [root@localhost html]# wget https://files.phpmyadmin.net/phpMyAdmin/4.9.11/phpMyAdmin-4.9.11-all-languages.tar.gz [root@localhost html]# tar zxvf phpMyAdmin-4.9.11-all-languages.tar.gz [root@localhost html]# mv phpMyAdmin-4.9.11-all-languages phpMyAdmin
解開的檔案目錄有點長,所以修改成簡短一點 phpMyAdmin ,以方便輸入 https://Your_IP/phpMyAdmin/ ,正確會顯示如下的網頁.
PHPMyAdmin 輸入剛剛前面設定的帳號與密碼即可已針對資料庫進行設定與管理.
後續的設定請參考:
- 設定 blowfish secret – https://benjr.tw/97998
- 設定進階功能 – https://benjr.tw/97993
- ./tmp/ is not accessible – https://benjr.tw/102223
- 內網使用時反應很慢 https://benjr.tw/97966
- 資料無法匯入 ( 資料上限 2M ) – https://benjr.tw/101989 ( CentOS7 ), https://benjr.tw/102232 ( CentOS8 )