什么是LNMP

LNMP(别名LEMP)是指由Linux,Nginx,MysqL/MariaDB,PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础软件包,在这个基础环境上我们可以搭建任何使用PHP/Perl/Python等语言的动态网站,如商务网站、博客、论坛和开源Web应用程序软件等,它是互联网上被广泛使用的Web网站架构之一。

部署方式

从网站规模大小(访问流量、注册用户等)角度来看,LNMP架构可以使用单机部署方式和集群部署方式。单机部署方式即所有的软件都部署在一台Linux服务器上;集群部署方式可以将Nginx网络服务器,MysqL/MariaDB数据库,PHP软件分开安装到不同的服务器上,它们彼此之间通过TCP网络协议相互通信协助工作,以及对外提供Web应用访问服务。因此,当单台服务器不能满足性能要求时,可以使用集群方式部署。

本教程将指导您如何在RHEL 7/CentOS 7以及Fedora 23/24/25等衍生版本中使用Nginx 1.10,MariaDB 10PHP 6安装LNMP应用服务器环境。(在其他系统如SUSEUbuntu中源码编译安装LNMP同样可以参考本教程。)


前提要求

准备2RHEL 7CentOS 7服务器,一台用于安装MariaDB,另一台用于安装NginxPHP。当然你也可以仅仅使用1台服务器部署LNMP以通过实验来验证LNMP

HOSTNAME IP OS NODE

hming-server217-mdb

10.0.6.217 CentOS 7.2 x86_64 MariaDB
hming-server218-web 10.0.6.218 CentOS 7.2 x86_64 MariaDB,PHP


主软件包(源码包)

DB mariadb-10.1.20.tar.gz

PHP PHP-5.6.30.tar.bz2

Nginx Nginx-1.10.2.tar.gz


注意:主软件包在这之前我已经提前下载好了,可能并不是最新和稳定版,你也可以根据你的需求选择其他版本。


依赖软件


源码编译安装LNMP有许多依赖软件(如gccmake)是必要的,一般可以通过YUM软件管理程序来安装,另外小部分需要源码编译安装。


通过yum安装gccgcc-c++make等必需软件包

#yuminstall-ygccgcc-c++makeautomake


安装MariaDB


1. 使用yum安装gccmakebisonncurses-devel等依赖软件包

#yuminstallzlib-develncursesncurses-develbison


2.安装cmakecmake是编译MysqL/MariaDB的必要工具(MysqL5.6/MariaDB 10及以后的版本) 你可以在网站https://cmake.org/中下载cmake软件包

将软件包上传到/usr/local/src目录下,然后解压cmake包,cdcmake目录执行./bootstrap脚本进行安装,同时可以使用--prefix=<install dir>选项指定安装的目录。

#tar-zxfcmake-3.7.2.tar.gz
#cdcmake-3.7.2/
#./bootstrap--prefix=/usr/local/cmake
#make&&makeinstall


当安装完之后,你可以使用执行/usr/local/cmake/bin/cmake --version查看安装的cmake版本

[root@hming-server217-mdb~]#/usr/local/cmake/bin/cmake--version
cmakeversion3.7.2

CMakesuitemaintainedandsupportedbyKitware(kitware.com/cmake).


3.安装完cmake编译工具之后,接下来我们安装MariaDB(你可以访问https://mariadb.org/下载MariaDB),首先创建MariaDB安装目录/usr/local/MysqL和数据库服务器的数据目录/data/MysqL/webdata,并创建MysqL用户,并将/data/MysqL/webdata目录的所属主权限修改为MysqL用户


创建安装目录和数据目录

#mkdir/usr/local/MysqL
#mkdir/data/MysqL/webdata-p


创建MysqL用户,并修改数据目录的权限

#groupaddMysqL
#useradd-r-gMysqL-s/sbin/nologinMysqL-M
#chown-RMysqL:MysqL/data/MysqL/


4. 编译安装MariaDB,将MariaDB软件包解压后使用cmake进行编译,根据需求选择相应的编译参数进行编译(查看编译选项/usr/local/cmake/bin/cmake . -LH). (或者访问MariaDB编译安装帮助文档https://mariadb.com/kb/en/mariadb/compiling-mariadb-from-source/)

[root@hming-server217-mdb/usr/local/src]#tar-zxfmariadb-10.1.20.tar.gz
[root@hming-server217-mdb/usr/local/src]#cdmariadb-10.1.20/

[root@hming-server217-mdb/usr/local/src/mariadb-10.1.20]#/usr/local/cmake/bin/cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/MysqL-DMysqL_DATADIR=/data/MysqL/webdata-DSYSconfdIR=/etc-DMysqL_TCP_PORT=3306-DMysqL_USER=MysqL-DDEFAULT_CHARSET=utf8-DEXTRA_CHARSETS=all-DDEFAULT_COLLATION=utf8_general_ci-DMysqL_UNIX_ADDR=/data/MysqL/webdata/MysqL.sock-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_PARTITION_STORAGE_ENGINE=1-DWITH_ARCHIVE_STORAGE_ENGINE=1-DENABLED_LOCAL_INFILE=1-DWITH_EMbedDED_SERVER=1-DWITH_READLINE=1-DWITH_DEBUG=0


执行gmake gmake install进行最后的安装

[root@hming-server217-mdb/usr/local/src/mariadb-10.1.20]#gmake
[root@hming-server217-mdb/usr/local/src/mariadb-10.1.20]#gmakeinstall


5.配置MysqL环境变量,如果不配置默认系统找不到MysqL的可执行程序和命令,否则你必须使用全路径执行与MysqL相关的任何命令,查看系统默认的环境变量


使用export命令添加MysqL环境变量

[root@hming-server217-mdb~]#exportPATH=$PATH:/usr/local/MysqL/bin
[root@hming-server217-mdb~]#echo$PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/MysqL/bin


最后将MysqL环境配置添加到/etc/profile或者/etc/profile.d/的自定义文件中

[root@hming-server217-mdb~]#echo"exportPATH=$PATH:/usr/local/MysqL/bin">/etc/profile.d/MysqL.sh
[root@hming-server217-mdb~]#source/etc/profile.d/MysqL.sh


配置了环境变量,我们就可以直接在shell终端下执行MysqL命令,使用MysqL -V查看MysqL版本

[root@hming-server217-mdb~]#MysqL-V
MysqLVer15.1distrib10.1.20-MariaDB,forLinux(x86_64)usingreadline5.1


6.添加MariaDB库文件

[root@hming-server217-mdb~]#echo"/usr/local/MysqL/lib">>/etc/ld.so.conf.d/mariadb-x86_64.conf


7.拷贝MariaDB服务启动脚本到/etc/init.d/目录中

[root@hming-server217-mdb~]#cp/usr/local/MysqL/support-files/MysqL.server/etc/init.d/MysqLd
[root@hming-server217-mdb~]#chmod755/etc/init.d/MysqLd
[root@hming-server217-mdb~]#chkconfig--addMysqLd
[root@hming-server217-mdb~]#chkconfigMysqLdon
[root@hming-server217-mdb~]#systemctldaemon-reload


8. 执行初始化数据库脚本,安装MariaDB基础数据库(执行./MysqL_install_db --basedir=/usr/local/MysqL --datadir=/data/MysqL/webdata --user=MysqL --no-defaults)

[root@hming-server217-mdb~]#cd/usr/local/MysqL/scripts/
[root@hming-server217-mdb/usr/local/MysqL/scripts]#./MysqL_install_db--basedir=/usr/local/MysqL--datadir=/data/MysqL/webdata--user=MysqL--no-defaults
[root@hming-server217-mdb/usr/local/MysqL/scripts]#ls/data/MysqL/webdata/
aria_log.00000001ibdata1ib_logfile1performance_schema
aria_log_controlib_logfile0MysqLtest


9.配置/etc/my.cnf,该文件是MysqL服务的主要配置文件

[root@hming-server217-mdb~]#cp/etc/my.cnf/etc/my.cnf.save
[root@hming-server217-mdb~]#cat/etc/my.cnf
[client]
port=3306
socket=/data/MysqL/webdata/MysqL.sock
default-character-set=utf8

[MysqLd]
port=3306
user=MysqL
basedir=/usr/local/MysqL
datadir=/data/MysqL/webdata
socket=/data/MysqL/webdata/MysqL.sock
character-set-server=utf8
external-locking=FALSE
skip-name-resolv
default-storage-engine=InnoDB
back_log=1024
transaction_isolation=REPEATABLE-READ
max_connections=5000
max_connect_errors=6000
open_files_limit=65535
table_open_cache=512

[MysqLdump]
quick
max_allowed_packet=32M

[MysqL]
no-auto-rehash
default-character-set=utf8

[MysqLd_safe]
open-files-limit=8192
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid


创建/var/log/mariadb/var/run/mariadb目录

[root@hming-server217-mdb~]#mkdir/var/log/mariadb
[root@hming-server217-mdb~]#mkdir/var/run/mariadb
[root@hming-server217-mdb~]#chownMysqL:MysqL/var/log/mariadb
[root@hming-server217-mdb~]#chownMysqL:MysqL/var/run/mariadb


10.启动MariaDB服务

[root@hming-server217-mdb~]#systemctlstartMysqLd
[root@hming-server217-mdb~]#systemctlstatusMysqLd

[root@hming-server217-mdb~]#systemctlstatusMysqLd
●MysqLd.service-LSB:startandstopMysqL
Loaded:loaded(/etc/rc.d/init.d/MysqLd)
Active:active(running)sinceFri2017-06-0223:53:09CST;3daysago
Docs:man:systemd-sysv-generator(8)
Process:27419ExecStop=/etc/rc.d/init.d/MysqLdstop(code=exited,status=0/SUCCESS)
Process:27449ExecStart=/etc/rc.d/init.d/MysqLdstart(code=exited,status=0/SUCCESS)
CGroup:/system.slice/MysqLd.service
├─27460/bin/sh/usr/local/MysqL/bin/MysqLd_safe--datadir=/data/MysqL/webdata--pid-file=/data/mysq...
└─27595/usr/local/MysqL/bin/MysqLd--basedir=/usr/local/MysqL--datadir=/data/MysqL/webdata--plugi...

Jun0223:53:08hming-server217-mdbsystemd[1]:StartingLSB:startandstopMysqL...
Jun0223:53:08hming-server217-mdbMysqLd[27449]:StartingMysqL.17060223:53:08MysqLd_safeLoggingto'/...og'.
Jun0223:53:09hming-server217-mdbMysqLd[27449]:SUCCESS!
Jun0223:53:09hming-server217-mdbsystemd[1]:StartedLSB:startandstopMysqL.
Hint:Somelineswereellipsized,use-ltoshowinfull.


查看MariaDB服务进程

[root@hming-server217-mdb~]#psaux|grepMysqL
root274600.00.01153801744?S23:530:00/bin/sh/usr/local/MysqL/bin/MysqLd_safe--datadir=/data/MysqL/webdata--pid-file=/data/MysqL/webdata/hming-server217-mdb.pid
MysqL275951.05.2120938099428?Sl23:530:00/usr/local/MysqL/bin/MysqLd--basedir=/usr/local/MysqL--datadir=/data/MysqL/webdata--plugin-dir=/usr/local/MysqL/lib/plugin--user=MysqL--log-error=/var/log/mariadb/mariadb.log--open-files-limit=8192--pid-file=/data/MysqL/webdata/hming-server217-mdb.pid--socket=/data/MysqL/webdata/MysqL.sock--port=3306
root276270.00.0112644952pts/2S+23:530:00grep--color=autoMysqL


11.执行MysqL_secure_installation初始化数据库,设MysqL用户root密码

[root@hming-server217-mdb~]#MysqL_secure_installation

NOTE:RUNNINgalLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMariaDB
SERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!

InordertologintoMariaDBtosecureit,we'llneedthecurrent
passwordfortherootuser.Ifyou'vejustinstalledMariaDB,and
youhaven'tsettherootpasswordyet,thepasswordwillbeblank,soyoushouldjustpressenterhere.

Entercurrentpasswordforroot(enterfornone):
OK,successfullyusedpassword,movingon...

SettingtherootpasswordensuresthatnobodycanlogintotheMariaDB
rootuserwithouttheproperauthorisation.

Setrootpassword?[Y/n]y
Newpassword:
Re-enternewpassword:
Passwordupdatedsuccessfully!
Reloadingprivilegetables..
...Success!


Bydefault,aMariaDBinstallationhasananonymoususer,allowinganyone
tologintoMariaDBwithouthavingtohaveauseraccountcreatedfor
them.Thisisintendedonlyfortesting,andtomaketheinstallation
goabitsmoother.Youshouldremovethembeforemovingintoa
productionenvironment.

Removeanonymoususers?[Y/n]y
...Success!

normally,rootshouldonlybeallowedtoconnectfrom'localhost'.This
ensuresthatsomeonecannotguessattherootpasswordfromthenetwork.

disallowrootloginremotely?[Y/n]y
...Success!

Bydefault,MariaDBcomeswithadatabasenamed'test'thatanyonecan
access.Thisisalsointendedonlyfortesting,andshouldberemoved
beforemovingintoaproductionenvironment.

Removetestdatabaseandaccesstoit?[Y/n]y
-Droppingtestdatabase...
...Success!
-Removingprivilegesontestdatabase...
...Success!

Reloadingtheprivilegetableswillensurethatallchangesmadesofar
willtakeeffectimmediately.

ReloadprivilegetablesNow?[Y/n]y
...Success!

Cleaningup...

Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDB
installationshouldNowbesecure.

ThanksforusingMariaDB!


12.登录MariaDB数据库

[root@hming-server217-mdb~]#MysqL-uroot-p
Enterpassword:
WelcometotheMariaDBmonitor.Commandsendwith;or\g.
YourMariaDBconnectionidis353
Serverversion:10.1.20-MariaDBSourcedistribution

copyright(c)2000,2016,Oracle,MariaDBCorporationAbandothers.

Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.

MariaDB[(none)]>selectversion();
+-----------------+
|version()|
+-----------------+
|10.1.20-MariaDB|
+-----------------+
1rowinset(0.00sec)

MariaDB[(none)]>


安装Nginx


1.安装依赖软件包

[root@hming-server218-web~]#yuminstallgccgcc-c++zlibzlib-develpcrepcre-developenssl-develgdgd-develperl-develperl-ExtUtils-Embed


2.创建Nginx用户

[root@hming-server218-web~]#groupaddNginx
[root@hming-server218-web~]#useradd-gNginx-s/sbin/nologinNginx-M


3. 编译安装Nginx

[root@hming-server218-web/usr/local/src]#tar-zxfNginx-1.10.2.tar.gz
[root@hming-server218-web/usr/local/src]#cdNginx-1.10.2/
[root@hming-server218-web/usr/local/src/Nginx-1.10.2]#./configure\
--user=Nginx\
--group=Nginx\
--prefix=/usr/local/Nginx\
--pid-path=/var/run/Nginx/Nginx.pid\
--lock-path=/var/lock/subsys/Nginx\
--with-http_stub_status_module\
--with-pcre\
--with-http_ssl_module\
--with-mail_ssl_module\
--with-http_gzip_static_module\
--http-log-path=/var/log/Nginx/access.log\
--error-log-path=/var/log/Nginx/error.log\
--http-client-body-temp-path=/tmp/Nginx/client_body\
--http-proxy-temp-path=/tmp/Nginx/proxy\
--http-fastcgi-temp-path=/tmp/Nginx/fastcgi\
--http-uwsgi-temp-path=/tmp/Nginx/uwsgi\
--with-http_degradation_module\
--with-http_realip_module\
--with-http_addition_module\
--with-http_sub_module\
--with-http_perl_module\
--with-http_image_filter_module=dynamic\
--with-http_flv_module

[root@hming-server218-web/usr/local/src/Nginx-1.10.2]#make&&makeinstall


4. 启动Nginx服务

[root@hming-server218-web~]#ln-s/usr/local/Nginx/sbin/Nginx/usr/local/sbin/
[root@hming-server218-web~]#mkdir/tmp/Nginx
[root@hming-server218-web~]#Nginx
[root@hming-server218-web~]#ps-ef|grepNginx
root279131000:49?00:00:00Nginx:masterprocessNginx
Nginx2791427913000:49?00:00:00Nginx:workerprocess
root2792322381000:49pts/100:00:00grep--color=autoNginx

5.添加防火墙

[root@hming-server218-web~]#firewall-cmd--permanent--add-port=80/tcp
success
[root@hming-server218-web~]#firewall-cmd--reload
success


6. 通过客户端访问http://10.0.6.218

wKiom1k1KC6TnB5QAAAswLN_yC0724.png


安装PHP


  1. 安装依赖软件包

[root@hming-server218-web~]#yuminstallgccgcc-c++libtoollibxslt-devellibpnglibpng-develbzip2bzip2-devellibxml2-devellibXpm-devellibcurl-develcurllibmcryptexpatlibxsltfreetypefreetype-devellibmcrypt-develautoconflibpngzlib-develzlibnet-snmpnet-snmp-devel

2.安装libiconv

[root@hming-server218-web~]#tar-zxflibiconv-1.15.tar.gz
[root@hming-server218-web~]#cdlibiconv-1.15/
[root@hming-server218-web~/libiconv-1.15]#./configure--prefix=/usr/local/libiconv
[root@hming-server218-web~/libiconv-1.15]#make&&makeinstall
[root@hming-server218-web~]#echo"/usr/local/libiconv/lib">>/etc/ld.so.conf
[root@hming-server218-web~]#ldconfig


3.安装libmcrypt

[root@hming-server218-web~]#tar-jxflibmcrypt-2.5.8.tar.bz2
[root@hming-server218-web~]#cdlibmcrypt-2.5.8/
[root@hming-server218-web~/libmcrypt-2.5.8]#./configure--prefix=/usr/local/libmcrypt
[root@hming-server218-web~/libmcrypt-2.5.8]#make&&makeinstall

4. 安装 jpeg

#tar-zxfjpegsrc.v9b.tar.gz
#cdjpeg-9b/
#mkdir/usr/local/jpeg9&&mkdir/usr/local/jpeg9/{bin,lib,include}
#mkdir/usr/local/jpeg9/man/man1-p
#cp-rf/usr/share/libtool/config/config.sub.&&cp-rf/usr/share/libtool/config/config.guess.
cp:overwrite\u2018./config.sub\u2019?y
cp:overwrite\u2018./config.guess\u2019?y
#./configure--prefix=/usr/local/jpeg9--enable-shared--enable-static
#make&&makeinstall


5.安装libgd

[root@hming-server218-web~]#tar-zxflibgd-2.2.3.tar.gz
[root@hming-server218-web~]#cdlibgd-2.2.3/
[root@hming-server218-web~/libgd-2.2.3]#./configure--prefix=/usr/local/libgd2--with-zlib--with-jpeg=/usr/local/jpeg9--with-png--with-freetype
[root@hming-server218-web~/libgd-2.2.3]#make&&makeinstall


6. 编译安装PHP

[root@hming-server218-web~]#groupaddPHP-fpm
[root@hming-server218-web~]#useradd-gPHP-fpm-s/sbin/nologinPHP-fpm-M
[root@hming-server218-web~]#tar-jxfPHP-5.6.30.tar.bz2
[root@hming-server218-web~]#cdPHP-5.6.30/
[root@hming-server218-web~]#./configure\
--prefix=/usr/local/PHP\
--with-config-file-path=/usr/local/PHP/etc\
--enable-fpm\
--with-fpm-user=PHP-fpm\
--with-fpm-group=PHP-fpm\
--with-MysqL=/usr/local/MysqL\
--with-MysqLi=/usr/local/MysqL/bin/MysqL_config\
--with-jpeg-dir=/usr/local/jpeg9\
--with-mcrypt=/usr/local/libmcrypt\
--with-gd=/usr/local/libgd2\
--with-iconv-dir=/usr/local/libiconv\
--with-openssl-dir\
--with-freetype-dir\
--with-libxml-dir\
--with-png-dir\
--with-zlib\
--with-curl\
--with-mhash\
--with-pear\
--with-pcre-dir\
--with-gettext\
--enable-soap\
--enable-gd-native-ttf\
--enable-mbstring\
--enable-exif\
--enable-sockets\
--enable-ftp\
--disable-ipv6\
--enable-bcmath\
--enable-shmop\
--with-snmp\
--enable-sysvsem

[root@hming-server218-web~/PHP-5.6.30]#make
[root@hming-server218-web~/PHP-5.6.30]#maketest
[root@hming-server218-web~/PHP-5.6.30]#makeinstall


7.拷贝PHP.ini配置文件

[root@hming-server218-web~/PHP-5.6.30]#cpPHP.ini-production/usr/local/PHP/etc/PHP.ini


8.修改PHP-fpm.conf配置文件

[root@hming-server218-web~]#vim/usr/local/PHP/etc/PHP-fpm.conf
[global]
pid=/usr/local/PHP/var/run/PHP-fpm.pid
error_log=/usr/local/PHP/var/log/PHP-fpm.log
[www]
listen=/var/lib/PHP/PHP-fcgi.sock
user=PHP-fpm
group=PHP-fpm
listen.owner=Nginx
listen.group=Nginx
pm=dynamic
pm.max_children=100
pm.start_servers=20
pm.min_spare_servers=5
pm.max_spare_servers=35
pm.max_requests=500
rlimit_files=1024

9. 检查配置

[root@hming-server218-web~]#/usr/local/PHP/sbin/PHP-fpm-t
[05-Jun-201720:23:27]NOTICE:configurationfile/usr/local/PHP/etc/PHP-fpm.conftestissuccessful


10.拷贝启动脚本

[root@hming-server218-web~]#cpPHP-5.6.30/sapi/fpm/init.d.PHP-fpm/etc/init.d/PHP-fpm
[root@hming-server218-web~]#chmod755/etc/init.d/PHP-fpm
[root@hming-server218-web~]#/etc/init.d/PHP-fpmstart
StartingPHP-fpmdone


测试Nginx是否正常解析PHP脚本

1. 修改Nginx.conf配置文件

userNginxNginx;
worker_processes4;
error_log/var/log/Nginx/error.lognotice;
pid/var/run/Nginx/Nginx.pid;
worker_rlimit_nofile65535;

events{
useepoll;
worker_connections65535;
}

http{
includemime.types;
default_typeapplication/octet-stream;
server_names_hash_bucket_size2048;
server_names_hash_max_size4096;

log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'
'$status$body_bytes_sent"$http_referer"'
'"$http_user_agent""$http_x_forwarded_for"';

access_log/var/log/Nginx/access.logmain;

sendfileon;
tcp_nopushon;
tcp_nodelayon;
keepalive_timeout65;

client_header_timeout30;
client_body_timeout3m;
client_max_body_size10m;
client_body_buffer_size256k;

send_timeout3m;
connection_pool_size256;
client_header_buffer_size32k;
large_client_header_buffers464k;
request_pool_size4k;
output_buffers432k;
postpone_output1460;

client_body_temp_path/tmp/Nginx/client_body;
proxy_temp_path/tmp/Nginx/proxy;
fastcgi_temp_path/tmp/Nginx/fastcgi;

gzipon;
gzip_min_length1k;
gzip_buffers416k;
gzip_comp_level3;
gzip_http_version1.1;
gzip_typestext/plainapplication/x-javascripttext/csstext/htmapplication/xml;
gzip_varyon;

fastcgi_connect_timeout300;
fastcgi_send_timeout300;
fastcgi_read_timeout300;
fastcgi_buffer_size64k;
fastcgi_buffers464k;
fastcgi_busy_buffers_size128k;
fastcgi_temp_file_write_size128k;
fastcgi_intercept_errorson;

server{
listen80;
server_name10.0.6.218;
charsetUTF8;
indexindex.htmlindex.htmindex.PHPindex.jsp;
root/usr/local/Nginx/html;

#access_loglogs/host.access.logmain;

location/{
roothtml;
indexindex.htmlindex.htm;
}

#redirectservererrorpagestothestaticpage/50x.html
error_page500502503504/50x.html;
location=/50x.html{
roothtml;
}

#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000
location~\.PHP${
roothtml;
fastcgi_passunix:/var/lib/PHP/PHP-fcgi.sock;
fastcgi_indexindex.PHP;
fastcgi_paramSCRIPT_FILENAME/usr/local/Nginx/html$fastcgi_script_name;
includefastcgi_params;
}

}

}


2.测试Nginx配置文件语法是否存在错误

[root@hming-server218-web~]#Nginx-t
Nginx:theconfigurationfile/usr/local/Nginx/conf/Nginx.confSyntaxisok
Nginx:configurationfile/usr/local/Nginx/conf/Nginx.conftestissuccessful


3. 创建测试解析PHP脚本

[root@hming-server218-web~]#vim/usr/local/Nginx/html/info.PHP
<?PHP
PHPinfo();
?>

[root@hming-server218-web~]#Nginx-sreload

4. 访问http://10.0.6.218/info.PHP

wKiom1k1LIfS7zXJAABr6LciKjA175.png

注意:该测试脚本仅用于我们查看当前安装的PHP支持的模块信息,在测试之后应当立即删除


安装PHPMyAdmin

PHPMyAdmin是一个使用PHP语言编写的免费软件,旨在通过Web界面管理MysqL数据库。PHPMyAdmin支持MysqLMariaDB上的各种操作。用户可以通过Web界面执行数据库的常用操作(数据库管理,,字段,索引,用户,权限,视图,函数等),以及直接执行任何sql语句。


1.创建PHPMyAdmin Web目录

[root@hming-server218-web~]#mkdir/app/data/PHPMyAdmin-p

2.将PHPMyAdmin软件包解压到/app/data/PHPMyAdmin 目录下

#tar-zxfPHPMyAdmin-4.7.1-all-languages.tar.gz
#cp-arPHPMyAdmin-4.7.1-all-languages/*/app/data/PHPMyAdmin/
#chown-RNginx:Nginx/app/data/PHPMyAdmin
#chown-RPHP-fpm:PHP-fpm/app/data/PHPMyAdmin


3.修改Nginx配置,创建一个server虚拟机配置文件

http{
......
#PHPMyAdmin
server{
listen8000;
server_name10.0.6.218;
charsetUTF8;
indexindex.htmlindex.htmindex.PHPindex.jsp;
root/app/data;
access_log/var/log/Nginx/PHPMyAdmin.logmain;

location/PHPMyAdmin/{
indexindex.htmlindex.htmindex.PHP;
}

location~\.PHP${
fastcgi_passunix:/var/lib/PHP/PHP-fcgi.sock;
fastcgi_indexindex.PHP;
fastcgi_paramSCRIPT_FILENAME/app/data$fastcgi_script_name;
includefastcgi_params;
}
}
}


4.创建数据库root用户权限,允许PHP服务器使用root用户管理数据服务器

[root@hming-server217-mdb~]#MysqL-uroot-p
Enterpassword:
WelcometotheMariaDBmonitor.Commandsendwith;or\g.
YourMariaDBconnectionidis13
Serverversion:10.1.20-MariaDBSourcedistribution

copyright(c)2000,MariaDBCorporationAbandothers.

Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.

MariaDB[(none)]>selectuser,host,passwordfromMysqL.user;
+------+-----------+-------------------------------------------+
|user|host|password|
+------+-----------+-------------------------------------------+
|root|localhost|*84BB5DF4823DA319BBF86C99624479A198E6EEE9|
|root|127.0.0.1|*84BB5DF4823DA319BBF86C99624479A198E6EEE9|
|root|::1|*84BB5DF4823DA319BBF86C99624479A198E6EEE9|
+------+-----------+-------------------------------------------+
3rowsinset(0.00sec)

MariaDB[(none)]>grantallprivilegeson*.*to'root'@'10.0.6.218'identifiedby'PHPMyAdmin_123';
QueryOK,0rowsaffected(0.00sec)

MariaDB[(none)]>flushprivileges;
QueryOK,0rowsaffected(0.00sec)


5. 配置防火墙规则

#iptables-IINPUT-ptcp--dport3306-s10.0.6.0/24-jACCEPT

或者

#firewall-cmd--permanent--add-rich-rule'rulefamily=ipv4sourceaddress=10.0.6.0/24portport=3306protocol=tcpaccept'


6.修改PHPMyAdmin配置文件

#cp/app/data/PHPMyAdmin/libraries/config.default.PHP/app/data/PHPMyAdmin/libraries/config.default.PHP.save
#vim/app/data/PHPMyAdmin/libraries/config.default.PHP

/**
*The'cookie'auth_typeuseSAESalgorithmtoencryptthepassword.If
*atleastoneserverconfigurationuses'cookie'auth_type,enterherea
*passphrasethatwillbeusedbyAES.Themaximumlengthseemstobe46
*characters.
*
*@globalstring$cfg['blowfish_secret']
*/
$cfg['blowfish_secret']='123456';


/**
*MysqLhostnameorIPaddress
*
*@globalstring$cfg['Servers'][$i]['host']
*/
$cfg['Servers'][$i]['host']='10.0.6.217';

/**
*MysqLport-leaveblankfordefaultport
*
*@globalstring$cfg['Servers'][$i]['port']
*/
$cfg['Servers'][$i]['port']='3306';

/**
*Pathtothesocket-leaveblankfordefaultsocket
*
*@globalstring$cfg['Servers'][$i]['socket']
*/
$cfg['Servers'][$i]['socket']='';


/**
*Authenticationmethod(validchoices:config,http,signonorcookie)
*
*@globalstring$cfg['Servers'][$i]['auth_type']
*/
$cfg['Servers'][$i]['auth_type']='cookie';

/**
*HTTPBasicAuthRealmnametodisplay(onlyusedwith'HTTP'auth_type)
*
*@globalstring$cfg['Servers'][$i]['auth_http_realm']
*/
$cfg['Servers'][$i]['auth_http_realm']='';

/**
*MysqLuser
*
*@globalstring$cfg['Servers'][$i]['user']
*/
$cfg['Servers'][$i]['user']='root';

/**
*MysqLpassword(onlyneededwith'config'auth_type)
*
*@globalstring$cfg['Servers'][$i]['password']
*/
$cfg['Servers'][$i]['password']='PHPMyAdmin_123';


7. 登录PHPMyAdmin Web管理界面,打开http://10.0.6.218:8000/PHPMyAdmin/

wKioL1k1LtOjYflAAABRSY9XMcY416.png


输入数据库用户和密码

wKiom1k1LvuwWYS4AAC226Qplhw248.png


测试创建数据库

wKioL1k1LyaAiOBjAACQXd-EbIA418.png

wKioL1k1LzbjDUlwAABzorjVTrg315.png

CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境的更多相关文章

  1. HTML5自定义视频播放器源码

    这篇文章主要介绍了HTML5自定义视频播放器源码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  2. canvas中普通动效与粒子动效的实现代码示例

    canvas用于在网页上绘制图像、动画,可以将其理解为画布,在这个画布上构建想要的效果。本文详细的介绍了粒子特效,和普通动效进行对比,非常具有实用价值,需要的朋友可以参考下

  3. HTML5自定义mp3播放器源码

    这篇文章主要介绍了HTML5自定义mp3播放器源码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  4. H5混合开发app如何升级的方法

    本篇文章主要介绍了H5混合开发app如何升级的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. canvas学习和滤镜实现代码

    这篇文章主要介绍了canvas学习和滤镜实现代码,利用 canvas,前端人员可以很轻松地、进行图像处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. localStorage的过期时间设置的方法详解

    这篇文章主要介绍了localStorage的过期时间设置的方法详解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  7. 详解HTML5 data-* 自定义属性

    这篇文章主要介绍了详解HTML5 data-* 自定义属性的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. HTML5的postMessage的使用手册

    HTML5提出了一个新的用来跨域传值的方法,即postMessage,这篇文章主要介绍了HTML5的postMessage的使用手册的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  9. 教你使用Canvas处理图片的方法

    本篇文章主要介绍了教你使用Canvas处理图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. html5 canvas手势解锁源码分享

    这篇文章主要介绍了html5 canvas手势解锁源码分享,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部