部署LNMP利用LNMP环境搭建 Wordpress网站; |
您所在的位置:网站首页 › lnmp架构搭建 › 部署LNMP利用LNMP环境搭建 Wordpress网站; |
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命令进行指定用户登录测试 /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 要不不能直接访问页面需要手动切换 ; 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 |