企業(yè)實戰(zhàn)LNMP高性能服務器_phpMyAdmin部署

企業(yè)實戰(zhàn)LNMP高性能服務器_phpMyAdmin部署

LNMP WEB架構(gòu)中最盅,Nginx為一款高性能WEB服務器节腐,本身是不能處理PHP的,當接收到客戶端瀏覽器發(fā)送HTTP Request請求時,Nginx服務器響應并處理WEB請求,靜態(tài)資源CSS絮爷、圖片、視頻梨树、TXT等靜態(tài)文件請求坑夯,Nginx服務器可以直接處理并回應。

但是PHP動態(tài)頁面請求Nginx不能直接處理抡四,Nginx服務器會將PHP網(wǎng)頁腳本通過接口傳輸協(xié)議(網(wǎng)關(guān)協(xié)議)PHP-FCGI(Fast-CGI)傳輸給PHP-FPM(進程管理程序),PHP-FPM不做處理柜蜈,然后PHP-FPM調(diào)用PHP解析器進程,PHP解析器解析PHP腳本信息指巡。PHP解析器進程可以啟動多個淑履,可以實現(xiàn)多進程并發(fā)執(zhí)行。

PHP解釋器將解析后的腳本返回到PHP-FPM藻雪,PHP-FPM再通過Fast-CGI的形式將腳本信息傳送給Nginx,Nginx服務器再通過Http Response的形式傳送給瀏覽器,瀏覽器再進行解析與渲染然后進行呈現(xiàn)秘噪。

1. 源碼安裝MySQL5.7.30

1.1 源碼編譯安裝前準備

1.1.1 因為CentOS系統(tǒng)自帶了mariadb,我們需要把它先卸載阔涉。

[root@node01 ~]# rpm -qa|grep mariadb

mariadb-server-5.5.60-1.el7_5.x86_64

mariadb-libs-5.5.60-1.el7_5.x86_64

mariadb-5.5.60-1.el7_5.x86_64

[root@node01 ~]#

[root@node01 ~]# yum -y remove mariadb mariadb-server mariadb-libs

1.1.2 創(chuàng)建用戶

[root@node01 ~]# useradd -s /sbin/nologin -M mysql ? ?? #提示mysql已存在可以忽略此步驟

1.1.3 創(chuàng)建目錄并修改權(quán)限

[root@node01 ~]# mkdir -p /data/mysql

[root@node01 ~]# chown -R mysql.mysql /data

1.1.4 安裝MySQL相關(guān)依賴包

[root@node01 ~]# yum install -y gcc gcc-devel gcc-c++ gcc-c++-devel libaio* autoconf* automake* zlib* libxml* ncurses-devel ncurses libgcrypt* libtool* cmake openssl openssl-devel bison bison-devel perl-Data_Dumper boost boost-doc boost-devel

1.1.5 下載源碼并解壓

[root@node01 ~]# cd /usr/src/

[root@node01 src]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.30.tar.gz

[root@node01 src]# ls

debug? kernels? mysql-5.7.30.tar.gz

[root@node01 src]# tar xf mysql-5.7.30.tar.gz

[root@node01 src]# cd mysql-5.7.30/

[root@node01 mysql-5.7.30]#

1.1.6 下載boost(5.7版本更新之后有很多變化缆娃,比如現(xiàn)在安裝必須要安裝這個boost庫了)

[root@node01 mysql-5.7.30]# mkdir ./boost

[root@node01 mysql-5.7.30]# cd ./boost

[root@node01 boost]# wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

說明:解壓等操作編譯的時候程序會做,這里只需把包下載或者拷貝到這里即可

1.2 源碼編譯安裝

1.2.1 編譯

[root@node01 boost]# cd ../

[root@node01 mysql-5.7.30]# cmake \

-DBUILD_CONFIG=mysql_release \

-DCMAKE_BUILD_TYPE=RelWithDebInfo \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql \

-DSYSCONFDIR=/etc \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DSYSTEMD_PID_DIR=/data/mysql \

-DMYSQL_USER=mysql \

-DWITH_SYSTEMD=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_DEBUG=0 \

-DMYSQL_MAINTAINER_MODE=0 \

-DWITH_SSL:STRING=system \

-DWITH_ZLIB:STRING=bundled \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=./boost

1.2.2 編譯參數(shù)介紹

cmake \

-DBUILD_CONFIG=mysql_release \ ? ? ? ? ? ? ? ?? #此選項使用Oracle使用的相同構(gòu)建選項配置源分發(fā)瑰排,以生成官方MySQL版本的二進制分發(fā)贯要。

-DCMAKE_BUILD_TYPE=RelWithDebInfo \ ? ? ? ? ? ? #要生成的構(gòu)建類型 = 啟用優(yōu)化并生成調(diào)試信息。這是默認的MySQL構(gòu)建類型椭住。

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ ? ? ? #選項表示基本安裝目錄崇渗。

-DMYSQL_DATADIR=/data/mysql \ ? ? ? ? ? ? ? ? ? #MySQL數(shù)據(jù)目錄的位置。

-DSYSCONFDIR=/etc \ ? ? ? ? ? ? ? ? ? ? ? ? ? ? #默認my.cnf選項文件目錄。

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ ? ? ? ? ? ? #服務器偵聽套接字連接的Unix套接字文件路徑宅广。這必須是絕對路徑名葫掉。默認是/tmp/mysql.sock。

-DSYSTEMD_PID_DIR=/usr/local/mysql \ ? ? ? ? ?? #當MySQL由systemd管理時跟狱,在其中創(chuàng)建PID文件的目錄的名稱俭厚。默認是 /var/run/mysqld; 這可能會根據(jù)INSTALL_LAYOUT值隱式更改 。

-DMYSQL_USER=mysql \ ? ? ? ? ? ? ? ? ? ? ? ? ?? #指定MySQL的啟動用戶

-DWITH_SYSTEMD=1 \ ? ? ? ? ? ? ? ? ? ? ? ? ? ?? #安裝systemd支持文件

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_TCP_PORT=3306 \ ? ? ? ? ? ? ? ? ? ? ? ?? #配置 MySQL 監(jiān)聽的端口號

-DENABLED_LOCAL_INFILE=1 \ ? ? ? ? ? ? ? ? ? ? ? #使mysql客戶端具有l(wèi)oad data infile的功能驶臊,該功能具有安全隱患? load data infile語句從一個文本文件中以很高的速度讀入一個表 ? ? ? ? ? ? ? ?

-DENABLE_DOWNLOADS=1 \ ? ? ? ? ? ? ? ? ? ? ? ? ? #googlemock發(fā)行版的路徑挪挤,用于基于Google Test的單元測試。=1关翎,CMake將從GitHub下載發(fā)行版扛门。

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \ ? ? ? ? ? ? ? ? ? ? ? ? #服務器字符集

-DDEFAULT_COLLATION=utf8_general_ci \ ? ? ? ? ?? #服務器排序規(guī)則

-DWITH_DEBUG=0 \ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #不包含調(diào)試支持。

-DMYSQL_MAINTAINER_MODE=0 \ ? ? ? ? ? ? ? ? ? ?? #是否啟用MySQL維護者特定的開發(fā)環(huán)境纵寝。如果啟用论寨,此選項會導致編譯器警告變?yōu)殄e誤。

-DWITH_SSL:STRING=system \

-DWITH_ZLIB:STRING=bundled \

-DDOWNLOAD_BOOST=1 \ ? ? ? ? ? ? ? ? ? ? ? ? ? ? #是否下載Boost庫爽茴。默認是OFF葬凳。

-DWITH_BOOST=./boost ? ? ? ? ? ? ? ? ? ? ? ? ? ? #指定Boost庫目錄位置。

1.2.3 查看編譯是否有異常

[root@node01 mysql-5.7.30]# echo $?? ? ? ? ? ? ? #返回結(jié)果為0說明編譯無異常

1.2.4 源碼安裝

[root@node01 mysql-5.7.30]# make && make install

這個過程比較漫長闹啦,耐心等待一下

1.2.5 查看安裝是否有異常

[root@node01 mysql-5.7.30]# echo $?? ? ? ? ? ? ? #返回結(jié)果為0說明編譯無異常

1.3 源碼安裝后配置

1.3.1 添加 systemd 服務控制

[root@node01 mysql-5.7.30]# cp ./scripts/mysqld.service /usr/lib/systemd/system

1.3.2 添加環(huán)境變量

[root@node01 mysql-5.7.30]# cat > /etc/profile.d/mysql.sh << EOF

PATH=/usr/local/mysql/bin:$PATH

export PATH

EOF

[root@node01 mysql-5.7.30]# source /etc/profile

1.3.3 空密碼初始化數(shù)據(jù)庫

[root@node01 mysql-5.7.30]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

1.3.4 配置啟動MySQL

[root@node01 mysql-5.7.30]# systemctl enable mysqld.service

[root@node01 mysql-5.7.30]# systemctl daemon-reload

[root@node01 mysql-5.7.30]# systemctl start mysqld.service

[root@node01 mysql-5.7.30]# systemctl status mysqld.service

2. 源碼安裝nginx1.19.0

2.1 安裝依賴包

[root@node01 src]# yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

  依賴包說明:

編譯依賴 gcc 環(huán)境沮明,所以需要:gcc gcc-c++;

PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫窍奋。nginx 的 http 模塊使用 pcre 來解析正則表達式荐健,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發(fā)的一個二次開發(fā)庫琳袄,所以需要:pcre pcre-devel ;

zlib 庫提供了很多種壓縮和解壓縮的方式江场, nginx 使用 zlib 對 http 包的內(nèi)容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫窖逗,所以需要:zlib zlib-devel 址否;

OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法碎紊、常用的密鑰和證書封裝管理功能及 SSL 協(xié)議佑附,并提供豐富的應用程序供測試或其它目的使用。nginx 不僅支持 http 協(xié)議仗考,還支持 https(即在ssl協(xié)議上傳輸http)音同,所以需要在 Centos 安裝 OpenSSL 庫,所以需要:openssl openssl-devel 秃嗜;

2.2 從官網(wǎng)下載安裝包

[root@node01 src]# wget http://nginx.org/download/nginx-1.19.0.tar.gz

2.3 解壓并安裝

[root@node01 src]# tar xf nginx-1.19.0.tar.gz

[root@node01 src]# cd nginx-1.19.0/

[root@node01 nginx-1.19.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module

[root@node01 nginx-1.19.0]# echo $?

0

[root@node01 nginx-1.19.0]#

[root@node01 nginx-1.19.0]# make && make install

[root@node01 nginx-1.19.0]# echo $?

0

[root@node01 nginx-1.19.0]#

2.4 添加nginx環(huán)境變量

[root@node01 nginx-1.19.0]# cat > /etc/profile.d/nginx.sh << EOF

PATH=/usr/local/nginx/sbin:$PATH

export PATH

EOF

[root@node01 nginx-1.19.0]# source /etc/profile

2.5 測試安裝是否成功

[root@node01 nginx-1.19.0]# nginx -V

nginx version: nginx/1.19.0

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)

configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module

[root@node01 nginx-1.19.0]#

2.6 啟動nginx服務

[root@node01 nginx-1.19.0]# nginx

[root@node01 nginx-1.19.0]#

2.7 驗證服務是否啟動成功

[root@node01 nginx-1.19.0]# netstat -ntlp | grep 80

tcp? ? ? ? 0? ? ? 0 0.0.0.0:80? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 23434/nginx: master

[root@node01 nginx-1.19.0]#

2.8 添加nginx服務

[root@node01 nginx-1.19.0]# vi /lib/systemd/system/nginx.service

添加以下內(nèi)容:

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

2.9 以服務的方式啟動nginx

[root@node01 nginx-1.19.0]# pkill nginx

[root@node01 nginx-1.19.0]#

[root@node01 nginx-1.19.0]# systemctl start nginx

2.10 查看nginx服務是否啟動

[root@node01 nginx-1.19.0]# systemctl status nginx

● nginx.service - nginx

? Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)

? Active: active (running) since Thu 2020-06-11 03:56:27 CST; 6s ago

? Process: 23763 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)

Main PID: 23764 (nginx)

? ? Tasks: 2

? CGroup: /system.slice/nginx.service

? ? ? ? ? ├─23764 nginx: master process /usr/local/nginx/sbin/nginx

? ? ? ? ? └─23765 nginx: worker process

Jun 11 03:56:27 node01 systemd[1]: Starting nginx...

Jun 11 03:56:27 node01 systemd[1]: Started nginx.

[root@node01 nginx-1.19.0]#

[root@node01 nginx-1.19.0]# netstat -ntlp | grep nginx

tcp? ? ? ? 0? ? ? 0 0.0.0.0:80? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 23764/nginx: master

[root@node01 nginx-1.19.0]#

2.11 配置nginx服務自動啟動

[root@node01 nginx-1.19.0]# systemctl enable nginx

Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

[root@node01 nginx-1.19.0]#

[root@node01 nginx-1.19.0]# systemctl status nginx

● nginx.service - nginx

? Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)

? Active: active (running) since Thu 2020-06-11 03:56:27 CST; 2min 6s ago

Main PID: 23764 (nginx)

? CGroup: /system.slice/nginx.service

? ? ? ? ? ├─23764 nginx: master process /usr/local/nginx/sbin/nginx

? ? ? ? ? └─23765 nginx: worker process

Jun 11 03:56:27 node01 systemd[1]: Starting nginx...

Jun 11 03:56:27 node01 systemd[1]: Started nginx.

[root@node01 nginx-1.19.0]#

2.12 使用systemctl管理nginx

[root@node01 nginx-1.19.0]# systemctl start nginx? #啟動服務

[root@node01 nginx-1.19.0]# systemctl status nginx? #查看狀態(tài)

[root@node01 nginx-1.19.0]# systemctl stop nginx? #停止服務

[root@node01 nginx-1.19.0]# systemctl restart nginx? #重啟服務

[root@node01 nginx-1.19.0]# systemctl reload nginx? #修改配置文件后重載

[root@node01 nginx-1.19.0]# systemctl enable nginx? #開機自啟動

[root@node01 nginx-1.19.0]# systemctl didable nginx? #禁止開機自啟動

3.源碼安裝php5.6.40

3.1 安裝依賴包

[root@node01 ~]# yum -y install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel

3.2 去官網(wǎng)下載安包裝

[root@node01 src]# wget https://www.php.net/distributions/php-5.6.40.tar.gz

3.3 解壓并安裝

[root@node01 src]# tar xf php-5.6.40.tar.gz

[root@node01 src]# cd php-5.6.40/

[root@node01 php-5.6.40]# ./configure --prefix=/usr/local/php? \

--enable-fpm \

--enable-debug \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-freetype-dir \

--enable-mbstring \

--with-curl \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-config-file-path=/usr/local/php/etc \

--with-zlib-dir

[root@node01 php-5.6.40]#

[root@node01 php-5.6.40]# echo $?

0

[root@node01 php-5.6.40]#

[root@node01 php-5.6.40]# make && make install

[root@node01 php-5.6.40]# echo $?

0

[root@node01 php-5.6.40]#

3.4 添加php環(huán)境變量

[root@node01 php-5.6.40]# cat > /etc/profile.d/php.sh << EOF

PATH=/usr/local/php/bin/:$PATH

export PATH

EOF

[root@node01 php-5.6.40]# source /etc/profile

3.5 測試安裝是否成功

[root@node01 php-5.6.40]# php -v

PHP 5.6.40 (cli) (built: Jun 11 2020 07:29:14) (DEBUG)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

[root@node01 php-5.6.40]#

3.6 復制模板文件

[root@node01 php-5.6.40]# cp php.ini-development? /usr/local/php/etc/php.ini

[root@node01 php-5.6.40]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

[root@node01 php-5.6.40]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@node01 php-5.6.40]# chmod +x /etc/init.d/php-fpm

3.7 創(chuàng)建nginx用戶并修改php-fpm的用戶為nginx

[root@node01 php-5.6.40]# useradd -s /sbin/nologin -m nginx

[root@node01 php-5.6.40]# cp /usr/local/php/etc/php-fpm.conf{,.bak}

[root@node01 php-5.6.40]#

[root@node01 php-5.6.40]# vi /usr/local/php/etc/php-fpm.conf

[root@node01 php-5.6.40]#

[root@node01 php-5.6.40]# egrep "^(user|group)" /usr/local/php/etc/php-fpm.conf

user = nginx

group = nginx

[root@node01 php-5.6.40]#

3.8 添加php-fpm服務

3.8.1 修改php-fpm.conf

打開php-fpm.conf

[root@node01 php-5.6.40]# vi /usr/local/php/etc/php-fpm.conf

找到以下內(nèi)容并修改:

; Pid file

; Note: the default prefix is /usr/local/php/var

; Default Value: none

pid = /var/run/php-fpm.pid

3.8.2 新建php-fpm服務文件

vi /usr/lib/systemd/system/php-fpm.service

添加如下內(nèi)容:

[Unit]

Description=The PHP FastCGI Process Manager

After=syslog.target network.target

[Service]

Type=forking

PIDFile=/var/run/php-fpm.pid

ExecStart=/usr/local/php/sbin/php-fpm

ExecReload=/bin/kill -USR2 $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

3.9 以服務的方式啟動php-fpm

[root@node01 php-5.6.40]# systemctl daemon-reload

[root@node01 php-5.6.40]# systemctl start php-fpm? ? ? ? ?

[root@node01 php-5.6.40]#

3.10 查看php-fpm服務是否啟動

[root@node01 php-5.6.40]# systemctl status php-fpm

● php-fpm.service - The PHP FastCGI Process Manager

? Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)

? Active: active (running) since Thu 2020-06-11 08:02:38 CST; 4min 47s ago

? Process: 21478 ExecStart=/usr/local/php/sbin/php-fpm (code=exited, status=0/SUCCESS)

Main PID: 21481 (php-fpm)

? ? Tasks: 3

? CGroup: /system.slice/php-fpm.service

? ? ? ? ? ├─21481 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

? ? ? ? ? ├─21482 php-fpm: pool www

? ? ? ? ? └─21483 php-fpm: pool www

Jun 11 08:02:38 node01 systemd[1]: Starting The PHP FastCGI Process Manager...

Jun 11 08:02:38 node01 systemd[1]: Started The PHP FastCGI Process Manager.

[root@node01 php-5.6.40]#

[root@node01 php-5.6.40]# netstat -ntlp | grep 9000

tcp? ? ? ? 0? ? ? 0 127.0.0.1:9000? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 21481/php-fpm: mast

[root@node01 php-5.6.40]#

3.11 配置php-fpm服務自動啟動

[root@node01 php-5.6.40]# systemctl enable php-fpm

Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

[root@node01 php-5.6.40]#

[root@node01 php-5.6.40]# systemctl status php-fpm

● php-fpm.service - The PHP FastCGI Process Manager

? Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)

? Active: active (running) since Thu 2020-06-11 08:02:38 CST; 7min ago

Main PID: 21481 (php-fpm)

? CGroup: /system.slice/php-fpm.service

? ? ? ? ? ├─21481 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

? ? ? ? ? ├─21482 php-fpm: pool www

? ? ? ? ? └─21483 php-fpm: pool www

Jun 11 08:02:38 node01 systemd[1]: Starting The PHP FastCGI Process Manager...

Jun 11 08:02:38 node01 systemd[1]: Started The PHP FastCGI Process Manager.

[root@node01 php-5.6.40]#

3.12 使用systemctl管理php-fpm

[root@node01 php-5.6.40]# systemctl start php-fpm? #啟動服務

[root@node01 php-5.6.40]# systemctl status php-fpm? #查看狀態(tài)

[root@node01 php-5.6.40]# systemctl stop php-fpm? #停止服務

[root@node01 php-5.6.40]# systemctl restart php-fpm? #重啟服務

[root@node01 php-5.6.40]# systemctl reload php-fpm? #修改配置文件后重載

[root@node01 php-5.6.40]# systemctl enable php-fpm? #開機自啟動

[root@node01 php-5.6.40]# systemctl didable php-fpm? #禁止開機自啟動

4. 源碼安裝phpMyAdmin4.9.5

phpMyAdmin 是一個用PHP編寫的軟件工具权均,可以通過web方式控制和操作MySQL數(shù)據(jù)庫顿膨。通過phpMyAdmin可以完全對數(shù)據(jù)庫進行操作,例如建立叽赊、復制和刪除數(shù)據(jù)等等恋沃。如果使用合適的工具,MySQL數(shù)據(jù)庫的管理就會變得相當簡單必指。MySQL 命令行方式需要對 MySQL 知識非常熟悉囊咏,對SQL語言也是同樣的道理。不僅如此取劫,如果數(shù)據(jù)庫的訪問量很大匆笤,列表中數(shù)據(jù)的讀取就會相當困難研侣。

當前出現(xiàn)很多GUI MySQL客戶程序谱邪,其中最為出色的是基于 Web 的phpMyAdmin 工具。這是一種MySQL數(shù)據(jù)庫前臺的基于PHP的工具庶诡。

PhpMyAdmin 的缺點是必須安裝在 Web 服務器中惦银,所以如果沒有合適的訪問權(quán)限,其它用戶有可能損害到 SQL 數(shù)據(jù)末誓。

4.1 源碼包下載

在官網(wǎng)http://www.phpmyadmin.net/下載phpMyAdmin源碼包phpMyAdmin-4.9.5-all-languages.zip

[root@node01 src]# wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.zip

4.2 phpMyAdmin配置

4.2.1 解壓文件

解壓phpMyAdmin-4.9.5-all-languages.zip到nginx的DocumentRoot目錄(/usr/local/nginx/html)中

[root@node01 src]# unzip phpMyAdmin-4.9.5-all-languages.zip -d /usr/local/nginx/html/

[root@node01 src]# mv /usr/local/nginx/html/phpMyAdmin-4.9.5-all-languages /usr/local/nginx/html/phpMyAdmin

[root@node01 src]# chown -R nginx:nginx /usr/local/nginx/html/phpMyAdmin/

[root@node01 src]#

4.2.2 復制phpMyAdmin的簡單配置文件config.sample.inc.php扯俱,作為默認配置文件

[root@node01 src]# cp /usr/local/nginx/html/phpMyAdmin/config.sample.inc.php /usr/local/nginx/html/phpMyAdmin/config.inc.php

[root@node01 src]#

4.2.3 編輯配置文件config.inc.php

[root@node01 src]# vim /usr/local/nginx/html/phpMyAdmin/config.inc.php

$cfg['Servers'][$i]['host'] = '127.0.0.1';? ? ? ? -----設(shè)置

4.3 myslq數(shù)據(jù)庫配置

4.3.1 啟動數(shù)據(jù)庫服務

[root@node01 src]# systemctl start mysqld

4.3.2 設(shè)置數(shù)據(jù)庫root密碼

[root@node01 src]# mysqladmin -uroot password '123456'

mysqladmin: [Warning] Using a password on the command line interface can be insecure.

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

[root@node01 src]#

[root@node01 src]# mysql -uroot -p123456

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.? Commands end with ; or \g.

Your MySQL connection id is 59

Server version: 5.7.30 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

4.4 nginx配置及啟動

#配置phpMyAdmin

[root@node01 src]# vi /usr/local/nginx/conf/nginx.conf

#user? nobody;

user? nginx;

worker_processes? 1;

#error_log? logs/error.log;

#error_log? logs/error.log? notice;

#error_log? logs/error.log? info;

#pid? ? ? ? logs/nginx.pid;

pid? ? ? ? /var/run/nginx.pid;

events {

? ? worker_connections? 1024;

}

http {

? ? include? ? ? mime.types;

? ? default_type? application/octet-stream;

? ? log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '

? ? ? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '

? ? ? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"';

? ? access_log? logs/access.log? main;

? ? sendfile? ? ? ? on;

? ? #tcp_nopush? ? on;

? ? #keepalive_timeout? 0;

? ? keepalive_timeout? 65;

? ? #gzip? on;

? ? server {

? ? ? ? listen? ? ? 80;

? ? ? ? server_name? localhost;

? ? ? ? #charset koi8-r;

? ? ? ? access_log? logs/phpMyAdmin.access.log? main;

? ? ? ? location / {

? ? ? ? ? ? root? html;

? ? ? ? ? ? index? index.php index.html index.htm;

? ? ? ? }

? ? ? ? #error_page? 404? ? ? ? ? ? ? /404.html;

? ? ? ? # redirect server error pages to the static page /50x.html

? ? ? ? #

? ? ? ? error_page? 500 502 503 504? /50x.html;

? ? ? ? location = /50x.html {

? ? ? ? ? ? root? html;

? ? ? ? }

? ? ? ? # proxy the PHP scripts to Apache listening on 127.0.0.1:80

? ? ? ? #

? ? ? ? #location ~ \.php$ {

? ? ? ? #? ? proxy_pass? http://127.0.0.1;

? ? ? ? #}

? ? ? ? # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

? ? ? ? #

? ? ? ? location ~ \.php$ {

? ? ? ? ? ? root? ? ? ? ? html;

? ? ? ? ? ? fastcgi_pass? 127.0.0.1:9000;

? ? ? ? ? ? fastcgi_index? index.php;

? ? ? ? ? ? fastcgi_param? SCRIPT_FILENAME? $document_root$fastcgi_script_name;

? ? ? ? ? ? include? ? ? ? fastcgi_params;

? ? ? ? }

? ? ? ? # deny access to .htaccess files, if Apache's document root

? ? ? ? # concurs with nginx's one

? ? ? ? #

? ? ? ? #location ~ /\.ht {

? ? ? ? #? ? deny? all;

? ? ? ? #}

? ? }

? ? # another virtual host using mix of IP-, name-, and port-based configuration

? ? #

? ? #server {

? ? #? ? listen? ? ? 8000;

? ? #? ? listen? ? ? somename:8080;

? ? #? ? server_name? somename? alias? another.alias;

? ? #? ? location / {

? ? #? ? ? ? root? html;

? ? #? ? ? ? index? index.html index.htm;

? ? #? ? }

? ? #}

? ? # HTTPS server

? ? #

? ? #server {

? ? #? ? listen? ? ? 443 ssl;

? ? #? ? server_name? localhost;

? ? #? ? ssl_certificate? ? ? cert.pem;

? ? #? ? ssl_certificate_key? cert.key;

? ? #? ? ssl_session_cache? ? shared:SSL:1m;

? ? #? ? ssl_session_timeout? 5m;

? ? #? ? ssl_ciphers? HIGH:!aNULL:!MD5;

? ? #? ? ssl_prefer_server_ciphers? on;

? ? #? ? location / {

? ? #? ? ? ? root? html;

? ? #? ? ? ? index? index.html index.htm;

? ? #? ? }

? ? #}

}

[root@node01 src]# systemctl start nginx

4.5 測試

4.5.1 在瀏覽器輸入192.168.48.181/phpMyAdmin

4.5.2 用root用戶登錄

phpMyAdmin部署完成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喇澡,一起剝皮案震驚了整個濱河市迅栅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晴玖,老刑警劉巖读存,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呕屎,居然都是意外死亡让簿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門秀睛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尔当,“玉大人,你說我怎么就攤上這事蹂安⊥钟” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵田盈,是天一觀的道長畜号。 經(jīng)常有香客問我,道長缠黍,這世上最難降的妖魔是什么弄兜? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任药蜻,我火速辦了婚禮,結(jié)果婚禮上替饿,老公的妹妹穿的比我還像新娘语泽。我一直安慰自己,他們只是感情好视卢,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布踱卵。 她就那樣靜靜地躺著,像睡著了一般据过。 火紅的嫁衣襯著肌膚如雪惋砂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天绳锅,我揣著相機與錄音西饵,去河邊找鬼。 笑死鳞芙,一個胖子當著我的面吹牛眷柔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播原朝,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驯嘱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了喳坠?” 一聲冷哼從身側(cè)響起鞠评,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壕鹉,沒想到半個月后剃幌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡御板,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年锥忿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怠肋。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡敬鬓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笙各,到底是詐尸還是另有隱情钉答,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布杈抢,位于F島的核電站数尿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惶楼。R本人自食惡果不足惜右蹦,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一诊杆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧何陆,春花似錦晨汹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巩剖,卻和暖如春铝穷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背佳魔。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工曙聂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吃引。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓筹陵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親镊尺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354