首页 > 代码库 > 部署LNMP
部署LNMP
第1章 编译安装Nginx
到目前为止还未发现操作系统ISO镜像自带,或者默认情况下yum可以直接通过rpm包方法安装Nginx的情况。如果要使用yum安装Nginx,则需要配置epel yum源或去官网寻找。
1.1 安装Nginx所需的pcre库
yum install pcre pcre-devel -y
注意:
安装pcre库是为了使Nginx支持具备URI重写功能rewrite模块;rewrite模块功能在企业中最常用的;
1.1 安装依赖关系的软件包 pcre pcre-devel、openssl openssl-devel
[root@web01 ~]# rpm -qa pcre pcre-devel ###查看安装结果 prce prce-devel
pcre-7.8-7.el6.x86_64
pcre-devel-7.8-7.el6.x86_64
[root@web01 ~]# rpm -qa openssl openssl-devel ##查看安装结果openssl openssl-devel
openssl-1.0.1e-48.el6_8.4.x86_64
openssl-devel-1.0.1e-48.el6_8.4.x86_64
###如果这两个软件包都没有安装,yum安装
#yum install pcre pcre-devel -y
#yum install optenssl openssl-devel -y
#1.安装依赖包
yum install -y pcre-devel openssl-devel
注意:
Nginx在使用HTTPS服务的时候需要用到此模块,如果不安装optenssl相关包,安装Nginx的过程会报错。
1.2 开始安装Nginx
1.2.1 创建目录,创建的这个目录用来固定存放各种软件; (统一个存放软件的目录)
mkdir -p /home/oldboy/tools ##创建文件目录
1.2.2 下载软件包,进入到/home/oldboy/tools目录下面,下载软件安装包
cd /home/oldboy/tools
wget http://nginx.org/download/nginx-1.10.2.tar.gz
#注意:
在选择下载安装包时,要选定稳定的版本 ##为偶数
1.2.3 解压
[root@web01 tools]# tar xf nginx-1.10.2.tar.gz
[root@web01 tools]# ll
total 896
drwxr-xr-x 8 1001 1001 4096 Oct 18 23:03 nginx-1.10.2
-rw-r--r-- 1 root root 910812 Mar 22 18:10 nginx-1.10.2.tar.gz
1.2.4 创建虚拟用户
useradd -s /sbin/nologin -M www
1.2.5 配置(configure)nginx ;
cd /home/oldboy/tools/nginx-1.10.2 #进入这个目录下面来配置
./configure --user=www --group=www --prefix=/application/nginx-1.10.2 --with-http_stub_status_module --with-http_ssl_module
注意: ./configure--help帮助信息
--user=USER ##进程用户权限
--group=www ##进程用户组权限
-prefix=/application/nginx-1.10.2 ##设置安装路径
--with-http_stub_status_module ##激活状态信息
--with-http_ssl_module ##激活ssl功能
1.2.6 编译,安装
make
make install
1.2.7 创建软连接
ln -s /application/nginx-1.10.2 /application/nginx
1.2.8 检查配置文件语法
/application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.10.2/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.10.2/conf/nginx.conf test is successful
命令说明:
-t 是检查配置文件的语法
-s 【reload】 是让配置文件平滑重启,不会影响其它用户
/application/nginx/sbin/nginx -s reload
1.2.9 启动nginx进行测试
/application/nginx/sbin/nginx
1.2.10 检测服务
1、查看端口服务是否开启
lsof -i:80
[root@web01 nginx]# netstat -lnt|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:46580 0.0.0.0:* LISTEN
2、浏览器访问 10.0.0.8
打开浏览器输入http://10.0.0.8(为安装nginx服务器的IP地址),然后回车
第2章 MySQL
1.1 MySQL安装部署步骤(web01)
1.1.1 上传MySQL软件到响应的目录中
1.1.2 解压MySQL软件,将解压后目录放置到/application目录中,并创建软连接。
解压MySQL二进制包
cd /home/oldboy/tools
tar xf mysql-5.6.34-*-x86_64.tar.gz
把MySQL 移动到 /application/
mkdir -p /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
ll /application/mysql
1.1.3 让MySQL用户管理
chown -R mysql.mysql /application/mysql/
1.1.4 创建管理MySQL服务的用户mysql
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin
useradd mysql -M -s /sbin/nologin
1.1.5 初始化MySQL(创建默认数据库数据信息过程)
cd /application/mysql
##在数据库MySQL目录下执行
./scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data/
1.1.6 复制启动脚本,授权。/appl
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/application/mysql/bin/mysqld_safe &
\cp support-files/mysql.server /etc/init.d/mysqld
ll /etc/init.d/mysqld
1.1.7 修改启动脚本和MySQL命令中的路径
mysql启动脚本 默认放在support-files/mysql.server
sed -i ‘s#/usr/local/mysql#/application/mysql#g‘ /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
启动:
/etc/init.d/mysqld start
启动不成功:
修改配置文件,复制过来,复制之前先备份,以免出现错误。
cp /etc/my.cnf{,.ori}
\cp /application/mysql/my.cnf /etc/my.cnf
1.1.8 检查是否启动成功
nestat -lntup|grep mysql
ps -ef|grep mysql
##3306 为mysql专用端口
1.1.9 小结
初始化脚本文件 /scripts/mysql_install_db
服务启动脚本文件 /application/mysql/bin/mysqld_safe support-files/mysql.server(/etc/init.d/ +x)
1.2 进入数据库命令
/application/mysql/bin/mysql
1.2.1 设置密码
/application/mysql/bin/mysqladmin -u root password ‘oldboy123‘
看见warning不要害怕,只是一个警告。
1.2.2 设置完密码如何进入
命令行输入密码
/application/mysql/bin/mysqladmin -u root password ‘oldboy123‘
交互式输入密码
/application/mysql/bin/mysql -uroot -p
1.2.3 加入开机自启动
chkconfig --add mysqld
chkconfig mysqld on
1.3 进入数据库操作
1.3.1 查看所有数据库
show databases
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wordpress |
+--------------------+
5 rows in set (0.05 sec)
mysql>
1.3.2 刷新
flush privileges;
1.3.3 创建数据库
create database 名字;
mysql> create database oldgirl;
Query OK, 1 row affected (0.04 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oldgirl |
| performance_schema |
| test |
| wordpress |
+--------------------+
1.3.4 查询用户的权限,当前系统都有什么用户?他们可以在那里登录?
select user,host from mysql.user;
mysql> select user,host from mysql.user;
+-----------+------------+
| user | host |
+-----------+------------+
| root | 127.0.0.1 |
| wordpress | 172.16.1.% |
| root | ::1 |
| | db01 |
| root | db01 |
| | localhost |
| root | localhost |
+-----------+------------+
7 rows in set (0.06 sec)
1.3.5 删除数据库
drop database 数据库名字;
1.3.6 查看当前所属的数据库,相当于从pwd命令
select database()
1.3.7 添加用户并授予权限
grant all on wordpress.* to ‘用户名‘@ ‘在哪‘ identfied by ‘密码‘
###db01添加新的用户 那个%的不好使添加这个
grant all on wordpress.* to ‘wordpress@‘172.16.1.0/255.255.255.0‘ identified by ‘123456‘;
flush privileges;
1.3.8 数据库常用操作命令说明
show databases; ---查看数据库信息
create database oldboy; ---创建新的数据库
drop database oldboy; ---删除存在的数据库
show tables; ---查看数据库中表信息
use mysql; ---切换数据库
select database(); ---查看所在数据库,相当于pwd
select * from user\G; ---查看user表中所有信息,并且纵行显示
select user,host from user; ---查看user表中指定信息,并且横行显示
select user,host from mysql.user;
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; --- 刷新权限
第3章 PHP
2.1 安装PHP基础库
2.1.1 基础依赖包
解压PHP软件,进行编译安装,将程序安装到/application目录中,并且创建软连接
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
2.1.2 安装字符集转换库---libicony
mkdir -p /home/oldboy/tools
cd /home/oldboy/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
2.1.3 安装其他相关程序--libmcrypt
在/home/oldboy/tools下载工具的目录
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.1.4 报错
创建软连接
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar
如果是nginx用户则需要修改php-fpm.conf.default 这个配置文件user = www:group = www改变一下
改变方法:
#sed -i ‘s#user = www#user = nginx#g;s#group = www#group = nginx#g‘ /application/php-5.5.32/etc/php-fpm.conf.default
2.1.5 创建软连接
ln -s /application/php-5.5.32/ /application/php
2.1.6 配置php解析文件
cd /home/oldboy/tools/php-5.5.32
cp php.ini-production /application/php/lib/php.ini
2.1.7 配置php-fpm配置文件
cd /application/php/etc/
cp php-fpm.conf.default php-fpm.conf
2.1.8 启动php-fpm
/application/php/sbin/php-fpm
#查看端口,是否启动。
lsof -i :9000
ps -ef|grep php-fpm
2.2 测试php与MySQL沟通是否正常
编辑
/application/nginx/html/blog
vim test_mysql.php
?php
//$link_id=mysql_connect(‘主机名‘,‘用户‘,‘密码‘);
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect(‘localhost‘,‘wordpress‘,‘123456‘) or mysql_error();
if($link_id){
echo "mysql successful by oldboy !\n";
}else{
echo mysql_error();
}
?>
第4章 安装博客
进入tools目录
cd /home/oldboy/tools/
3.1 解压软件wordpress
tar xf wordpress-4.7.3-zh_CN.tar.gz
3.2 将软件移动到博客配置文件路径/application/nginx/html/blog/
mv wordpress/* /application/nginx/html/blog/
3.3 给予/application/nginx/html/blog/路径www权限
chown -R www.www /application/nginx/html/blog/
3.4 数据库迁移
将本地的数据库迁移到mysql服务器
推过去web01==>db01
scp /home/oldboy/tools/mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz 172.16.1.51:/home/oldboy/tools/
将压缩包推倒MySQL服务器
解压创建数据库,创建用户。
在本地/application/nginx/html/blog路径下,修改vim wp-config.php文件。
......................省略
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define(‘DB_NAME‘, ‘wordpress‘);
/** MySQL数据库用户名 */
define(‘DB_USER‘, ‘wordpress‘);
/** MySQL数据库密码 */
define(‘DB_PASSWORD‘, ‘oldboy123‘);
/** MySQL主机 */
define(‘DB_HOST‘, ‘172.16.1.51‘); ##将IP地址改成mysqlIP地址
/** 创建数据表时默认的文字编码 */
define(‘DB_CHARSET‘, ‘utf8mb4‘);
/** 数据库整理类型。如不确定请勿更改 */
define(‘DB_COLLATE‘, ‘‘);
..........................省略
部署LNMP