[筆記] MySQL 環境安裝(Ubuntu 18.04)與 phpMyAdmin 架設


1.虛擬機環境架設

Ubuntu載點:https://www.ubuntu-tw.org/modules/tinyd0/ 選擇桌面版本、18.04、64位元
Virtualbox載點 Windows hosts
https://download.virtualbox.org/virtualbox/6.1.30/VirtualBox-6.1.30-148432-Win.exe

1.開啟 Virtualbox 並新增新的虛擬機與進行環境設定

依順序執行檔進行設定(以記憶體:2048MB、硬碟:20GB為例)

建立完後進入設定頁面更改環境
系統-處理器 CPU改為4顆
進入存放裝置-磁碟檔中放入剛所下載的iso檔

網路設定選擇橋接介面卡

2.設定完後開啟虛擬機,開始安裝流程






3.安裝 VirtualBox Guest Additions 讓操作更方便





執行完後跳出即可
並設定雙向功能,讓虛擬機可貼上複製內容

虛擬機的基礎環境就架設完畢喽~

2.SQL架設&簡易指令測試

(1)SQL架設

1.開啟終端機

以 sudo 身份運行以下命令,以便從 APT 存儲庫安裝 MySQL

$ sudo apt-get update
$ sudo apt-get install mysql-server

2.隨後運行隨附的安全腳本進行安全配置

$ sudo mysql_secure_installation

下圖步驟選擇 N,其他選擇 Y 即可

3.設定完後確認有無正常運行

$ systemctl status mysql.service


如未運行,則用以下命令來啟動該服務:

$ sudo systemctl start mysql

(2)簡易指令測試

啟動 mysql

$ sudo mysql


以下指令為顯示資料庫
SHOW DATABASES;

以下指令為建立出一個名為dbname的資料庫
CREATE DATABASE dbname;

USE dbname;

以下指令為顯示目前資料庫中的所有表格
SHOW TABLES;

以下指令為建立名為users的表格,這個表格有兩個欄位。第一個欄位是userid,儲存的資料型別是tinyint SIGNED(有號8-bit整數),必須NOT NULL(不能是空的),且作為每列(row)資料的PRIMARY KEY(主鍵),會AUTO_INCREMENT(自動遞增)。第二個欄位是username,儲存的資料型別是varchar(50)(最大可以存50個字元)

CREATE TABLE `users` (
    `userid` tinyint SIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `username` varchar(50)
);

以下指令為顯示users表格是怎麼被建立的
SHOW CREATE TABLE users;

以下指令為查詢users表格中的所有資料
SELECT * FROM users;

以下指令為插入字串Bob、Mary...至users表格中

INSERT INTO `users` (`username`) VALUES ('Bob');
INSERT INTO `users` (`username`) VALUES ('Mary');
INSERT INTO `users` (`username`) VALUES ('John');
INSERT INTO `users` (`username`) VALUES ('Joe');
INSERT INTO `users` (`username`) VALUES ('test');

以下指令可建立出能從本地端(localhost)登入 MySQL 伺服器的使用者 dbuser,密碼為 test

CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'test';

以下指令可讓從本地端(localhost)登入 MySQL 伺服器的使用者 dbuser,擁有 dbname 資料庫的所有權限

GRANT ALL ON dbname.* TO 'dbuser'@'localhost';

以下指令可建立出能從本地端(localhost)登入 MySQL 伺服器的使用者 dbsuperuser,密碼為 test,並讓 dbsuperuser,擁有所有資料庫的存取權限,而且可以把權限再分出去。

CREATE USER 'dbsuperuser'@'localhost' IDENTIFIED BY 'test';
GRANT ALL ON *.* TO 'dbsuperuser'@'localhost' WITH GRANT OPTION;

基礎指令測試完即可輸入 quit,結束執行 mysql。

3.phpmyadmin web架設

(1)簡易架設 nginx web server

輸入以下指令

$ sudo apt-get install nginx -y
$ sudo systemctl status nginx

檢查是否可以訪問預設網頁,在虛擬機的瀏覽器中輸入:
http://127.0.0.1http://localhost
如果配置正常,可以看到一個類似於下面的頁面,說明 nginx 伺服器是正常的

(2)透過 nginx 執行 PHP 程式

執行以下指令可以安裝PHP的執行環境:

$ sudo apt install php-cli -y

輸入以下指令可以查看PHP的版本:

$ php -v

執行以下指令安裝 FPM

$ sudo apt-get install php-fpm php-cgi php-mysql php-common php-pear php-mbstring -y

驗證 php fpm 是否安裝並啟用成功
先用以下指令安裝 socat

$ sudo apt install socat -y

執行以下指令來判斷 FPM 有沒有正常工作:

$ echo /dev/null | sudo socat unix:/var/run/php/php7.2-fpm.sock - && echo "Working!" || echo "Not working!"

設定 php.ini
打開 php.ini 將 cgi.fix_pathinfo 取消註解並設為 0:

$ sudo gedit /etc/php/7.2/fpm/php.ini

重啟 php-fpm

$ sudo systemctl restart php7.2-fpm

編輯nginx預設組態, 新增index.php預設執行php網頁, phpMyAdministrator會使用到
並修改php區塊, 去除註解, 並注意fpm版本是否正確

$ sudo gedit /etc/nginx/sites-available/default

修改下圖中紅字部分
可複製:try_files $uri $uri/ /index.php?q=$uri&$args;

重啟 nginx 驗證設定檔格式是否有錯

$ sudo systemctl reload nginx
$ sudo nginx -t

(3)安裝 phpMyAdmin

$ sudo apt install phpmyadmin

1.
安裝過程需要設定phpMyAdmin,一開始會要求選擇網頁伺服器,因為我們的伺服器環境是Nginx+PHP(via FPM)+MySQL,所以這邊什麼都不選。直接按Enter鍵確認選擇。
最後會詢問是否要設定dbconfig-common,選擇「是」(Yes)吧!

dbconfig-common將需要建立一個新的MySQL使用者來操作運行phpMyAdmin資料庫管理工具時需要額外用到的資料表,預設的使用者名稱為phpmyadmin,所以接著要設定phpmyadmin這個MySQL使用者的密碼。

再輸入一次剛才輸入的phpmyadmin使用者的密碼。

新的MySQL使用者phpmyadmin建立完成後,phpMyAdmin就算是安裝完畢了

2.
設定Nginx
phpMyAdmin的PHP程式放置在/usr/share/phpmyadmin目錄中,我們可以利用Nginx設定檔的root命令來製作一個phpMyAdmin的location區塊。設定方式如下

$ sudo gedit /etc/nginx/sites-available/default

將程式碼插入下圖位置

location = /phpmyadmin {
        return 301 /phpmyadmin/;
    }

    location ^~ /phpmyadmin/ {
        root /usr/share;

        allow 127.0.0.1;
        deny all;

        fastcgi_read_timeout 1440s;
        fastcgi_send_timeout 1440s;
        if ($uri ~ \.php$) {
            fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        } 
        include fastcgi.conf;
    }

重啟 nginx,驗證設定檔格式是否有錯

$ sudo systemctl reload nginx
$ sudo nginx -t

phpmyAdmin 錯誤修正, 主要因 php 不同版本函數問題

(1)

$ sudo cp /usr/share/phpmyadmin/libraries/sql.lib.php /usr/share/phpmyadmin/libraries/sql.lib.php.bak
$ sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
查找 (count($analyzed_sql_results['select_expr'] == 1)
然後多新增括號 ((count($analyzed_sql_results['select_expr']) == 1)
完成後存檔離開

(2)

$ sudo cp /usr/share/phpmyadmin/libraries/plugin_interface.lib.php /usr/share/phpmyadmin/libraries/plugin_interface.lib.php.bak
$ sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
查找
if ($options != null && count($options) > 0)
然後新增(array) 
if (! is_null($options) && count((array)$options) > 0) 
完成後存檔離開

4.在本機使用 phpmyadmin (不需使用linux)

下載 xampp 8.1.4
https://www.apachefriends.org/zh_tw/download.html

跑完程式後,改用系統管理員身分執行以便開啟 MySQL 的 admin

隨後修改 Apache 設定,以開啟 admin




完成後在瀏覽器上輸入 localhost:8000/dashboard 再按右上角的 phpmyadmin 即可使用 phpmyadmin

#MySQL #ubuntu #phpmyadmin #nginx






你可能感興趣的文章

Computer Security

Computer Security

Table RWD系列-1

Table RWD系列-1

Day 38 - Environment variable & Workout Tracker

Day 38 - Environment variable & Workout Tracker






留言討論