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. 14. leetcode 383. Ransom Note

    Given an arbitrary ransom note string and another string containing letters from all the magazines, ...

  2. Backpropagation 算法的推导与直观图解

    摘要 本文是对 Andrew Ng 在 Coursera 上的机器学习课程中 Backpropagation Algorithm 一小节的延伸.文章分三个部分:第一部分给出一个简单的神经网络模型和 B ...

  3. POJ--1088--dp--滑雪

    #include<iostream> using namespace std; ; }; }; int dp(int,int); int row,col; int main() { whi ...

  4. IIS下防止mdb数据库被下载的实现方法

    第一种方法:要求网站管理人员具体asp编程经验.因为现在的销售虚拟主机的系统,已经为用户建立了一个database目录,跟web目录同一个级别,用户访问的是web中的文件,而无法访问database目 ...

  5. 605. Can Place Flowers种花问题【leetcode】

    Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, ...

  6. charAt()的功能

    <script type="text/javascript"> var str="Hello world!" document.write(str. ...

  7. [算法题] 3Sum

    题目内容 题目来源:LeetCode Given an array S of n integers, are there elements a, b, c in S such that a + b + ...

  8. 【IDE】IntelliJ IDEA (Mac) 运行速度优化(问题起因:debug模式突然变得巨慢)

    首先,注明本篇博客是参考 http://ningg.top/tool-personal-intellij-idea-for-mac-optimize/ 该篇博文而写,在此鸣谢作者! 正文部分: 近期使 ...

  9. ajax轮询实时获取数据

    最近做一个评论功能时,想要实现实时异步刷新评论功能,于是使用了ajax轮询,这里简单记录一下ajax轮询的原理及使用方法. ajax轮询的原理就是客户端定时向服务端发送ajax请求,服务器接到请求后马 ...

  10. c和fortran混编(基于GNU/Linux,转自 linzch)

    网 上说要分c为主程序和fortran为主程序两种情况讨论,其实我觉得不用,只要你了解生成可执行文件的机制.这个机制就是:不论是单一语言模块之间的 链接还是不同语言之间的混合链接,本质目的都是要链接器 ...