Linux--源码搭建LNMP架构及部署Discuz论坛

一:安装nginx

1.1:安装nginx环境所需的软件包

[root@192 ~]# yum install pcre-devel zlib-devel gcc gcc-c++ make -y

1.2:创建运行用户、组

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

1.3:解压压缩包,编译安装

[root@192 ~]# cd /opt
[root@192 opt]# rz -E
rz waiting to receive.
[root@192 opt]# ls
nginx-1.12.2.tar.gz  rh
[root@192 opt]# tar xzvf nginx-1.12.2.tar.gz 
[root@192 opt]# cd nginx-1.12.2/
[root@192 nginx-1.12.2]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@192 nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
[root@192 nginx-1.12.2]# make && make install

1.4:编写nginx的系统管理脚本

[root@192 ~]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Server]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@192 ~]# chmod 754 /lib/systemd/system/nginx.servic

1.5:优化执行路径

[root@192 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

1.5:启动服务

[root@192 nginx-1.12.2]# iptables -F
[root@192 nginx-1.12.2]# setenforce 0
[root@192 nginx-1.12.2]# systemctl start nginx.server
[root@192 nginx-1.12.2]# netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      11684/nginx: master 

二:安装MySQL

2.1:安装MySQL环境所需的软件包

[root@192 ~]# yum install ncurses ncurses-devel bison cmake -y

2.2:创建运行用户

[root@192 ~]# useradd -s /sbin/nologin mysql

2.3:解压压缩包、编译安装

[root@192 ~]# cd /opt
[root@192 opt]# rz -E
rz waiting to receive.
[root@192 opt]# ls
mysql-boost-5.7.20.tar.gz  nginx-1.12.2  nginx-1.12.2.tar.gz  rh
[root@192 opt]# tar xzvf mysql-boost-5.7.20.tar.gz 
[root@192 opt]# cd mysql-5.7.20/
[root@192 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
[root@192 mysql-5.7.20]# make && make install

2.4:对数据库目录进行权限调整

[root@192 mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/

2.5:修改配置文件

[root@192 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
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

2.6:设置环境变量

[root@192 mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@192 mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@192 mysql-5.7.20]# source /etc/profile

2.7:初始化数据库

[root@192 mysql-5.7.20]# cd /usr/local/mysql/
[root@192 mysql]# ls
bin  COPYING  COPYING-test  docs  include  lib  man  mysql-test  README  README-test  share  support-files  usr
[root@192 mysql]# bin/mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
#把服务交给systemd管理
[root@192 mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/

2.8:开启数据库服务

[root@192 mysql]# systemctl start mysqld.service 
[root@192 mysql]# netstat -antp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      83279/mysqld    

2.9:设置mysql密码

[root@192 mysql]# mysqladmin -u root -p password
Enter password:     #初始没密码直接回车
New password:     #输入密码
Confirm new password:    #确认密码
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

2.10:登录数据库

[root@192 mysql]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

三:安装PHP

3.1:安装PHP环境的依赖包

[root@192 mysql]# cd 
[root@192 ~]# yum -y install \
> libjpeg libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 libxml2-devel \
> zlib zlib-devel \
> curl curl-devel \
> openssl openssl-devel

3.2:解压压缩包、编译安装

[root@192 ~]# cd /opt
[root@192 opt]# rz -E
rz waiting to receive.
[root@192 opt]# ls
mysql-5.7.20  mysql-boost-5.7.20.tar.gz  nginx-1.12.2  nginx-1.12.2.tar.gz  php-7.1.10.tar.bz2  rh
[root@192 opt]# tar xjvf php-7.1.10.tar.bz2 
[root@192 opt]# cd php-7.1.10/
[root@192 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
[root@192 php-7.1.10]# make && make install

3.3:优化执行路径

[root@192 php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@192 php-7.1.10]# ln -s /usr/local/php/bin/* /usr/local/bin/

3.4:修改配置文件

[root@192 php-7.1.10]# vim /usr/local/php/lib/php.ini 
...
mysqli.default_socket =/usr/local/mysql/mysql.sock
date.timezone =Asia/Shanghai
...

3.5:配置及优化FPM模块

[root@192 php-7.1.10]# cd /usr/local/php/etc/
[root@192 etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d
[root@192 etc]# cp php-fpm.conf.default php-fpm.conf
[root@192 etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php-fpm.d
[root@192 etc]# vim php-fpm.conf
...
pid = run/php-fpm.pid  #取消此行注释
...
[root@192 etc]# cd /usr/local/php/etc/php-fpm.d/
[root@192 php-fpm.d]# ls
www.conf.default
[root@192 php-fpm.d]# cp www.conf.default www.conf

3.6:启动服务

[root@192 php-fpm.d]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
[root@192 php-fpm.d]# netstat -antp | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      93354/php-fpm: mast 

3.7:让nginx支持PHP功能

[root@192 php-fpm.d]# vim /usr/local/nginx/conf/nginx.conf
...
# 去掉65-71行的注释,修改69行的文件路径
 65         location ~ \.php$ {
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
 70             include        fastcgi_params;
 71         }
...

3.8:编写PHP的首页站点

[root@192 php-fpm.d]# cd /usr/local/nginx/html/
[root@192 html]# ls
50x.html  index.html
[root@192 html]# mv index.html index.php
[root@192 html]# vim index.php 
<?php
phpinfo();
?>

3.9:重启nginx服务,用宿主机访问验证

在这里插入图片描述
至此,整个LNMP架构搭建完成!

四:基于LNMP架构部署Discuz论坛

4.1:创建论坛数据库

mysql> CREATE DATABASE bbs;
Query OK, 1 row affected (0.03 sec)

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

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

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.2:安装论坛

[root@192 ~]# cd /opt
[root@192 opt]# rz -E
rz waiting to receive.
[root@192 opt]# ls
Discuz_X3.4_SC_UTF8.zip  mysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.10.tar.bz2
mysql-5.7.20             nginx-1.12.2               php-7.1.10           rh
[root@192 opt]# unzip Discuz_X3.4_SC_UTF8.zip 
[root@192 opt]# cd dir_SC_UTF8/
[root@192 dir_SC_UTF8]# ls
readme  upload  utility
[root@192 dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs
[root@192 dir_SC_UTF8]# cd /usr/local/nginx/html/bbs
# 更改权限
[root@192 upload]# chown -R root:nginx ./config/
[root@192 upload]# chown -R root:nginx ./data/
[root@192 upload]# chown -R root:nginx ./uc_client/
[root@192 upload]# chown -R root:nginx ./uc_server/
[root@192 upload]# chmod -R 777 ./config/
[root@192 upload]# chmod -R 777 ./data/
[root@192 upload]# chmod -R 777 ./uc_client/
[root@192 upload]# chmod -R 777 ./uc_server/

访问网址:http://192.168.209.134/bbs/install/index.php 安装论坛
在这里插入图片描述
在这里插入图片描述
安装好之后,访问http://192.168.209.134/bbs/index.php
在这里插入图片描述
论坛部署成功!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值