LNMP架构搭建详解

以下使用的版本为:
nginx-1.15.9
mysql-boost-5.7.20
php-7.1.10
注:需要包源的可以私聊作者

一. nginx的编译安装

1.1 依赖环境包安装

yum -y install \
gcc gcc-c++  make \         //编译器gcc,gcc-c++,编译工具make
pcre-devel \                //正则表达式开发依赖包
zlib-devel                  //压缩依赖包

1.2 解压源码包

[root@localhost ~]#
cd /opt
tar xzvf nginx-1.15.9.tar.gz   //使用的是1.15.9版本

1.3 创建程序用户

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

1.3 ./configure配置

[root@localhost ~]# 
cd nginx-1.15.9/
./configure \
--prefix=/usr/local/nginx \           //指定安装路径
--user=nginx \                       //程序用户
--group=nginx \                      //程序用户的组
--with-http_stub_status_module       //状态统计模块

1.4 make 配置文件构建出二进制文件

[root@localhost opt]# make     //编译,将源代码转换为可执行的二进制程序

1.5 make install 安装

[root@localhost opt]# make install     //将编译完的httpd程序及相关目录,文件复制到预设的安装目录

1.6 三个文件

1.61 主配置文件

[root@localhost opt]# vim /usr/local/aginx/conf/aginx.conf

1.62 命令文件

[root@localhost opt]# ln -s /usr/local/nginx/sbin//nginx /usr/local/bin
[root@localhost opt]# nginx -t      //验证nginx的配置文件的语法

1.62 启动脚本

添加系统服务,便于systemctl 管理

[root@localhost opt]# 
vi /lib/systemd/system/nginx.service
编辑模式
[Unit]
Description=nginx                            //描述
After=network.target                        //描述服务类别
[Service]
Type=forking                               //后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid   //PID文件位置  
ExecStart=/usr/local/nginx/sbin/nginx    //启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID  //根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID  //根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target               //最小安装方式适用

[root@localhost opt]# chmod 754 /lib/systemd/systecm/nginx.service

1.7 开启服务

[root@localhost opt]# systemctl enable nginx.service 
[root@localhost opt]# systemctl start nginx
[root@localhost opt]# netstat -anpt | grep aginx 

二. Mysql 的编译安装

2.1 安装依赖环境包

[root@localhost opt]#
yum -y install \
ncurses \                           
ncurses-devel \                     //字符终端
bison \                            //通用解析器,解析C++语言
cmake

ncurses是字符终端下屏幕控制的基本库,你在TTY下登录到主机上mysql需要的,所以依赖

2.2 解压源码包

[root@localhost ~]# tar xf mysql-boost-5.7.20.tar.gz
cd /opt

2.3 ./cmake 配置

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \               //指定安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \         //通讯协议
-DSYSCONFDIR=/etc \                                    //指定配置文件目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \                   //指定PID进程目录位置
-DDEFAULT_CHARSET=utf8  \                              //指定字符集
-DDEFAULT_COLLATION=utf8_general_ci \                  //字符集规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                     //指定存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                      //不支持任何索引,但使用查询缓存的存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \                    //黑洞引擎,写入的任何数据都会消失,用于记录binlog做复制的中继存储
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \                   //mysql的运行时状态记录的存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \                //指定数据放置目录
-DWITH_BOOST=boost \                                   //C++程序库的总称
-DWITH_SYSTEMD=1                                       //相当于ID号

2.4 make编译成二进制文件

[root@localhost opt]# make     //编译,将源代码转换为可执行的二进制程序

2.5 make install安装

[root@localhost opt]# make install     //将编译完的nginx程序及相关目录,文件复制到./configure设定的安装目录

创建数据库程序用户

useradd -M -s /sbin/nologin  mysql

数据库目录进行权限调整

chown -R mysql:mysql /usr/local/mysql/

2.6 三个文件

2.61 主配置文件

[root@localhost opt]# vi /etc/my.cnf          //Mysql 5.7版本的my.cnf 配置文件需要设定 client , mysql, mysqld 三项

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
//

[root@localhost opt]# chown mysql.mysql /etc/my.cnf

2.62 命令文件

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

2.63 启动脚本

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

2.7 初始化数据库

cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \        //初始化安全
--user=mysql \                 //用户
--basedir=/usr/local/mysql \   //工作目录
--datadir=/usr/local/mysql/data  //数据目录

2.8 启动数据库

systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306

mysqladmin -u root -p password "abc123" //刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

mysql -u root -p     ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123

三. PHP的编译安装

3.1 依赖环境包安装

[root@localhost opt]#
yum -y install \
libjpeg \          
libjpeg-devel \                          //支持jpg格式的图片
libpng libpng-devel \                    //支持png格式图片
freetype freetype-devel \               //字体样式(宋体,斜体,黑体等)
libxml2 \            
libxml2-devel \                         //支持xml格式,版本2
zlib zlib-devel \                       //支持压缩依赖包
curl curl-devel \                       //定位远程web资源
openssl openssl-devel                   //安全套接字协议,增加网站访问的安全性 (搭档https,ssl证书)

3.2 解压源码包

cd /opt
tar xjvf php-7.1.10.tar.bz2

3.3 ./configure 配置

cd php-7.1.10
./configure \
--prefix=/usr/local/php \              //指定安装目录
--with-mysql-sock=/usr/local/mysql/mysql.sock \     //关联Mysql
--with-mysqli \                        //启用mysql的客户端
--with-zlib \                        //启用压缩功能
--with-curl \                       //定位curl远程web资源
--with-gd \                         //处理图片,图像,文字的库
--with-jpeg-dir \                   //jpeg图片处理
--with-png-dir \                    //png图片处理
--with-freetype-dir \               //字体类型
--with-openssl \                    //ssl安全加密
--enable-fpm \                      //动态处理模块
--enable-mbstring \                 //字符串处理
--enable-xml \                      //xml格式
--enable-session \                  //session会话,前端的界面传送到后台,进行封装,后台处理完后,再返回到会话给前端
--enable-ftp \                      //开启ftp
--enable-pdo \                      //连接数据库的驱动,连接系统与物理设备的桥梁
--enable-tokenizer \                //令牌,用作身份认证
--enable-zip                        //压缩

3.4 make 编译成二进制文件

[root@localhost php-7.1.10]# make     //编译,将源代码转换为可执行的二进制程序

3.5 make install 安装

[root@localhost php-7.1.10]# make install     //将编译完的php程序及相关目录,文件复制到./configure设定的安装目录

3.6 三个文件

3.61 主配置文件

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@localhost php-7.1.10]# vi /usr/local/php/lib/php.ini
##########只需要改以下两个参数就行###
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

###########验证安装的模块###########
/usr/local/php/bin/php -m      ###必须使用绝对路径否则使用不了

3.62 命令文件

ln -s /usr/local/php/bin/* /usr/local/bin/

3.63 启动脚本

依赖于nginx的启动而启动,PHP的FPM动态处理的启动端口为9000

3.7 配置及优化FPM模块

cd  /usr/local/php/etc/
cp  php-fpm.conf.default  php-fpm.conf
vim php-fpm.conf
###########搜索pid = run/php-fpm.pid  去掉分号开头#######
pid = run/php-fpm.pid            ###去掉; 启用fpm功能

cd  /usr/local/php/etc/php-fpm.d/
cp  www.conf.default  www.conf

注:/usr/local/php/etc/php-fpm.conf 和 /usr/local/php/etc/php-fpm.d/www.conf这两个fpm模块的文件其实是一个文件, /usr/local/php/etc/php-fpm.d/www.conf是/usr/local/php/etc/php-fpm.conf 的子文件,里面指定了端口号9000等fpm模块的信息

3.8 编辑nginx主配置文件,使其支持PHP

######去掉前面井号改一下 fastcgi_param 后面的就行###
vim /usr/local/nginx/conf/nginx.conf
 location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

设置测试页

########改完之后建一个PHP的测试页####
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>

修改过nginx配置文件需要重启一下服务

nginx -t                     //验证一下配置文件的语法
systemctl restart nginx

3.9 测试动态页面

###http://20.0.0.30/index.php####

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值