LNMP架构部署

LNMP架构部署图

360桌面截图20171231195126.jpg

1  . 查看系统环境

[root@localhost tools]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@localhost tools]# uname -a
Linux localhost 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

2 . 编译安装nginx

a . 集中管理安装包
mkdir /server/tools –p
[root@localhost tools]# wget -q http://nginx.org/download/nginx-1.10.3.tar.gz
[root@localhost tools]# ls -l
total 892
-rw-r--r-- 1 root root 911509 Jan 31  2017 nginx-1.10.3.tar.gz
b . 解决依赖关系
yum install -y pcre-devel openssl-devel
c . 解压
tar -zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
useradd www -s /sbin/nologin -M    #创建Nginx管理用户
id www
d . 编译
开始编译   
1, 配置软件        指定软件有哪些功能  用哪些模块 
2, 编译软件        编译成机器能识别的信息   就是 二进制  
3, 编译安装软件    安装软件 

=================开始编译  ============================
#编译
./configure --prefix=/application/nginx-1.10.3 --user=www --group=www --with-http_stub_status_module  --with-http_ssl_module

#安装
make && make install

#检查上个命令执行是否成功[0表示成功,非0表示失败]
echo  $?
#创建软连接
cd  /application
ln -s /application/nginx-1.10.3/ /application/nginx
nginx_PATH=/application/nginx
echo $nginx_PATH

#启动服务
/application/nginx/sbin/nginx

#查看nginx进程
ps -ef |grep nginx

#Web浏览器访问测试

3  . mysql数据库的安装(二进制)

① 上传软件包
② 解压mysql
  tar -zxvf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
③ 添加mysql程序运行时的管理用户
  useradd -s /sbin/nologin  -M mysql
④ 将解压后的程序目录放到/application目录,并进行重命名
  mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34
⑤ 创建软链
  ln -s /application/mysql-5.6.34/ /application/mysql
⑥ 修改权限
  cd /application/mysql && chown -R mysql.mysql data/
⑦ 初始化数据库
  /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

#### 注释: #############
  --basedir= 软件安装目录
  --datadir= 数据存储目录
#### 注释: #############

⑧ 拷贝脚本文件到/etc/init.d/目录
  cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
  ll /etc/init.d/mysqld
  
⑨ 修改启动脚本和mysql命令的路径(默认/usr/local/目录下)
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld

⑩ 复制默认配置文件
  \cp /application/mysql/support-files/my-default.cnf /etc/my.cnf 

最后启动MySQL的
/etc/init.d/mysqld start
配置Mysql命令-环境变量
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
which mysql

mysql 简单的使用

[root@web01 ~]# mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 

mysql> show databases;   #查看数据库
mysql> use mysql;        #进入mysql数据库
Database changed
mysql> show tables;      #查看数据库表
mysql> quit;             #退出数据库

show databases;       <--- 查询默认的数据库信息
create database oldboy;  <---创建新的数据库
drop database oldboy;    <---删除存在的数据库
use mysql;               <--- 表示选择使用一个数据库,相当于cd进入一个数据库
show tables;            <---查看数据库中表信息
select database();       <--- 表示查看当前所在数据库,类似于pwd命令的功能
select user();           <--- 查看当前登录数据库的用户,类似于whoami命令
select * from user\G;    <---查看user表中所有信息,并且纵行显示
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;<--- 刷新权限
设置密码
/application/mysql/bin/mysqladmin -u root password '123'  #本地方式修改密码
/application/mysql/bin/mysqladmin -h web01 -u root password 'oldboy123' #修改远程密码

再次登录
mysql -uroot -poldboy123

4 . 编译安装PHP

yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel gcc

epel源安装如下依赖:
yum -y install libmcrypt-devel mhash mcrypt openssl-devel
安装libiconv
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install

编译php
注:LNMP架构如果mysql和web架构不在同一机器上,mysql编译参数需要有所调整
把下面的--with-mysql=/application/mysql/改为--with-mysql=mysqlnd,表示mysql不在本地,下面的防报错配置也无需操作,直接可编译安装

cd /server/tools/
tar xf php-5.5.32.tar.gz
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

防报错配置:
ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/
touch ext/phar/phar.phar
make
make install

创建软链
ln -s /application/php-5.5.32/   /application/php

配置php解析文件-php-fpm
cp /server/tools/php-5.5.32/php.ini-production /application/php/lib/php.ini
cp /application/php/etc/php-fpm.conf.default   /application/php/etc/php-fpm.conf

启动php
/application/php/sbin/php-fpm
netstat -lntup|grep php

wordpress博客的搭建

解压安装wordpress安装包
[root@localhost blog]# cd /server/tools/
[root@localhost tools]# tar xf wordpress-4.7.3-zh_CN.tar.gz 
[root@localhost tools]# cd wordpress
[root@localhost wordpress]# ls
index.php    wp-activate.php     wp-comments-post.php  wp-cron.php        wp-load.
license.txt  wp-admin            wp-config-sample.php  wp-includes        wp-login
readme.html  wp-blog-header.php  wp-content            wp-links-opml.php  wp-mail.
[root@localhost wordpress]# mv ./* /application/nginx/html/blog/
[root@localhost wordpress]# chown -R www.www /application/nginx/html/blog/
6.2创建数据库和管理账号
[root@localhost wordpress]# mysql -u root -poldboy123 -e "create database wordpress;"
Warning: Using a password on the command line interface can be insecure.
[root@localhost wordpress]# mysql -u root -poldboy123 -e "show databases;"
Warning: Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
[root@localhost wordpress]# mysql -u root -poldboy123 -e "grant all on wordpress.* to wordpress@'10.0.0.%' identified by 'oldboy123';"
Warning: Using a password on the command line interface can be insecure.
[root@localhost wordpress]# mysql -u root -poldboy123 -e "flush privileges;"
设置wordpress
通过浏览器访问blog.bai.org。输入设置的数据库和主机信息

2.png信息输入正确就会到下面这一步,点击进行安装即可

3.png

设置用户名和密码

4.png

出现下面的界面,代表安装成功。

5.png配置优化及说明

 
 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)?$ {
                            root html/blog;
                            fastcgi_pass  127.0.0.1:9000;
                            fastcgi_index index.php;
                            include fastcgi.conf;
                }
        }		
		说明:利用nginx的location区块实现动态请求与静态请求的分别处理
		
    2) 编辑nginx与php连通性测试文件,并进行测试
        echo '<?php phpinfo(); ?>'	 >/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系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

    3) 编辑php与mysql连通性测试文件,并进行测试
	    a. 创建数据库
		   mysql -uroot -poldboy123;
		   show databases;                      <--- 查看当前数据库信息
		   create database wordpress;		       		
		b. 添加用户信息		
		   grant all on wordpress.* to 'wordpress'@'localhost' indentified by 'oldboy123';
		   grant all on wordpress.* to 'wordpress'@'172.16.1.%' indentified by 'oldboy123';
		   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 -poldboy123
		c. 测试php与数据库连通性
		   vim test_mysql.php
           <?php
           //$link_id=mysql_connect('主机名','用户','密码');
           //mysql -u用户 -p密码 -h 主机
           $link_id=mysql_connect('localhost','wordpress','oldboy123') or mysql_error();
           if($link_id){
                        echo "mysql successful by oldboy !\n";
                       }else{
                        echo mysql_error();
                       }
           ?>
        curl blog.etiantian.org/test_mysql.php       <-- 测试php与数据库的连通性
		
    4) 下载部署wordpress博客程序(https://cn.wordpress.org/   英文官网:https://www.wordpress.org/ )	
		wget https://cn.wordpress.org/wordpress-4.5.1-zh_CN.tar.gz
        tar xf wordpress-4.5.1-zh_CN.tar.gz 
        mv wordpress/* /application/nginx/html/blog/
        chown -R www.www /application/nginx/html/blog/
		注意:确认hosts文件进行了解析
		浏览器页面进行wordpress部署		
		vim wp-config.php  可以修改wordpress上的数据库连接参数信息
		
04:wordpress博客站点数据库迁移	
    # 重复上面创建数据库的步骤

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

    2) 恢复数据库数据库信息		
        ##db01 
        mysql -uroot -poldboy123 </tmp/bak.sql
        ###db01添加新的用户
        grant all on wordpress.* to wordpress@'172.16.1.0/255.255.255.0' identified by 'oldboy123';
        flush privileges;
        mysql -uwordpress -poldboy123 -h 172.16.1.51

    3) 数据库迁移完毕,修改网站连接数据库的配置文件
        mysql -uwordpress -poldboy123 -h 172.16.1.51       <-- 修改配置文件之前,先测试网站web服务器与迁移后的数据库连通性	
		vim wp-config.php                                  <-- 修改wordpress上的数据库连接参数信息
		/** MySQL主机 */
		define('DB_HOST','172.16.1.51')                    <-- 修改连接的主机信息,将localhost修改为172.16.1.51
		说明:web服务器数据库此时可以关闭了

	4)停止nginx服务器上MySQL服务
		
05. 进行数据迁移到NFS共享服务器
    01:先将原有目录中数据移出
        cd /application/nginx/html/blog/wp-content/uploads
        mkdir /tmp/wordpress_backup -p
        mv ./* /tmp/wordpress_backup/
    
    02:NFS服务器上配置创建共享目录
        vim /etc/exports
        /data 172.16.1.0/24(rw,sync,all_squash)
        showmount -e 172.16.1.31
        mount -t nfs 172.16.1.31:/data /mnt/
        
        showmount -e 172.16.1.31
        mount -t nfs 172.16.1.31:/data/ ./uploads/
        mv /tmp/wordpress_backup/* ./		


打赏 支付宝打赏 微信打赏

最后编辑于:2017/12/31作者: 富华运维空间

相关推荐

发表评论

动态鼠标蜘蛛网特效