什么是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 10和PHP 6安装LNMP应用服务器环境。(在其他系统如SUSE、Ubuntu中源码编译安装LNMP同样可以参考本教程。)
前提要求
准备2台RHEL 7或CentOS 7服务器,一台用于安装MariaDB,另一台用于安装Nginx和PHP。当然你也可以仅仅使用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
注意:主软件包在这之前我已经提前下载好了,可能并不是最新和稳定版,你也可以根据你的需求选择其他版本。
依赖软件
源码编译安装LNMP有许多依赖软件(如gcc、make)是必要的,一般可以通过YUM软件管理程序来安装,另外小部分需要源码编译安装。
通过yum安装gcc、gcc-c++、make等必需软件包
#yuminstall-ygccgcc-c++makeautomake
安装MariaDB
1. 使用yum安装gcc、make、bison、ncurses-devel等依赖软件包
#yuminstallzlib-develncursesncurses-develbison
2.安装cmake,cmake是编译MysqL/MariaDB的必要工具(MysqL5.6/MariaDB 10及以后的版本) 你可以在网站https://cmake.org/中下载cmake软件包
将软件包上传到/usr/local/src目录下,然后解压cmake包,cd到cmake目录执行./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
#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相关的任何命令,查看系统默认的环境变量
[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
[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!
[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
[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
安装PHP
安装依赖软件包
[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
[root@hming-server218-web~/PHP-5.6.30]#cpPHP.ini-production/usr/local/PHP/etc/PHP.ini
[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
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; } } }
[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
注意:该测试脚本仅用于我们查看当前安装的PHP支持的模块信息,在测试之后应当立即删除
安装PHPMyAdmin
PHPMyAdmin是一个使用PHP语言编写的免费软件,旨在通过Web界面管理MysqL数据库。PHPMyAdmin支持MysqL和MariaDB上的各种操作。用户可以通过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
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'
#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/
测试创建数据库