码迷,mamicode.com
首页 > 其他好文 > 详细

LNMP部署及应用理论及实操

时间:2019-11-12 10:58:18      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:重启   blackhole   apache服务器   字体库   zip压缩   字节   支持php   netstat   本机   

LNMP部署及应用

LNMP架构解读

LNMP平台就是Linux、Ngnix、 MySQL、 PHP的组合架
构,需要Linux服务器、MySQL 数据库、PHP解析环境

MySQL安装配置

为了与Nginx、PHP环境保持一致,此处选择采用源代码编译的方式安装MySQL组件
MySQL部署的方法
编译安装MySQL
优化调整
初始化数据库
启动mysql服务并设置root数据库账号的密码

配置网页动静分离,解析PHP,有两种方法可以选择
使用PHP的FPM模块将访问PHP页面的Web请求转交给Apache服务器去处理
较新版本的PHP已经自带FPM模块,用来对PHP解析实
例进行管理、优化解析效率
FastCGIl将Http Server和动态脚本语言分离开
Nginx专门处理静态请求,转发动态请求
PHP
FPM专门解析PHP动态请求
单服务器的LNMP架构通常使用FPM的方式来解析PHP

PHP编译安装步骤

编译安装PHP
编译选项时添加"--enable-fpm" 以启用此模块
安装后的调整,主要是配置文件的建立与相应命令工具的路径优化,安装ZendGuardLoader (提高PHP解析效率),并进行加载配置
调用本机的php-fpm进程配置方法
建立FPM配置文件php-fpm.conf,修改配置选项,如: PID文件运行用户、服务进程数等
启动php-fpm进程
在Nginx的配置文件中的server{ }配置段配置将PHP的网页请求转给FPM模块处理
在Nginx的配置文件中的Server{ }配置段配置将PHP的网页请求转给FPM模块处理
[root@localhost ~ ]# vim /usr/local/nginx/conf/nginx.conf
Server{

......
location ~ .php$ {
root
/var/www/kgc;
fastcgi pass 127.0.0.1:9000; //fpm端口号:9000
fastcgi index index.php;
include
fastcgi.conf;
......

Discuz
康盛创想(北京)科技有限公司推出的一套通用的社区论坛软件系
统,2001年6月面世以来,是全球成熟度最高、覆盖率最大的论
坛软件系统之-
PHPWind
PHPWind (简称: PW)是一-个基于PHP和MySQL的论坛程序
是国内最受欢迎的通用型论坛程序之一。PHPWind的前身是
ofstar,发布于2004年,PHPWind由杭州德天信息技术有限公
司开发,软件全面开源免费

WordPress
一种使用PHP语言开发的博客平台,用户可以在支持PHP和
MySQL数据库的服务器上架设自己的网志。也可以把
WordPress当作一个内容管理系统(CMS)来使用。
WordPress是一一个免费的开源项目,在GNU通用公共许可证下
授权发布
SKYUC
由天空网络历经多年开发的一个VOD视频点播系统,完美支持
QVOD、Webplayer9等流媒体软件

LNMP架构实战

一、远程挂载LNMP所需压缩软件包到本地

[root@localhost ~]# mkdir /abc //创建挂载点
[root@localhost ~]# mount.cifs //192.168.100.10/LAMP-C7 /mnt //将所需软件包远程挂载到本地/mnt目录下

二、编译安装Nginx

1、解压源码包到/opt目录下

[root@localhost ~]# cd /mnt //切换到挂载点目录
[root@localhost mnt]# ls
Discuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gz
mysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz
[root@localhost mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt //解压Nginx源码包到/opt下
[root@localhost mnt]# cd /opt/ //切换到解压的目录下
[root@localhost opt]# ls
nginx-1.12.2 rh

2、安装编译Nginx需要的环境组件包

[root@localhost opt]# yum -y install \
gcc \ //c语言
gcc-c++ \ //c++语言
pcre-devel \ //pcre语言工具
zlib-devel //数据压缩用的函式库

3、创建程序用户nginx并编译Nginx
[root@localhost opt]# useradd -M -s /sbin/nologin nginx //创建程序用户,安全不可登陆状态
[root@localhost opt]# id nginx
uid=1001(nginx) gid=1001(nginx) 组=1001(nginx)
[root@localhost opt]# cd nginx-1.12.0/ //切换到nginx目录下
[root@localhost nginx-1.12.0]# ./configure \ //配置nginx

--prefix=/usr/local/nginx \ //安装路径
--user=nginx \ //用户名
--group=nginx \ //用户组
--with-http_stub_status_module //状态统计模块

4、编译和安装

[root@localhost nginx-1.12.2]#make && make install

5、路径优化

[root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
//创建软连接让系统识别nginx启动脚本
[root@localhost nginx]# nginx -t //检查配置文件的语法问题
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost nginx]# nginx //开启ngnix
[root@localhost nginx]# netstat -ntap | grep 80 //查看端口,nginx已经开启
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 39620/nginx: master
[root@localhost nginx]# systemctl stop firewalld.service //关闭防火墙
[root@localhost nginx]# setenforce 0
[root@localhost nginx]# nginx //开启nginx 服务

[root@localhost nginx]# cd /etc/init.d/   //切换到启动配置文件目录
[root@localhost init.d]# ls
functions  netconsole  network  README
[root@localhost init.d]# vim nginx         //编辑启动脚本文件

    #!/bin/bash
    # chkconfig: - 99 20                                    //注释信息
    # description: Nginx Service Control Script
    PROG="/usr/local/nginx/sbin/nginx"           //设置变量为nginx命令文件
    PIDF="/usr/local/nginx/logs/nginx.pid"       //设置变量PID文件 进程号为5346
    case "$1" in  
        start)
            $PROG                                              //开启服务
            ;;
        stop)
            kill -s QUIT $(cat $PIDF)                    //关闭服务
            ;;
        restart)                                                  //重启服务
            $0 stop
            $0 start
            ;;
        reload)                                                  //重载服务
            kill -s HUP $(cat $PIDF)
            ;;
        *)                                                           //错误输入提示
                    echo "Usage: $0 {start|stop|restart|reload}"
                    exit 1
    esac
    exit 0
[root@localhost init.d]# chmod +x /etc/init.d/nginx    //授予启动脚本执行权限
[root@localhost init.d]# chkconfig --add nginx          //添加到service管理器
[root@localhost init.d]# service nginx stop                //使用service停止nginx服务
[root@localhost init.d]# service nginx start                //使用service启动nginx服务
[root@localhost ~]# vim /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 ~]# chmod 754 /lib/systemd/system/nginx.service     //设置执行权限
[root@localhost ~]# systemctl stop nginx.service       //关闭nginx 
[root@localhost ~]# systemctl start nginx.service       //开启nginx

三、安装MySQL

1、安装环境组件
[root@localhost ~]# yum install -y \ //安装环境组件

ncurses \
ncurese-devel \ //控制终端屏幕显示的库
bison \ //语法分析工具
cmake //cmake工具
[root@localhost ~]# useradd -s /sbin/nologin mysql //创建程序用户

2、解压源码包到/opt目录下

[root@localhost ~]# cd /mnt
[root@localhost mnt]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt   ##解压源码包到/opt
[root@localhost mnt]# cd /opt
[root@localhost opt]# ls
mysql-5.7.20  nginx-1.12.2  rh

3、cmake配置

[root@localhost opt]# cd mysql-5.7.20/       //切换到MySQL目录下
[root@localhost mysql-5.7.20]# cmake \     //cmake配置
-DCMAKE_INSTALL_PREFIX=/usr/localmysql \            //安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //定义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 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data \                 //数据库数据文件目录
-DWITH_BOOST=boost \                                               //底层运行库
-DWITH_SYSTEMD=1                                                   //主从参数

4、编译及安装

[root@localhost mysql-5.7.20]#make && make install

5、修改Mysql的配置文件

[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/   
//数据库目录进行权限调整
[root@localhost mysql-5.7.20]# vim /etc/my.cnf     
//调整配置文件

    [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      //设置mysql的安装目录
    datadir = /usr/local/mysql/data    //设置mysql数据库的数据的存放目录
    port = 3306                    //设置3306端口
    character_set_server=utf8            //中文字符集
    pid-file = /usr/local/mysql/mysqld.pid     //pid文件路径
    socket = /usr/local/mysql/mysql.sock     //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 mysql-5.7.20]# echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profile
    //将MySQL命令写到本地主机环境配置中
[root@localhost mysql-5.7.20]# echo ‘export PATH‘ >> /etc/profile   
     //设置全局环境配置
[root@localhost mysql-5.7.20]# source /etc/profile    
    //重启配置文件

6、初始化数据库
[root@localhost mysql-5.7.20]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \

--initialize-insecure \ ##初始化
--user=mysql \ ##用户
--basedir=/usr/local/mysql \ ##安装目录
--datadir=/usr/local/mysql/data ##数据库数据文件目录

7、将MySQL服务配置文件复制到/usr/lib/systemd/system/下便于使用systemctl管理

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ 
//便于systemctl管理
[root@localhost mysql]# systemctl enable mysqld   //开机自启动
[root@localhost mysql]# systemctl start mysqld.service     //开启数据库
[root@localhost mysql]# netstat -ntap | grep 3306              //查看MySQL端口号开启情况
tcp6  0  0 :::3306    :::*       LISTEN   59464/mysqld   

8、设置mysql密码

[root@localhost mysql]# mysqladmin -u root -p password
Enter password:               
New password:                 //新密码
Confirm new password:     //确认密码

四、编译安装PHP

1、安装环境依赖包

[root@localhost mysql]# yum install -y > libjpeg \                              //jpeg图片格式和开发包
> libjpeg-devel > libpng libpng-devel \           //png图片和开发包
> freetype freetype-devel \    //字体库
> libxml2 \                              //xml文件库
> libxml2-devel > zlib zlib-devel \                    //压缩库 
> curl curl-devel \                   //支持数据文件下载工具
> openssl openssl-devel        //安全访问连接

2、解压源码包到/opt目录下

[root@localhost mysql]# cd /abc   
[root@localhost abc]# tar jxvf php-7.1.10.tar.bz2 -C /opt    
[root@localhost abc]# cd /opt
[root@localhost opt]# ls   
mysql-5.7.20  nginx-1.12.2  php-7.1.10  rh

3、配置php参数

[root@localhost opt]# cd php-7.1.10/
[root@localhost php-7.1.10]# ./configure 
--prefix=/usr/local/php                        //安装路径
--with-mysql-sock=/usr/local/mysql/mysql.sock   ##连接文件建立通信桥梁
--with-mysqli                                    //客户端支持库
--with-zlib                                         //压缩
--with-curl                                        //支持上传下载功能
--with-gd                                          //gd图像支持图片处理库
--with-jpeg-dir                                  //jpeg
--with-png-dir                                   //png
--with-freetype-dir                            //字体
--with-openssl                                  //安全访问连接
--enable-fpm                                    //fpm支持动态请求模块
--enable-mbstring                            //支持多字节的字符串
--enable-xml                                    //xml文件
--enable-session                             //session支持会话
--enable-ftp                                     //ftp服务
--enable-pdo                                   //驱动连接管理
--enable-tokenizer                          //PHP自带函数
--enable-zip                                    //zip压缩包

4、编译及安装

[root@localhost php-7.1.10]# make && make install

5、配置核心配置文件
(php.ini核心配置文件,php-fpm.conf进程服务配置文件,www. conf 扩展配置文件 )

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini       //复制到安装目录lib库中
[root@localhost php-7.1.10]# vim /usr/local/php/lib/php.ini   //配置核心配置文件

mysqli.default_socket = /usr/local/mysql/mysql.sock     //默认连接文件
date.timezone = Asia/Shanghai                                      //时间

[root@localhost php-7.1.10]# /usr/local/php/bin/php -m   //验证安装的模块

6、配置及优化FPM模块

[root@localhost php-7.1.10]# cd /usr/local/php/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf   //优化复制默认进程服务配置文件
[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf   //优化复制扩展配置文件
[root@localhost php-fpm.d]# cd /usr/local/php/etc/  
[root@localhost etc]# vim php-fpm.conf      //开启fpm.pid进程
pid = run/php-fpm.pid
[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
[root@localhost etc]# netstat -ntap | grep 9000     //查看端口信息
tcp   0 0 127.0.0.1:9000   0.0.0.0:*    LISTEN   69104/php-fpm: mast 
[root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/   //创建软连接便于系统识别
[root@localhost etc]# ps aux | grep -c "php-fpm"
4

7、配置Nginx支持PHP功能

[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf    ##配置nginx配置文件
    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;
    }       
[root@localhost etc]# vim /usr/local/nginx/html/index.php               //测试php网页
<?php
phpinfo();
?>

[root@localhost etc]# nginx -s stop           //停止nginx服务
[root@localhost etc]# nginx                      //启动nginx服务

8、使用测试机测试网页
在浏览器输入http://192.168.35.134/index.php
技术图片

9、进入数据库创建bbs数据库并设置管理员和密码

[root@localhost etc]# mysql -u root -p
Enter password:      //进入数据库,密码为之前设定的abc23
mysql> CREATE DATABASE BBS;   //创建bbs数据库
Query OK, 1 row affected (0.00 sec)

mysql> GRANT all ON bbs.* TO ‘bbsusers‘@‘%‘ IDENTIFIED BY ‘admin123‘;  
//提权数据库用户bbsuser为管理员并设定密码
Query OK, 0 rows affected, 1 warning (0.00 sec)       

mysql> GRANT all ON bbs.* TO ‘bbsusers‘@‘localhost‘ IDENTIFIED BY ‘admin123‘;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;         //刷新数据库
Query OK, 0 rows affected (0.00 sec)

mysql> quit       //退出

[root@localhost etc]# vim /usr/local/nginx/html/index.php   //测试数据库连接状态
<?php
$link=mysqli_connect(‘192.168.131.129‘,‘bbsusers‘,‘admin123‘);
if($link) echo "<h1>Success!</h1>";
else echo "Fail!!";
?>
[root@localhost etc]# systemctl restart nginx.service     //重启服务

五、安装Discuz论坛

1、解压缩论坛包到/opt目录下,并将目录内容复制到bbs站点中

[root@localhost etc]# cd /mnt                      
[root@localhost mnt]# unzip  Discuz_X3.4_SC_UTF8.zip -d /opt    //解压到/opt下
[root@localhost mnt]# cd /opt
[root@localhost opt]# ls
dir_SC_UTF8  mysql-5.7.20  nginx-1.12.2  php-7.1.10  rh  说明.htm
[root@localhost opt]# cd dir_SC_UTF8/          //进入论坛目录
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/     
//复制/opt目录里的内容到html站点的bbs目录中

2、进入站点并给程序用户提权

[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/          //切入bbs站点目录
[root@localhost bbs]# chown -R root:nginx ./config/                   //提权程序用户提权
[root@localhost bbs]# chown -R root:nginx ./data/                     //修改nginx属组
[root@localhost bbs]# chown -R root:nginx ./uc_client/
[root@localhost bbs]# chown -R root:nginx ./uc_server/
[root@localhost bbs]# chmod -R 777 ./config/                            //修改所有权限
[root@localhost bbs]# chmod -R 777 ./data/
[root@localhost bbs]# chmod -R 777 ./uc_client/
[root@localhost bbs]# chmod -R 777 ./uc_server/

3、浏览器中输入192.168.131.129/bbs/install/index.php站点,进入Discuz论坛安装向导
技术图片

4、运行环境为全新安装
技术图片

5、安装数据库
技术图片

6、创建成功并访问论坛
技术图片

LNMP部署及应用理论及实操

标签:重启   blackhole   apache服务器   字体库   zip压缩   字节   支持php   netstat   本机   

原文地址:https://blog.51cto.com/14449528/2449548

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!