目录
一、LNMP架构部署思路
二、开始进行部署
2.1、安装依赖环境
2.2、安装Nginx服务
上传nginx安装包到opt目录下
进入到源码文件中,对其进行编译
解释安装
打开服务进行验证
将nginx添加为系统服务
2.3、安装MySQL服务
安装mysql的环境依赖包
创建运行用户(注意:不要加-M)
上传mysql安装包
解压编译安装
对数据库权限进行调整
调整配置文件
设置环境变量
初始化数据库
重启数据库密码
2.4、安装php中间件
取php安装包
解压安装包
第一步还是安装一些依赖软件
编译安装
扩展配置文件
配置及优化FPM模块
开启php服务
配置nginx让nginx支持PHP功能
测试数据库工作是否正常
2.6、LNMP应用部署
将应用包放到opt下
解压
登陆管理员界面
2.7、LNMP部署完成进行验证
管理后台的页面
论坛主页面
安装时的报错!!!
错误1:
错误2:
LNMP 指的是一个基于 CentOS/Debian 编写的 Nginx、Linux、MySQL、PHP,可以在独立主 机上轻松的安装 LNMP 生产环境。本案例主要介绍 LNMP 框架安装方法以及部署 Discuz!社 区论坛应用。
1、安装Nginx服务
2、安装MySQL服务
3、安装配置PHP解析环境
4、部署Discuz!社区论坛Web应用
虚拟机容量尽量大点(40g以上)
在安装前需要安装pcre、zlib等软件,因为nginx等软件的配置和允许需要
yum install -y gcc gcc-c++ make pcre pcre-devel expat-devel perl zlib zlib-devel
在安装前需要创建nginx的用户,以便更准确的控制其访问权限,增加灵活性,降低安全风险
useradd -M -s /sbin/nologin nginx
也可以去官网下载:http://nginx.org/
tar -zxvf nginx-1.15.9.tar.gz #对其进行解压
cd nginx-1.15.9/
./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module
prefix代表工作目录,决定软件在哪个工作目录
user 管理软件的用户
group 管理软件的组
--with 开启或集成 -http_stub_status_module 集成http协议请求的一些状态统计模块
这样就编译完成了
make && make install #解释安装
这样就成功了
我们进入到/usr/local下看一下
先不要启动,为了便于日后更好的允许,我们需要为其创建软连接,或者复制到/usr/local/sbin
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
到此nginx就安装成功了。
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
然后我们测试一下
但是在开启以前一定要前(nginx -s stop)
systemctl start nginx
就OK了
yum -y install \ ncurses \ #字符终端工具包 UTF-8 ncurses-devel \ bison \ #函数库 cmake
yum -y install ncurses ncurses-devel bison cmake
useradd -s /sbin/nologin mysql
cd mysql-5.7.20/ #进入源码包
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/usr/local/mysql \ -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
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装路径(目录)
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定通信文件,连接数据库,通讯协议的载体⭐⭐⭐
-DSYSCONFDIR=/etc \ #配置文件目录指向/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定pid目录文件
-DDEFAULT_CHARSET=utf8 \ #字符集设定
-DDEFAULT_COLLATION=utf8_general_ci \ #字符集设定
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #以下三行均为存储引擎ENGINE
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据存放位置
-DWITH_BOOST=boost \ #底层C++运营库 独立的表空间结构
-DWITH_SYSTEMD=1 #守护进程id 守护进程
——》跑在后台的一个支持服务正常运行的一个特殊进程
make && make install
整个过程会挺慢的,需要耐心等待
chown -R mysql:mysql /usr/local/mysql
vi /etc/my.cnf
将原有内容删除,替换下面内容
#删除原有内容,添加以下内容
[client] #client 用户程序
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql] #mysql 软件内容
port = 3306 #端口
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld] #以后对mysql配置时 更多的会针对于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 #PID文件目录
socket = /usr/local/mysql/mysql.sock #通讯文件
server-id = 1 #服务id,在之后的mysql集群中用于标识mysql服务器
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
#更改一下文件属性
chown mysql:mysql /etc/my.cnf
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
cd /usr/local/mysql
#进入目录
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#将mysql称为系统服务,这样就能使用systemctl去启动了
mysqladmin -u root -p password
登陆数据库查看一下
这样数据库就装完了
tar -jxvf php-7.1.10.tar.bz2
yum -y install \
libjpeg \ libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
#各个依赖功能
libjpeg \ #jpg图片依赖
libjpeg-devel \
libpng libpng-devel \ #png图片依赖
freetype freetype-devel \ #字体
libxml2 \ #支持xml
libxml2-devel \
zlib zlib-devel \ #压缩格式
curl curl-devel \ #识别url
openssl openssl-devel
##xml 支持扩展性标记语言,用于承载数据url 网址 openssl 安全性访问/加密访问
cd 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 \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
安装
make && make install
还是在/opt中php的源码文件中将php.ini-development复制到/usr/local/php/lib下
cp php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini #将下面的话复制进去
/1170行 mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
验证一下安装的模块
/usr/local/php/bin/php -m
这样就添加成功了
#复制主配置文件及php-fpm配置文件
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid #开启pid支持(可运行)
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini #启动php 这里的-c代表conf
netstat -anpt | grep 9000
这样就开启了
cd /usr/local/nginx/conf/
vim 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;
}
#注意下面的location也要添加
在去html目录下去创建一个.php的文件
vim /usr/local/nginx/html/index.php
然后重启,去查看这个网页
出现这个页面就是连接成功了
mysql -u root -p
这样就成功进入数据库内了
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
更改nginx中index.php中内容
vim /usr/local/nginx/html/index.php ###原来的测试页内容更改如下
Success!!";
else echo "Fail!!";
?>
再去测试一下
这样就说明与数据库连接成功了。
unzip Discuz_X3.4_SC_UTF8.zip -d /tmp #解压到tmp目录下
cd /tmp/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/
cd /usr/local/nginx/html/bbs/
chown -R root:nginx ./config/
chown -R root:nginx ./data/
chown -R root:nginx ./uc_client/
chown -R root:nginx ./uc_server/
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/
然后访问一下
192.168.130.156/bbs/install/index.php #这是安装页面
出现这个界面就是应用成功了
点击我同意进行下一步
继续下一步
这样就安装完成了,点击右下角访问
我们就会跳转到这个页面
登陆后页面出不来,我们只需要去删除这个软件
cd /usr/local/nginx/html/bbs/
mv install/ install.lock
chmod 600 install.lock/
然后我们刷新一下页面
到此配置完成
192.168.130.156/bbs/admin.php #这是后台管理页面
192.168.130.156/bbs/index.php
在安装的时候会报错
-- Configuring incomplete, errors occurred!
See also "/opt/mysql-5.7.20/CMakeFiles/CMakeOutput.log".
See also "/opt/mysql-5.7.20/CMakeFiles/CMakeError.log".
这是因为我们缺少一些编译软件,所以在安装时一定要将依赖的环境软件安装全
yum -y install ncurses ncurses-devel bison cmake gcc gcc-c++
再次进入源码包暗处缓存文件就行
cd mysql-5.7.20/ #进入源码包
rm -rf CMakeCache.txt
然后再次编译就行
问题解决!
当我们初始化数据库的时候,可能会报这个错
这个问题很好解决
我们进入MySQL的文件
将data文件删除,再次初始化问题就能得到解决