部署LNMP利用LNMP环境搭建 Wordpress网站;

您所在的位置:网站首页 lnmp架构搭建 部署LNMP利用LNMP环境搭建 Wordpress网站;

部署LNMP利用LNMP环境搭建 Wordpress网站;

2023-08-01 17:05| 来源: 网络整理| 查看: 265

Nginx 详细配置请见  https://blog.csdn.net/sinat_41075146/article/details/82258265

LNMP FastCGI知识说明(绘图说明) 工作原理讲解说明:   ①. 用户请求的静态文件,由nginx服务自行处理,根据静态的location配置进行处理 用户请求的动态文件,由php服务进行处理,根据动态的         location配置进行处理   ②. nginx服务接收到动态请求,会将请求抛送给fastcgi,类似于nginx服务接收动态请求的秘书,秘书会将动态请求送给PHP程序   ③. PHP如果可以处理,会将处理结果直接通过fastcgi返回给nginx程序;如果不可以处理,还会请求后端数据库,最终再把处理结果返回给nginx

 LNMP架构以及部署: 1.1 、架构软件安装部署 L: Linux 01. 系统安装好 02. 基础优化(关闭防火墙 关闭selinux  /tmp/权限1777)

N:nginx 软件安装部署

M:mysql 安装部署

P:PHP(处理动态请求) 安装部署

二  、nginx软件与PHP软件建立连接关系      在nginx配置文件添加配置信息

 

三  、php软件与mysql软件建立连接关系(nginx软件和mysql软件建立连接关系)         有php程序代码来完成数据库连接建立

注意: 安装顺序 ,  PHP 一定是要最后安装的 ,因为 PHP 依赖 MySQL  

开始配置 LNMP 环境   ;

一  、LNMP MySQL数据库安装(二进制包的安装)     mysql软件下载地址信息: www.mysql.com   mirrors.sohu.com  1) 下载并解压mysql二进制软件包       [root@m01 tools]# tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz                      [root@m01 tools]# du -sh mysql-5.6.34-linux-glibc2.5-x86_64                     ---->>  查看软件包大小        1.1G    mysql-5.6.34-linux-glibc2.5-x86_64 2) 添加mysql程序运行时的管理用户        [root@m01 tools]# useradd -s /sbin/nologin -M mysql 3) 将mysql解压后的程序包搬家到程序目录下,并进行重命名        [root@m01 tools]# mkdir -p /application/        [root@m01 tools]# mv /server/tools/mysql-5.6.34-*-x86_64 /application/mysql-5.6.34         ---->>  搬家到我们规划的目录下

4) 为mysql服务程序创建软链接      [root@m01 tools]# ln -s /application/mysql-5.6.34/ /application/mysql                  ---->>  创建一个软连接,方便后续使用 

5) 让mysql用户管理 /application/mysql/      [root@m01 tools]# chown -R mysql.mysql /application/mysql/                         ---->>   授权 

[root@m01 tools]# ll /application/mysql/ 总用量 68 drwxr-xr-x  2 mysql mysql  4096 8月  25 19:55 bin -rw-r--r--  1 mysql mysql 17987 9月  30 2016 COPYING drwxr-xr-x  3 mysql mysql  4096 8月  25 19:56 data drwxr-xr-x  2 mysql mysql  4096 8月  25 19:56 docs drwxr-xr-x  3 mysql mysql  4096 8月  25 19:56 include drwxr-xr-x  3 mysql mysql  4096 8月  25 19:55 lib drwxr-xr-x  4 mysql mysql  4096 8月  25 19:55 man drwxr-xr-x 10 mysql mysql  4096 8月  25 19:56 mysql-test -rw-r--r--  1 mysql mysql  2496 9月  30 2016 README drwxr-xr-x  2 mysql mysql  4096 8月  25 19:56 scripts drwxr-xr-x 28 mysql mysql  4096 8月  25 19:55 share drwxr-xr-x  4 mysql mysql  4096 8月  25 19:56 sql-bench drwxr-xr-x  2 mysql mysql  4096 8月  25 19:56 support-files [root@m01 tools]#                    

 6)  初始化数据库         #1. 确认软件安装在哪里         #2. 确认数据存放在哪里         #3. 确认MySQL使用的用户谁?

[root@m01 tools]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

问题1 ;

[root@m01 ~]# vim /etc/my.cnf       ---->> 编辑此配置文件,把 skip-locking   先注释掉即可正常初始化了 ;

 

2018-08-25 21:18:04 2043 [Note] InnoDB: 5.6.34 started; log sequence number 1600737 2018-08-25 21:18:05 2043 [Note] Binlog end 2018-08-25 21:18:05 2043 [Note] InnoDB: FTS optimize thread exiting. 2018-08-25 21:18:05 2043 [Note] InnoDB: Starting shutdown... 2018-08-25 21:18:07 2043 [Note] InnoDB: Shutdown completed; log sequence number 1626133 OK

Filling help tables...2018-08-25 21:18:07 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2018-08-25 21:18:07 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 2018-08-25 21:18:07 0 [Note] /application/mysql/bin/mysqld (mysqld 5.6.34-log) starting as process 2074 ... 2018-08-25 21:18:07 2074 [Note] InnoDB: Using atomics to ref count buffer pool pages 2018-08-25 21:18:07 2074 [Note] InnoDB: The InnoDB memory heap is disabled 2018-08-25 21:18:07 2074 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2018-08-25 21:18:07 2074 [Note] InnoDB: Memory barrier is not used 2018-08-25 21:18:07 2074 [Note] InnoDB: Compressed tables use zlib 1.2.3 2018-08-25 21:18:07 2074 [Note] InnoDB: Using Linux native AIO 2018-08-25 21:18:07 2074 [Note] InnoDB: Using CPU crc32 instructions 2018-08-25 21:18:07 2074 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2018-08-25 21:18:07 2074 [Note] InnoDB: Completed initialization of buffer pool 2018-08-25 21:18:07 2074 [Note] InnoDB: Highest supported file format is Barracuda. 2018-08-25 21:18:07 2074 [Note] InnoDB: 128 rollback segment(s) are active. 2018-08-25 21:18:07 2074 [Note] InnoDB: Waiting for purge to start 2018-08-25 21:18:07 2074 [Note] InnoDB: 5.6.34 started; log sequence number 1626133 2018-08-25 21:18:08 2074 [Note] Binlog end 2018-08-25 21:18:08 2074 [Note] InnoDB: FTS optimize thread exiting. 2018-08-25 21:18:08 2074 [Note] InnoDB: Starting shutdown... 2018-08-25 21:18:09 2074 [Note] InnoDB: Shutdown completed; log sequence number 1626143 OK

To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL

两个 OK  表示数据库已经初始化完成了 

7) 复制启动脚本 授权    [root@m01 ~]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld     [root@m01 ~]# chmod +x /etc/init.d/mysqld  8) 修改启动脚本 和 mysql命令中的路径       [root@m01 ~]# sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld 9)  复制默认的配置文件      [root@m01 ~]#   \cp /application/mysql/support-files/my-default.cnf /etc/my.cnf       [root@m01 ~]# /etc/init.d/mysqld start       Starting MySQL.                                            [确定]        至此,mysql数据库安装与启动完成;可以检测进程和服务端口,确认mysql服务是否启动正确

 

[root@m01 ~]# ps -ef |grep mysql root       1744      1  0 21:13 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql mysql      1873   1744  0 21:13 ?        00:00:02 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/m01.err --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306 root       2207      1  0 21:29 pts/0    00:00:00 /bin/sh /application/mysql/bin/mysqld_safe --datadir=/application/mysql/data --pid-file=/application/mysql/data/m01.pid mysql      2485   2207  0 21:29 pts/0    00:00:00 /application/mysql/bin/mysqld --basedir=/application/mysql --datadir=/application/mysql/data --plugin-dir=/application/mysql/lib/plugin --user=mysql --log-error=/application/mysql/data/m01.err --pid-file=/application/mysql/data/m01.pid --socket=/var/lib/mysql/mysql.sock --port=3306 root       2548   2022  0 21:33 pts/0    00:00:00 grep mysql [root@m01 ~]#   

二  、 管理mysql数据库        ;     1) 进入与退出mysql数据库方法:         /application/mysql/bin/mysql         =============================================         登录数据库命令简化方法         echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile         source /etc/profile         which mysql         =============================================          退出数据库时,尽量不要用ctrl+c进行退出mysql 用ctrl+d进行退出

    2) 设置mysql服务开机自启动             2.1 、加入开机自启动         chkconfig --add mysqld          chkconfig mysqld on

3) 设置mysql数据库登录用户名与密码     3.1 、给MySQL root用户设置密码         /application/mysql/bin/mysqladmin -u root password '123'             --->>  设置密码         [root@m01 ~]# mysql -uroot -p123                 --->> 重新登陆一下 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 17 Server version: 5.6.34-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, 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>               

数据库中的基础操作  ; 

   #############################################################################################         show databases;                         --->>  查询默认的数据库信息         create database oldboy;             --->>  创建新的数据库         drop database oldboy;                 --->> 删除存在的数据库         use mysql;                                   --->> 表示选择使用一个数据库,相当于cd进入一个数据库         show tables;                              --->> 查看数据库中表信息         select database();                       --->>  表示查看当前所在数据库,类似于pwd命令的功能         select user();       查看当前登录数据库的用户,类似于whoami命令并且mysql还可以限制指定用户可以从哪里进行连接登录数据库         select user,host from user;          --->> 查看user表中指定信息,并且横行显示         select user,host from mysql.user;      --->>  查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库         grant all on *.* to user@'host' identified by 'oldboy123';           --->>   创建用户          grant all on *.* to Old_Boy@'localhost' identified by 'oldboy123';   --->>  创建用户(大写用户)         drop user 'user'@'host';         flush privileges;                     --->>    刷新权限

 

   添加删除系列         #创建数据库         create database wordpress;         #删除数据库         drop database wordpress;         ###############################################################################################

 

三  、 LNMP PHP软件安装  安装PHP步骤     1) 解决PHP软件的依赖关系   [root@m01 ~]# yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y  [root@m01 ~]#  yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y  [root@m01 ~]# rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-    devel libcurl-devel libxslt-devel

 libiconv软件安装               ---->> 字符集转换库(默认可以不进行安装了) [root@m01 tools]#  cd /home/oldboy/tools [root@m01 tools]#   tar zxf libiconv-1.14.tar.gz [root@m01 tools]# cd libiconv-1.14 [root@m01 libiconv-1.14]# ./configure --prefix=/usr/local/libiconv

[root@m01 libiconv-1.14]# make

[root@m01 libiconv-1.14]#  make install

 

# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo     --->> 没有repo 直接执行一下,有的忽略 

[root@m01 tools]# yum -y install libmcrypt-devel mhash mcrypt [root@m01 tools]# rpm -qa libmcrypt-devel mhash mcrypt mhash-0.9.9.9-3.el6.x86_64 mcrypt-2.6.8-10.el6.x86_64 libmcrypt-devel-2.5.8-9.el6.x86_64 [root@m01 tools]# 

 

 2) 解压编译安装PHP软件       [root@m01 tools]# tar xf php-5.5.32.tar.gz       [root@m01 tools]# cd php-5.5.32      ./configure \ --prefix=/application/php-5.5.32 \ --with-mysql=/application/mysql/ \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir=/usr/local/libiconv \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --disable-rpath \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-fpm \ --enable-mbstring \ --with-mcrypt \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --enable-short-tags \ --enable-static \ --with-xsl \ --with-fpm-user=www \ --with-fpm-group=www \ --enable-ftp \ --enable-opcache=no  

        出现这个图  表示 PHP 配置成功  

       =================================================         PHP扩展参数:(配置没有问题可以省略以下配置参数,以下参数和PHP优化有关)         --with-curlwrappers \         --enable-zip \         --enable-zend-multibyte \         =================================================         

   [root@m01 php-5.5.32]# ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/    root@m01 php-5.5.32]# touch ext/phar/phar.phar    [root@m01 php-5.5.32]# make && make install      

3) PHP软件程序创建软链接      [root@m01 php-5.5.32]# ln -s /application/php-5.5.32/ /application/php

4) 配置php解析文件/配置php-fpm配置文件      [root@m01 php-5.5.32]# cd /home/oldboy/tools/php-5.5.32     [root@m01 php-5.5.32]# cp php.ini-production /application/php/lib/php.ini         (php.ini-developments是开发人员调试用配置文件,    php.ini-production是生产常见所有配置文件)         # 编译安装PHP时,若配置未正确指定PHP进程用户信息,可以修改PHP文件进行调整         sed -i 's#user = www#user = nginx#g;s#group = www#group = nginx#g' /application/php-5.5.32/etc/php-fpm.conf  

 5) 启动php-fpm程序 [root@m01 etc]# /application/php/sbin/php-fpm [root@m01 etc]# lsof -i :9000 COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME php-fpm 125679 root    7u  IPv4 117793      0t0  TCP m01:cslistener (LISTEN) php-fpm 125680  www    0u  IPv4 117793      0t0  TCP m01:cslistener (LISTEN) php-fpm 125681  www    0u  IPv4 117793      0t0  TCP m01:cslistener (LISTEN) [root@m01 etc]# ps -ef|grep php-fpm root     125679      1  0 23:53 ?        00:00:00 php-fpm: master process (/application/php-5.5.32/etc/php-fpm.conf) www      125680 125679  0 23:53 ?        00:00:00 php-fpm: pool www             www      125681 125679  0 23:53 ?        00:00:00 php-fpm: pool www             root     125684   2022  0 23:53 pts/0    00:00:00 grep php-fpm  

 

四  、wordpress博客站点部署配置     1) 修改nginx配置文件,使nginx程序与php程序建立联系         vim extra/blog.conf         server {                 listen       80;                 server_name  blog.etiantian.org;                 location / {                             root   html/blog;                             index  index.html index.htm;          ----->>  需要注意编辑修改默认首页文件  index  index.php index.html index.htm;                 }                 location ~* .*\.(php|php5)?$ {              ----->>  说明:利用nginx的location区块实现动态请求与静态请求的分别处理                              root html/blog;                             fastcgi_pass  127.0.0.1:9000;                             fastcgi_index index.php;                             include fastcgi.conf;                 }         }               

 

2) 编辑nginx与php连通性测试文件,并进行测试         echo ''     >/application/nginx/html/blog/test_info.php         测试站点         curl  http://blog.etiantian.org/index.html               ---->>  静态请求站点文件信息测试              curl  http://blog.etiantian.org/test_info.php           ---->>  动态请求站点文件信息测试         说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误         linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

      http://blog.etiantian.org/test_info.php              ---->> 可以访问到以下页面说明建立连接成功  ;

 

    3) 编辑php与mysql连通性测试文件,并进行测试         3.1 . 创建数据库            mysql -uroot -p123;            show databases;                      > 可以再本地登陆           mysql> grant all on wordpress.* to wordpress@'172.16.1.0/255.255.255.0' identified by '123456';   --->> 可以再网段登陆            flush privileges;                                                                                                   ----->>> 刷新            drop user wordpress@'172.16.1.8';           ---->>  删除用户信息            select user,host from mysql.user;               ---->>  查看用户信息

                      mysql -uwordpress -p123456                    ---->> 测试创建的用户连接            show databases;                                     ---->>  查看当前数据库信息

           # 利用mysql命令进行指定用户登录测试            /application/mysql/bin/mysql -uwordpress -p123         

   3.3 . 测试php与数据库连通性           [root@m01 blog]# pwd           /application/nginx/html/blog           [root@m01 blog]# ls           index.html  test_info.php  test_mysql.php           [root@m01 blog]#  vim test_mysql.php                    

            curl blog.etiantian.org/test_mysql.php              ---->> 测试php与数据库的连通性  

           http://blog.etiantian.org/test_mysql.php            ---->>  浏览器中测试 

 4) 下载部署 wordpress 博客程序(https://cn.wordpress.org/   英文官网:https://www.wordpress.org/ )             [root@m01 tools]#  wget -P /home https://cn.wordpress.org/wordpress-4.5.1-zh_CN.tar.gz    --->> -P  表示指定下载路径         [root@m01 tools]# tar xf wordpress-4.5.1-zh_CN.tar.gz                           ---->>  解压          [root@m01 tools]# mv wordpress/* /application/nginx/html/blog/         [root@m01 tools]# chown -R www.www /application/nginx/html/blog/       

         # 修改配置文件在配置文件中加上 index.php 要不不能直接访问页面需要手动切换 ;     

             [root@m01 extra]# nginx -t       nginx: the configuration file /application/nginx-1.10.3/conf/nginx.conf syntax is ok       nginx: configuration file /application/nginx-1.10.3/conf/nginx.conf test is successful      [root@m01 extra]# nginx -s reload

   5) 浏览器页面访问 http://blog.etiantian.org/       # vim wp-config.php  可以修改wordpress上的数据库连接参数信息

             第二步 ;

                                                               

五  、 wordpress 博客站点数据库迁移     ;     # 重复上面创建数据库的步骤

    迁移数据库:利用数据库备份命令     1) 备份数据库数据库信息         mysqldump -uroot -p123 --all-databases >/tmp/bak.sql         ll /tmp/bak.sql -h         scp /tmp/bak.sql 172.16.1.51:/tmp/

    2) 恢复数据库数据库信息                 ##db01          mysql -uroot -poldboy123



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3