zoukankan      html  css  js  c++  java
  • LNMP搭建流程

    一、首先搭建Nginx服务

     
    1. yum install -y pcre-devel openssl-devel #用本地yum仓库安装依赖包
    2. wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下载软件源码包
    3. useradd -s /sbin/nologin -M www #创建程序用户
    4. tar xf nginx-1.10.2.tar.gz -C /usr/src/ #解压缩
    5. cd /usr/src/nginx-1.10.2
    6. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #预配置
    7. make && make install #编译和安装
    8. ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #给命令做软连接,以便PATH能找到
    9. /usr/local/nginx/sbin/nginx #启动nginx

    特别提示: /usr/local/nginx/sbin/nginx -s reload nginx平滑重启命令 
    /usr/local/nginx/sbin/nginx -s stop nginx停止服务命令

    2、加工Nginx配置文件

     
    1. cd /usr/local/nginx/conf
    2. egrep -v "#|^$" nginx.conf.default > nginx.conf

    以上Nginx就安装完成了。

     

    二、安装二进制MySQL数据库

    说明:
    为什么选择MySQL数据库
    目前,绝大多数使用Linux操作系统的互联网企业都使用MySQL作为后端的数据库,从大型的BAT门户,到电商门户平台,分类门户平台等无一例外。那么,MySQL数据库到底有哪些优势和特点,让大家毫不犹豫的选择它呢?
    原因可能有以下几点
    1、性能卓越,服务稳定,很少出现异常宕机。
    2、开放源代码且无版权制约,自主性强,使用成本低。
    3、历史悠久,社区及用户非常活跃,遇到问题,可以很快获取到帮助。
    4、软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
    5、支持多种操作系统,提供多种API接口,支持多种开发语言,特别是对流行的PHP语言无缝支持。
    6、品牌口碑效应,使得企业无需考虑就直接用之。
    

    下面我们开始安装 
    1、创建mysql用户的账号

    image_1crp8ki9ildcf1r201041rrv1p.png-20.1kB

     
    1. [root@LNMP ~]# groupadd mysql
    2. [root@LNMP ~]# useradd -s /sbin/nologin -g mysql -M mysql
    3. [root@LNMP ~]# tail -1 /etc/passwd
    4. mysql:x:501:501::/home/mysql:/sbin/nologin
    5. [root@LNMP ~]# id mysql
    6. uid=501(mysql) gid=501(mysql) groups=501(mysql)

    2、获取MySQL二进制软件包

    百度云盘:http://pan.baidu.com/s/1hrBCzsC 提取码:4yjf

    image_1crp8oepu157sss1lmp1ho41ug92m.png-14.3kB

    3、采用二进制方式安装MySQL

     
    1. [root@LNMP ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
    2. [root@LNMP ~]# cd /usr/local/
    3. [root@LNMP local]# mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32
    4. [root@LNMP local]# ln -s mysql-5.5.32 mysql
    5. [root@LNMP local]# ls
    6. bin games lib libexec mysql-5.5.32 sbin src
    7. etc include lib64 mysql nginx share
    8. [root@LNMP local]# cd /usr/local/mysql
    9. [root@LNMP mysql]# ls
    10. bin data include lib mysql-test scripts sql-bench
    11. COPYING docs INSTALL-BINARY man README share support-files

    微信图片_20181108170329.png-25.5kB

    4、初始化MySQL配置文件my.cnf

     
    1. [root@LNMP mysql]# cd /usr/local/mysql
    2. [root@LNMP mysql]# ls -l support-files/*.cnf
    3. [root@LNMP mysql]# /bin/cp support-files/my-small.cnf /etc/my.cnf

    微信图片_20181108170808.png-50.6kB

    5、初始化MySQL数据库文件

     
    1. [root@LNMP ~]# mkdir -p /usr/local/mysql/data #建立MySQL数据文件目录
    2. [root@LNMP ~]# chown -R mysql.mysql /usr/local/mysql #授权mysql用户管理MySQL的安装目录
    3. [root@LNMP ~]# yum -y install libaio #光盘源安装依赖包,否则下一步的编译会报错
    4. [root@LNMP ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
    5. #初始化MySQL数据库文件,会有很多信息提示,如果没有ERROR级别的错误,会有两个OK的字样,表示初始化成功,否则就要解决初始化的问题

    微信图片_20181108172756.png-25.7kB

    以上的命令主要作用是生成如下数据库文件 
    image_1crpaj6rm123o13d71bac1b0e1sdg3l.png-58.2kB 
    这些MySQL数据文件是MySQL正确运行所必需的基本数据库文件,其功能是对MySQL权限,状态等进行管理。

    说明: 
    初始化故障排错集锦 
    错误示例1: 
    usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared ob 
    错误原因是没有libaio函数库的支持。需要 
    yum -y install libaio 
    错误示例2: 
    WARNING:The host'mysql'could not be looked up with resolveip 
    需要修改主机名解析,使其和uname -n一样,修改后的结果如下: 
    grep uname -n /etc/hosts 
    错误示例3: 
    ERROR:1004Can't create file '/tmp/#sql300e_1_o.frm'(errno:13) 
    原因是/tmp目录的权限有问题。 
    解决办法为处理/tmp目录,如下: 
    ls -ld /tmp 
    drwxrwxrwt. 3 root root 4096 Jul 14 07:56 /tmp 
    chmod -R 1777 /tmp/ 
    此故障必须解除,否则,后面会出现登陆不了数据库等问题。

    6、配置并启动MySQL数据库 
    (1)设置MySQL启动脚本,命令如下:

     
    1. [root@LNMP mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷贝MySQL启动脚本到MySQL的命令路径
    2. [root@LNMP mysql]# chmod +x /etc/init.d/mysqld #使脚本可执行

    image_1crpb1i2n161g1hrulg11dtt1vqc42.png-8.4kB

    (2)MySQL二进制默认安装路径是/usr/local/mysql,启动脚本里是/usr/local/mysql。如果安装路径不同,那么脚本里路径等都需要替换

    (3)启动MySQL数据库

     
    1. [root@LNMP mysql]# /etc/init.d/mysqld start
    2. Starting MySQL... SUCCESS!

    image_1crpb3sdrjqq1too64i1flmr44f.png-8.4kB

    以上是启动数据库的规范方法之一,但还可以用如下方式启动, /usr/local/mysql/bin/mysqld_safe 
    --user=mysql & 这个命令结尾的“&”符号,作用是在后台执行MySQL服务,命令执行完还需要按下回车才能进入命令行状态。

    (4)检查MySQL数据库是否启动

     
    1. [root@LNMP mysql]# netstat -antup | grep mysql

    image_1crpb8navbj91lpj1f8s99r16ue4s.png-10.2kB

    如果发现3306端口没起来,可以tail -100 
    /usr/local/mysql/data/主机名.err查看日志信息,看是否有报错信息,然后根据相关错误提示进行调试。

    (5)查看MySQL数据库启动结果日志

     
    1. [root@LNMP ~]# tail -10 /usr/local/mysql/data/LNMP.err

    (6)设置MySQL开机自启动

     
    1. [root@LNMP ~]# chkconfig --add mysqld
    2. [root@LNMP ~]# chkconfig mysqld on
    3. [root@LNMP ~]# chkconfig --list mysqld
    4. mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    image_1crpbnlcb1rhlarg12t8h4hglq59.png-12.5kB 
    注:也可以将启动命令/etc/init.d/mysqld start 放到/etc/rc.local里面

    (7)配置mysql命令的全局使用路径

     
    1. [root@LNMP ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
    2. [root@LNMP ~]# which mysql
    3. /usr/local/bin/mysql

    image_1crpbq3h7f9a1qpu6bn1eupmld5m.png-9.6kB

    (8)登陆MySQL测试 
    image_1crpbrvviq8u1n69dtndr06kk63.png-33.2kB

    image_1crpbv2fd2ji1lna17eop2u1vug6g.png-33kB

    注:MySQL安装完成以后,默认情况下,root账户是无密码的,这个必须要设置。

    7、MySQL安全配置、为MySQL的root用户设置密码

     
    1. [root@LNMP ~]# mysqladmin -u root password '123123' #设置root用户密码
    2. [root@LNMP ~]# mysql -uroot -p123123 #用root用户登录数据库

    image_1crpc636g1e8cbl518hts8a1gar6t.png-56.7kB

     

    三、LNMP之PHP(FastCGI方式)

     

    一、FastCGI介绍

    1、 什么是CGI 
    CGI的全称为“通用网关接口”(Common Gateway Interface),为HTTP服务器与其他机器上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上。 
    传统CGI接口方式的主要缺点是性能较差,因为每次HTTP服务器遇到动态程序时都需要重新启动解析器来执行解析,之后结果才会被返回给HTTP服务器。这在处理高并发访问时几乎是不可用的,因此就诞生了FastCGI。另外,传统的CGI接口方式安全性也很差,故而现在已经很少被使用了。

    2、 什么是FastCGI 
    FastCGI是一个可伸缩的,高速地在HTTP服务器和动态脚本语言间通信的接口(在Linux下,FastCGI接口即为socket,这个socket可以是文件socket,也可以是IP socket),主要优点是把动态语言和HTTP服务器分离出来。多数流行的HTTP服务器都支持FastCGI,包括Apache,Nginx和Lighttpd等。 
    同时,FastCGI也被许多脚本语言所支持,例如当前比较流程的脚本语言PHP。FastCGI接口采用的是C/S架构,它可以将HTTP服务器和脚本解析服务器分开,同时还能在脚本解析服务器上启动一个或多个脚本来解析守护进程。当HTTP服务器遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求,或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

    FastCGI的重要特点如下:

    HTTP服务器和动态脚本语言间通信的接口或工具。 
    可把动态语言解析和HTTP服务器分离开。 
    Nginx,Apache,Lighttpd,以及多数动态语言都支持FastCGI。 
    FastCGI接口方式采用C/S结构,分为客户端(HTTP服务器)和服务器端(动态语言解析服务器) 
    PHP动态语言服务器端可以启动多个FastCGI的守护进程(例如php-fpm(fcgi process mangement)) 
    HTTP服务器通过(例如Nginx fastcgi_pass)FastCGI客户端和动态语言FastCGI服务器端通信(例如php-fpm)

    3、 Nginx FastCGI的运行原理 
    Nginx不支持对外部动态程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,为了调用CGI程序,还需要一个FastCGI的wrapper(可以理解为用于启动另一个程序的程序),这个wrappper绑定在某个固定的socket上,如端口或文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或外部程序处理脚本来读取返回的数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。

    image_1crpchoqgl88nfnbd1v3h1fle7a.png-94.3kB

    FastCGI的主要优点是把动态语言和HTTP服务器分离开来,使Nginx专门处理静态请求及向后转发的动态请求,而PHP/PHP-FPM服务器则专门解析PHP动态请求。

     

    二、LNMP之PHP(FastCGI方式)服务的安装和准备

    1 检查Nginx及MySQL的安装情况 
    (1)检查确认Nginx及MySQL的安装路径

     
    1. [root@LNMP ~]# ls -ld /usr/local/nginx
    2. drwxr-xr-x. 11 root root 4096 Nov 9 00:42 /usr/local/nginx
    3. [root@LNMP ~]# ls -ld /usr/local/mysql
    4. lrwxrwxrwx. 1 mysql mysql 12 Nov 9 01:00 /usr/local/mysql -> mysql-5.5.32

    (2)检查端口及启动情况

     
    1. [root@LNMP ~]# netstat -antup | grep -E "80|3306"

    image_1crpd144f1j4vu4gphb1id41no07n.png-16.4kB

    (3)测试访问Nginx及MySQL是否OK

     
    1. [root@LNMP ~]# wget 127.0.0.1
    2. [root@LNMP ~]# mysql -uroot -p123123

    image_1crpd662r1tpu1cd41dna2up17sh8k.png-69.5kB

    如果访问结果和上图一致,就表明Nginx及MySQL的安装一切正常

    2、检查安装PHP所需的lib库 
    PHP程序在开发及运行时会调用一些诸如zlib,gd等函数库,因此需要确认lib库是否已经安装,执行过程如下:

     
    1. [root@LNMP ~]# rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
    2. zlib-devel-1.2.3-29.el6.x86_64
    3. [root@LNMP ~]# rpm -qa freetype-devel libpng-devel gd libcurl-devel libxslt-devel

    注: 
    每个lib一般都会存在对应的以“*-devel”命名的包,安装lib对应的-devel包后,对应的lib包就会自动安装好,例如安装gd-devel时就会安装gd。 
    这些lib库不是必须安装的,但是目前的企业环境下一般都需要安装。否则,PHP程序运行时会出现问题,例如验证码无法显示等。

    执行下面命令安装相关的lib软件包

     
    1. [root@LNMP ~]# yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
    2. [root@LNMP ~]# yum -y install freetype-devel libpng-devel gd libcurl-devel libxslt-devel

    安装后的结果如下: 
    image_1crpdn3tk10eq11oq14qi96lege91.png-39.3kB

    从上图结果看出,仅有libiconv-devel这个包没有安装,因为默认的yum源没有此包,后面会编译安装。

    3、安装yum无法安装的libiconv库

    微信图片_20181108183056.png-67.4kB

     
    1. ./configure --prefix=/usr/local/libiconv && make && make install #开始编译安装

    4、安装libmcrypt库mhash加密扩展库mcrvpt加密扩展库

     
    1. [root@LNMP ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #推荐使用简单的在线yum的方式安装
    2. [root@LNMP ~]# cd /etc/yum.repos.d/
    3. [root@LNMP yum.repos.d]# ls
    4. epel.repo moban.repo
    5. [root@LNMP yum.repos.d]# yum -y install libmcrypt-devel #安装libmcrypt库
    6. [root@LNMP yum.repos.d]# yum -y install mhash #安装mhash加密扩展库
    7. [root@LNMP yum.repos.d]# yum -y install mcrypt #mcrvpt加密扩展库

    5、开始安装PHP(FastCGI方式)服务 
    (1、)获取PHP软件包

     
    1. [root@LNMP ~]# wget http://cn2.php.net/get/php-5.3.28.tar.gz/from/this/mirror

    微信图片_20181108184507.png-9.4kB

    6、解压配置PHP

     
    1. [root@LNMP ~]# tar xf php-5.3.28.tar.gz -C /usr/src/
    2. [root@LNMP ~]# cd /usr/src/php-5.3.28/
    3. [root@LNMP php-5.3.28]# ./configure
    4. > --prefix=/usr/local/php5.3.28
    5. > --with-mysql=/usr/local/mysql
    6. > --with-iconv-dir=/usr/local/libiconv
    7. > --with-freetype-dir
    8. > --with-jpeg-dir
    9. > --with-png-dir
    10. > --with-zlib
    11. > --with-libxml-dir=/usr
    12. > --enable-xml
    13. > --disable-rpath
    14. > --enable-safe-mode
    15. > --enable-bcmath
    16. > --enable-shmop
    17. > --enable-sysvsem
    18. > --enable-inline-optimization
    19. > --with-curl
    20. > --with-curlwrappers
    21. > --enable-mbregex
    22. > --enable-fpm
    23. > --enable-mbstring
    24. > --with-mcrypt
    25. > --with-gd
    26. > --enable-gd-native-ttf
    27. > --with-openssl
    28. > --with-mhash
    29. > --enable-pcntl
    30. > --enable-sockets
    31. > --with-xmlrpc
    32. > --enable-zip
    33. > --enable-soap
    34. > --enable-short-tags
    35. > --enable-zend-multibyte
    36. > --enable-static
    37. > --with-xsl
    38. > --with-fpm-user=www
    39. > --with-fpm-group=www
    40. > --enable-ftp

    微信图片_20181108185017.png-16.3kB

    对于上面命令,部分参数说明如下:

    --prefix=/usr/local/php5.2.28 表示指定PHP的安装路径为/usr/local/php5.3.28 
    --with-mysql=/usr/local/mysql 表示需要指定MySQL的安装路径,安装PHP需要的MySQL相关内容。当然,如果没有MySQL软件包,也可以不单独安装,这样的情况可使用--with-mysql=mysqlnd替代--with-mysql=/usr/local/mysql,因为PHP软件里已经自带了连接MySQL的客户端工具。 
    --with-fpm-user=www nginx表示指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一 
    --with-fpm-group=www 
    表示指定PHP-FPM进程管理的组为www,此处最好与Nginx服务用户组统一。 
    --enable-fpm 
    表示激活PHP-FPM方式服务,即以FastCGIF方式运行PHP服务。

    7、编译PHP 
    正确执行前文配置PHP软件的./configure系列命令后,就可以编译PHP软件了,具体操作过程如下:

     
    1. cd /usr/src/php-5.3.28/
    2. [root@LNMP php-5.3.28]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
    3. [root@LNMP php-5.3.28]# touch ext/phar/phar.phar
    4. [root@LNMP php-5.3.28]# make

    image_1crpfvdd6shl1rqt1bef12mc16roel.png-8.9kB

    8、安装PHP生成文件到系统

     
    1. [root@LNMP php-5.3.28]# make install

    9、 配置PHP引擎配置文件php.ini 
    (1)设置软链接以方便访问

     
    1. [root@LNMP ~]# ln -s /usr/local/php5.3.28/ /usr/local/php
    2. [root@LNMP ~]# ls -l /usr/local/php
    3. lrwxrwxrwx. 1 root root 21 Nov 9 05:30 /usr/local/php -> /usr/local/php5.3.28/

    (2)查看PHP配置默认模版文件

     
    1. [root@LNMP ~]# cd /usr/src/php-5.3.28/
    2. [root@LNMP php-5.3.28]# ls php.ini*
    3. php.ini-development php.ini-production

    请注意以上两文件的异同之处,可通过diff或vimdiff命令比较,如下图所示

    image_1crpohi7acg6b5d1l46i2b4p019.png-374.8kB
    从对比结果可以看出,开发环境更多的是开启日志,调试信息,而生产环境都是关闭状态

    (3)拷贝PHP配置文件到PHP默认目录,并更改文件名称为php.ini

     
    1. [root@LNMP php-5.3.28]# cp php.ini-production /usr/local/php/lib/php.ini
    2. [root@LNMP php-5.3.28]# ls -l /usr/local/php/lib/php.ini
    3. -rw-r--r--. 1 root root 69627 Nov 9 05:36 /usr/local/php/lib/php.ini

    10、配置PHP(FastCGI方式)的配置文件php-fpm.conf

     
    1. [root@LNMP etc]# ls
    2. pear.conf php-fpm.conf.default
    3. [root@LNMP etc]# cp php-fpm.conf.default php-fpm.conf
    4. [root@LNMP etc]# ls
    5. pear.conf php-fpm.conf php-fpm.conf.default

    image_1crpooriuflnorp1p9u1lje1f621m.png-17.6kB

    关于php-fpm.conf,暂时可用默认的配置,先把服务搭好,以后再进行优化。

    11、启动PHP服务(FastCGI方式) 
    (1)启动PHP服务php-fpm

     
    1. [root@LNMP etc]# /usr/local/php/sbin/php-fpm

    (2)检查PHP服务php-fpm的进程及启动端口的情况

     
    1. [root@LNMP etc]# ps -ef | grep php-fpm
    2. [root@LNMP etc]# lsof -i:9000 #默认9000端口提供服务

    image_1crpp19iu1tbv1gin1laqvh31vtr23.png-46.9kB

     

    四、配置Nginx支持PHP程序请求访问

    1 修改Nginx配置文件 
    (1)查看nginx当前的配置

     
    1. [root@LNMP conf]# vim nginx.conf
    2. worker_processes 1;
    3. events {
    4. worker_connections 1024;
    5. }
    6. http {
    7. include mime.types;
    8. default_type application/octet-stream;
    9. sendfile on;
    10. keepalive_timeout 65;
    11. include extra/www.conf;
    12. include extra/mail.conf;
    13. include extra/blog.conf;
    14. }

    (2)PHP解析,这里以blog为例讲解,内容如下:

     
    1. [root@LNMP extra]# cat blog.conf
    2. server {
    3. listen 80;
    4. server_name blog.shidu.com;
    5. location / {
    6. root html/blog;
    7. index index.html index.htm;
    8. }
    9. }

    最终blog虚拟机的完整配置如下:

     
    1. [root@LNMP extra]# cat blog.conf
    2. server {
    3. listen 80;
    4. server_name blog.shidu.com;
    5. location / {
    6. root html/blog;
    7. index index.html index.htm;
    8. }
    9. location ~ .*.(php|php5)?$ {
    10. root html/blog;
    11. fastcgi_pass 127.0.0.1:9000;
    12. fastcgi_index index.php;
    13. include fastcgi.conf;
    14. }
    15. }

    2、检查并启动Nginx

     
    1. [root@LNMP extra]# nginx -t #检查配置文件
    2. [root@LNMP extra]# nginx -s reload #重启nginx服务

    image_1crpqehu0bp1n9d17ha1taihpd30.png-19.8kB 
    此步在生产环境很关键,如不提前检查语法,重启后发现语法错误会导致Nginx无法提供服务,给用户访问体验带来不好的影响。

    3、测试LNMP环境生效情况 
    (1)进入指定的默认站点目录后,编辑index.php,添加如下内容:

     
    1. [root@LNMP blog]# pwd
    2. /usr/local/nginx/html/blog
    3. [root@LNMP blog]# echo "<?php phpinfo(); ?>" >test_info.php
    4. [root@LNMP blog]# cat test_info.php
    5. <?php phpinfo(); ?>

    以上代码为显示PHP配置信息的简单PHP文件代码

    (2)调整Windows下的host解析

    192.168.200.128 www.shidu.com blog.shidu.com mail.shidu.com
    

    image_1crpqtv6k8sc9v1j6q18g319t53d.png-43.1kB

    (3) 打开浏览器输入 http://blog.shidu.com/test_info.php 即可进入下图界面 
    出现此界面,表示Nginx配合PHP解析已经正常。 
    image_1crpr672i6br1mb210ccbfm9qn3q.png-130.3kB

    4、针对Nginx请求访问PHP,然后对PHP连接MySQL的情况进行测试 
    编辑test_mysql.php,加入如下内容:

     
    1. [root@LNMP blog]# cat test_mysql.php
    2. <?php
    3. $link_id=mysql_connect('localhost','root','123123');
    4. if($link_id){
    5. echo "mysql successful by shidu !";
    6. }else{
    7. echo mysql_error();
    8. }
    9. ?>

    image_1crprf2ak6ib23l19s2121f132747.png-16.9kB

     

    五、部署一个blog程序服务

     

    一、开源博客程序WordPress介绍

    WordPress 是一套利用PHP语言和MySQL数据库开发的开源免费的blog(博客,网站)程序,用户可以在支持PHP环境和MySQL数据库的服务器上建立blog站点。它的功能非常强大,拥有众多插件,易于扩充功能。其安装和使用也都非常方便。目前WordPress已经成为搭建blog平台的主流,很多发布平台都是根据WordPress二次开发的,如果你也想像他们一样拥有自己的blog,可购买网上的域名及空间,然后搭建LNMP环境,部署WordPress程序后就可以轻松成就自己的梦想了。

     

    二、 WordPress 博客程序的搭建准备

    1、MySQL数据库配置准备 
    (1)登陆MySQL数据库,创建一个专用的数据库WordPress,用于存放blog数据

     
    1. [root@LNMP blog]# mysql -uroot -p123123
    2. mysql> create database wordpress; #创建一个数据库,名字为wordpress
    3. Query OK, 1 row affected (0.00 sec)
    4. mysql> show databases like 'wordpress'; #查看创建的库
    5. +----------------------+
    6. | Database (wordpress) |
    7. +----------------------+
    8. | wordpress |
    9. +----------------------+
    10. 1 row in set (0.00 sec)

    (2)创建一个专用的WordPress blog管理用户

     
    1. mysql> grant all on wordpress.* to wordpress@'localhost' identified by '123123';
    2. Query OK, 0 rows affected (0.00 sec) #localhost为客户端地址
    3. mysql> flush privileges; #刷新权限,使得创建用户生效
    4. Query OK, 0 rows affected (0.00 sec)
    5. mysql> show grants for wordpress@'localhost'; #查看用户对应权限
    6. +------------------------------------------------------------------------------------------------------------------+
    7. | Grants for wordpress@localhost |
    8. +------------------------------------------------------------------------------------------------------------------+
    9. | GRANT USAGE ON *.* TO 'wordpress'@'localhost' IDENTIFIED BY PASSWORD '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' |
    10. | GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wordpress'@'localhost' |
    11. +------------------------------------------------------------------------------------------------------------------+
    12. 2 rows in set (0.00 sec)

    微信图片_20181108223736.png-13.1kB

    2、Nginx及PHP环境配置准备 
    (1)选择之前配置好的支持LNMP的blog域名对应的虚拟主机

     
    1. [root@LNMP extra]# pwd
    2. /usr/local/nginx/conf/extra
    3. [root@LNMP extra]# vim blog.conf
    4. server {
    5. listen 80;
    6. server_name blog.shidu.com;
    7. location / {
    8. root html/blog;
    9. index index.php index.html index.htm;
    10. }
    11. location ~ .*.(php|php5)?$ {
    12. root html/blog;
    13. fastcgi_pass 127.0.0.1:9000;
    14. fastcgi_index index.php;
    15. include fastcgi.conf;
    16. }
    17. }

    image_1crpsap4kdd6v8i1e3u1n4bfn966.png-28.2kB

    (2)获取WordPress博客程序,解压到blog域名对应虚拟主机的站点目录下 
    程序到以下链接提取 
    链接: https://pan.baidu.com/s/1O4KpF5KifGhT-mDYSDTVnQ 提取码: nu85

     
    1. [root@LNMP ~]# tar xf wordpress-4.9.8.tar.gz -C /usr/local/nginx/html/blog/
    2. [root@LNMP ~]# ls /usr/local/nginx/html/blog/
    3. index.html test_info.php test_mysql.php wordpress

    image_1crpt8nk0sjpof2g88f2u1di76j.png-41.5kB

     
    1. [root@LNMP blog]# mv wordpress/* . #把目录里的内容移动到blog根目录下

    image_1crptf4ng183q17ct6ga5t9pu870.png-91.9kB

     
    1. [root@LNMP blog]# chown -R www.www ../blog/ #授权用户访问

    image_1crptkj9r157cnapc41vfi1b2m7d.png-83.1kB

    3、开始安装blog博客程序 
    (1)打开浏览器输入blog.shidu.com(提前做好hosts或DNS解析),回车后,出现下图: 
    image_1crptqkf9pmb1uc81ip51b4b190b7q.png-75kB

    image_1crptsio81gkt1jhi1gbj44ifvl87.png-85.1kB

    微信图片_20181108231523.png-131.1kB

    image_1crpuamcbr67do71b7f1dukqooat.png-31.2kB

    image_1crpujvvbia7g0kmpe6ej1otvba.png-96.5kB

    image_1crpumd5urp011bi1pvr1ent37mbn.png-39kB

    image_1crpunp8d1i4c1r5o11591fhb1or6c4.png-34kB

    image_1crpusl7jtf31lit1s6h89l187ch.png-178.5kB

    4、实现WordPress博客程序URL静态化

    实现此功能时,首先要在WordPress后台依次单击设置--->固定链接--->自定义结构,然后输入下面的代码,并保存更改。

     
    1. /archives/%post_id%.html
    2. #说明:%post_id%是数据库对应博文内容的唯一ID,例如423

    image_1crpv6l8m1nonm8g1ohv1jvv17htcu.png-67.4kB

    image_1crpva8o71ic7c18n0f5a15l4db.png-104.5kB

    接着,在Nginx配置文件的server容器中添加下面的代码:

     
    1. [root@LNMP extra]# pwd
    2. /usr/local/nginx/conf/extra
    3. [root@LNMP extra]# vim blog.conf
    4. server {
    5. listen 80;
    6. server_name blog.shidu.com;
    7. root html/blog;
    8. location / {
    9. index index.php index.html index.htm;
    10. if (-f $request_filename/index.html){
    11. rewrite (.*) $1/index.html break;
    12. }
    13. if (-f $request_filename/index.php){
    14. rewrite (.*) $1/index.php;
    15. }
    16. if (!-f $request_filename){
    17. rewrite (.*) /index.php;
    18. }
    19. }
    20. location ~ .*.(php|php5)?$ {
    21. root html/blog;
    22. fastcgi_pass 127.0.0.1:9000;
    23. fastcgi_index index.php;
    24. include fastcgi.conf;
    25. }
    26. }

    最后检查语法并重新加载Nginx服务,操作如下:

     
    1. [root@LNMP extra]# /usr/local/nginx/sbin/nginx -t
    2. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    3. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu
    4. [root@LNMP extra]# nginx -s reload

    image_1crq06kdm14nc7h83cs12aj1veldo.png-20.1kB

    现在可以通过浏览器访问了,如下图所示: 
    image_1crq0gam11fs713dh1gpckig1ek0ev.png-389.5kB

     

    以上整体搭建过程完毕

  • 相关阅读:
    Codechef Observing the Tree
    bzoj 1367: [Baltic2004]sequence
    bzoj 2375: 疯狂的涂色
    bzoj 1455: 罗马游戏
    codevs 1029 遍历问题
    HNOI2004 宠物收养所 (Treap)
    [ZJOI2007] 报表统计
    bzoj 3261: 最大异或和 (可持久化trie树)
    codevs 1001 舒适的路线
    Codechef Dynamic Trees and Queries
  • 原文地址:https://www.cnblogs.com/mendermi/p/9932823.html
Copyright © 2011-2022 走看看