nginx编译安装步骤

①. 检查软件安装的系统环境

cat /etc/redhat-release

uname -r

②. 安装nginx的依赖包(pcre-devel openssl-devel)---假设不进行安装

yum install -y pcre-devel openssl-devel

③. 下载nginx软件---1.10.2 复制链接地址(统一位置进行下载)

mkdir -p /home/oldboy/tools

cd /home/oldboy/tools

wget -q http://nginx.org/download/nginx-1.10.3.tar.gz

说明:软件很小,用心查看一下

④. 编译安装软件步骤

a. 解压要编译安装的软件(解压软件---配置(./configure)---做菜(编译 make)---上菜(安装 make install))

tar xf nginx-1.10.2.tar.gz

ps -ef |grep sshd

id www   #查看用户

uid=666(www) gid=666(www) groups=666(www)

userdel -r www  #删除虚拟用户

useradd www -s /sbin.nologin -M  #创建虚拟用户

id www

cd nginx-1.10.2

ls (里面的内容就是源代码(config readme安装说明)---默认编译会安装到/usr/local目录)

useradd -s /sbin/nologin -M www                                                                                    <--- 创建web服务程序www用户

./configure --prefix=/application/nginx-1.10.2 --user=www --group=www --with-http_stub_status_module  --with-http_ssl_module      #配置文件

echo $?

(编译参数说明后续补充说明)

make   编译

echo $?

make install    编译安装

软件编译过程中,利用返回值,判断操作是否正确

echo $?

cd /application/

ln -s /application/nginx-1.10.2  /application/nginx                                  <--- 安装完成一个软件要做一个软链接

b. 启动nginx软件程序进行测试

/application/nginx/sbin/nginx

lsof -i:80

netstat -lntup|grep 80    查看80端口

浏览器访问 10.0.0.8:80

至此软件安装完毕:

04:

③. nginx软件使用过程中疑难杂症(参考教案说明)

· Nginx启动的疑难杂症汇总

④. nginx软件排查问题三部曲说明

a 在客户端上ping服务器端IP,检查链路是否通畅

b 在客户端上telnet服务器端IP、端口,检查链路访问是否通畅

c 在客户端上wget检测模拟页面访问是否正常

## nginx命令说明

# nginx 启动方法

[root@web01 application]# /application/nginx/sbin/nginx

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] still could not bind()

[root@web01 application]#

# nginx 停止方法

[root@web01 application]# /application/nginx/sbin/nginx -s stop

[root@web01 application]# ps -ef|grep nginx

root       4283   1773  0 21:52 pts/0    00:00:00 grep --color=auto nginx

[root@web01 application]# netstat -lntup|grep 80

[root@web01 application]# /application/nginx/sbin/nginx

[root@web01 application]#

# nginx 重启方法(平滑)

[root@web01 application]# /application/nginx/sbin/nginx -s reload

# nginx 配置文件语法检查

[root@web01 application]# /application/nginx/sbin/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

mysql软件

mysql软件下载地址信息: www.mysql.com   mirrors.sohu.com

mysql软件下载完毕后,查看mysql解压后目录文件大小

讲解安装mysql步骤

1) 下载解压mysql二进制软件包

tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

#解压数据库压缩包

2) 添加mysql程序运行时的管理用户

useradd -s /sbin/nologin  -M mysql

#创建虚拟用户

3) 将mysql解压后的程序包搬家到程序目录下,并进行重命名

mkdir -p /application/

#创建程序目录

mv /server/tools/mysql-5.6.34-*-x86_64 /application/mysql-5.6.34

#将程序搬迁

4) 为mysql服务程序创建软链接

ln -s /application/mysql-5.6.34/ /application/mysql

#创建软连接

5) 让mysql用户管理 /application/mysql/

chown -R mysql.mysql /application/mysql/data

## 用虚拟用户管理

6)  初始化数据库

#1. 确认软件安装在哪里

#2. 确认数据存放在哪里

#3. 确认MySQL使用的用户谁?

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

==================================================================================================

下面是解释

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

mysql启动脚本 默认放在support-files/mysql.server

记得给MySQL设置个密码

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

创建密码的代码

/application/mysql/bin/mysqladmin -u root          password 'new-password'

远程创建密码

/application/mysql/bin/mysqladmin -u root -h web01 password 'new-password'

==================================================================================================

7) 复制启动脚本 授权

cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

8) 修改启动脚本 和 mysql命令中的路径

sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld

#将默认的东西改为自己的  将后面两个配置文件的全部都`修改

9)  复制默认的配置文件

\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf  #复制

/etc/init.d/mysqld start                #启动

至此,mysql数据库安装与启动完成;可以检测进程和服务端口,确认mysql服务是否启动正确

讲解管理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服务开机自启动

####11.加入开机自启动

chkconfig --add mysqld

chkconfig mysqld on

3) 设置mysql数据库登录用户名与密码

####12.给MySQL root用户设置密码

/application/mysql/bin/mysqladmin -u root password 'oldboy123'

mysql  -u   root -p  oldboy123

初级 添加删除系列

#创建数据库

create database wordpress;

#删除数据库

drop database wordpress;

#############################################################################################################

02:LNMP PHP软件安装

讲解安装PHP步骤

1) 解决PHP软件的依赖关系

yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y

yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y

rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

#查看是否下载成功

libiconv软件安装--和字符集转换相关的软件

#mkdir -p /server/tools

cd /server/tools

#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar zxf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv

make

make install

cd ../

和数据加密相关的三个软件安装

#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

#更换源

yum -y install libmcrypt-devel mhash mcrypt

#查看是否安装成功

rpm -qa libmcrypt-devel mhash mcrypt

2) 下载解压PHP软件

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

#Generating files

#configure: creating ./config.status

#creating main/internal_functions.c

#creating main/internal_functions_cli.c

#+--------------------------------------------------------------------+

#| License:                                                           |

#| This software is subject to the PHP License, available in this     |

#| distribution in the file LICENSE.  By continuing this installation |

#| process, you are bound by the terms of this license agreement.     |

#| If you do not agree with the terms of this license, you must abort |

#| the installation process at this point.                            |

#+--------------------------------------------------------------------+

#

#Thank you for using PHP.

make

make install            <- 创建目录,生成程序文件信息

了解FastCGI

3) PHP软件程序创建软链接

ln -s /application/php-5.5.32/ /application/php

4) 配置php解析文件/配置php-fpm配置文件

#上边是开发用的 下面是运维用的

cd /server/tools/php-5.5.32

cp php.ini-production /application/php/lib/php.ini

php.ini-production 与 php.ini-development 文件区别关系对比

扩展:文件比较命令 diff zdiff vimdiff windows上的文件比较

cd /application/php/etc/

cp php-fpm.conf.default php-fpm.conf

5) 启动php-fpm程序

/application/php/sbin/php-fpm

)6检查

lsof -i :9000                    <--- 确认php 9000端口是否正确启动

ps -ef|grep php-fpm

03:wordpress博客站点部署配置

1) 修改nginx配置文件,使nginx程序与php程序建立联系

vim extra/blog.conf

server {

listen       80;

server_name  blog.etiantian.org;

location / {

root   html/blog;

index  index.php index.html index.htm;   <-- 需要注意编辑修改默认首页文件  index

}

location ~* .*\.(php|php5)?$ {         #主要添加下面这行

root html/blog;

fastcgi_pass  127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

}

说明:利用nginx的location区块实现动态请求与静态请求的分别处理

实例

[root@web01 extra]# pwd

/application/nginx/conf/extra

[root@web01 extra]# cat blog.conf

server {

listen       80;

server_name  blog.etiantian.org;

location / {

root   html/blog;

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;

}

}

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   -u  root -p  oldboy123;       #进入数据库

show databases;                      <--- 查看当前数据库信息

create database wordpress;

实例

mysql> mysql -uroot -poldboy123;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql -uroot -poldboy123' at line 1

mysql>    create database wordpress;

Query OK, 1 row affected (0.53 sec)

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> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

| wordpress          |

+--------------------+

5 rows in set (0.33 sec)

mysql> grant all on wordpress.* to 'wordpress'@'10.0.0.%' identified by 'oldboy123';

Query OK, 0 rows affected (0.47 sec)

mysql> select user,host from mysql.user;

+-----------+-----------+

| user      | host      |

+-----------+-----------+

| wordpress | 10.0.0.%  |

| root      | 127.0.0.1 |

| root      | ::1       |

|           | localhost |

| root      | localhost |

|           | web01     |

| root      | web01     |

+-----------+-----------+

7 rows in set (0.00 sec)

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服务器数据库此时可以关闭了

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/* ./

原创:LNMP架构部署个人博客网站 禁止转载复制的更多相关文章

  1. 搭建Keepalived+LNMP架构web动态博客 实现高可用与负载均衡

    环境准备: 192.168.193.80  node1 192.168.193.81 node2 关闭防火墙 [root@node1 ~]# systemctl stop firewalld #两台都 ...

  2. 基于LNMP架构搭建wordpress博客之安装架构说明

    架构情况 架构情况:基于LNMP架构搭建wordpress系统 软件包版本说明: 系统要求 :  CentOS-6.9-x86_64-bin-DVD1.iso PHP版本  :  php-7.2.29 ...

  3. 搭建LNMP环境部署Wordpress博客

    !!!首先要做的就是关闭系统的防火墙以及selinux: #systemctl stop firewalld #systemctl disable firewalld #sed -ri 's/^(SE ...

  4. LNMP架构之搭建wordpress博客网站

    系统环境版本 [root@db02 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@db02 ~]# uname -a Lin ...

  5. CentOS 7 yum安装LAMP,LNMP并搭建WordPress个人博客网站

    本次实验要进行的是在CentOS7.2,内核版本3.10.0-327.el7.x86_64的环境下搭建LAMP和LNMP,并在此之上做一个WordPress博客网站. [root@Shining ~] ...

  6. Linux下-LNMP环境搭建博客网站(全过程)

    通常我们所说的LNMP是指一个网站基本的组织框架,即Linux系统支持,Nginx静态服务,Mysql数据库支持以及PHP动态编程语言支持.目前Mysql数据库被Oracle数据库分析公司收购,其创始 ...

  7. 用lnmp架构部署wordpress网站详细步骤

    用lnmp架构部署wordpress网站 ①.下载和上传网站代码 用winscp或者xftp, 或者xshell下执行rz命令进行上传网站的包文件. ②.解压程序代码,并将程序代码保存到站点目录,并进 ...

  8. 《Linux就该这么学》培训笔记_ch20使用LNMP架构部署动态网站环境

    <Linux就该这么学>培训笔记_ch20使用LNMP架构部署动态网站环境 文章最后会post上书本的笔记照片. 文章主要内容: 源码包程序 LNMP动态网站架构 配置Mysql服务 配置 ...

  9. 部署项目到服务器 & 搭建博客网站

    搭建博客网站 作为名程序员,或者是网络编程爱好者,拥有一个自己的博客网站再好不过,本篇文章手把手教你部署自己的网站

随机推荐

  1. 感知器算法--python实现

    写在前面: 参考: 1  <统计学习方法>第二章感知机[感知机的概念.误分类的判断]   http://pan.baidu.com/s/1hrTscza 2   点到面的距离 3   梯度 ...

  2. [技术] OIer的STL入门教程

    注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档 ...

  3. 9. leetcode 389. Find the Difference

    Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...

  4. vue.js移动端app实战2:首页

    貌似有部分人要求写的更详细,这里多写一点vuel-cli基础的配置 什么是vue-cli? 官方的解释是:A simple CLI for scaffolding Vue.js projects, 简 ...

  5. Spring Boot整合Dubbo使用及开发笔记

    一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...

  6. Oracle数据库常用关键字以及函数

    常用关键字 insert into---插入数据 delete---删除数据 update---更新一条数据 select---实际工作中尽量不要写* set---设置某些属性 where---给执行 ...

  7. 野生程序员对.NETFramework 4.0 ThreadPool的理解

    ThreadPool 类 提供一个线程池,该线程池可用于执行任务.发送工作项.处理异步 I/O.代表其他线程等待以及处理计时器. 命名空间:   System.Threading程序集:  mscor ...

  8. phoenix常用命令

    1.登录命令 ./sqlline.py localhost:2181:/hbase-unsecure span { font-family: "Courier New"; font ...

  9. C++构造函数初始化列表与赋值

    C++中类的初始化操作一般有四个部分组成: 1.构造函数初始化列表 2.构造函数体内赋值 3.类外部初始化 4.类声明时直接赋值 对于内部数据类型(char,int,float...),构造函数初始化 ...

  10. testng相关的Annotation注释方法,

    2 - Annotation这里是TestNG中用到的annotation的快速预览,还有它们的属性. @BeforeSuite: 被注释的方法将在所有测试运行前运行,方法将只运行一次@AfterSu ...