LNMP&论坛搭建

LNMP&论坛搭建

环境准备(Centos8)

关闭防火墙和SElinux
systemctl stop firewalld.service 
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
配置yum源rpel源
cd /etc/yum.repos.d/
rm -rf *
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
yum clean all 
下载nginx
wget https://nginx.org/download/nginx-1.22.1.tar.gz
tar -xf nginx-1.22.1.tar.gz      //解压
创建系统用户nginx
useradd -r -s /sbin/nologin -M nginx      //创建nginx用户
安装依赖包
yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++
创建日志存放目录
mkdir -p /var/log/nginx
chown nginx.nginx /var/log/nginx     //修改所有者和所属组
编译安装
cd nginx-1.22.1/
cd nginx-1.22.1/
./configure 
--prefix=/usr/local/nginx           //指定安装路径 
--user=nginx                        //指定用户
--group=nginx                       //指定用户主 
--with-debug                        //启用调试日志。
--with-http_ssl_module              //启用 HTTPS 协议支持,需要 OpenSSL 库。默认情况下未构建此模块。
--with-http_realip_module           //启用 ngx_http_realip_module 模块的功能,该模块将客户端地址更改为在指定的 "header " 字段中发送的地址。默认情况下未构建此模块。
--with-http_image_filter_module     //启用 ngx_http_image_filter_module 模块,该模块可以转换 JPEG,GIF,PNG 和 WebP 格式的图像。构建和运行此模块需要 libgd 库。默认情况下未构建此模块
--with-http_gunzip_module           //对于不支持 “gzip” 的客户端,启用 ngx_http_gunzip_module 模块,使用 “Content-Encoding: gzip” 解压缩响应。默认情况下未构建此模块。
--with-http_gzip_static_module      //启用 ngx_http_gzip_static_module 模块,该模块支持发送扩展名为 “.gz” 的预压缩文件,而不是常规文件。默认情况下未构建此模块
--with-http_stub_status_module      //启用 ngx_http_stub_status_module 模块,该模块提供对基本状态信息的访问。默认情况下未构建此模块
--http-log-path=/var/log/nginx/access.log   //HTTP 服务器的主请求日志文件的名称。默认值:<prefix>/logs/access.log。安装后,可以使用 nginx.conf 中的 access_log 指令更改。
--error-log-path=/var/log/nginx/error.log   //错误日志文件的名称。默认值:<prefix>/logs/error.log。安装后,可以使用 nginx.conf 中的 error_log 指令更改
make -j $(grep 'processor' /proc/cpuinfo | wc -l) && make install
配置环境变量
echo 'export PATH=/usr/local/nginx/sbin:$PATH' >/etc/profile.d/nginx.sh
source /etc/profile.d/nginx.sh   
启动服务
nginx 
ss -antl
State         Recv-Q        Send-Q                Local Address:Port                 Peer Address:Port        Process        
LISTEN        0             128                         0.0.0.0:80                        0.0.0.0:*                          
LISTEN        0             128                         0.0.0.0:22                        0.0.0.0:*                          
LISTEN        0             128                            [::]:22                           [::]:*                          
安装Mysql

安装依赖项

yum -y install gcc gcc-c++ pcre-devel openssl openssl-devel zlib-devel ncurses cmake make bison ncurses* 

下载二进制包

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

创建用户和组

groupadd -r mysql
useradd -M -s /sbin/nologin -g mysql mysql

解压

tar -xf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

创建软连接

mv mysql-5.7.43-linux-glibc2.12-x86_64 /usr/local/
cd /usr/local/
ln -s mysql-5.7.43-linux-glibc2.12-x86_64/ /usr/local/mysql

修改权限

chown -R mysql.mysql /usr/local/mysql

配置环境变量

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

建立数据存放目录

mkdir /opt/data
chown -R mysql.mysql /opt/data/

初始化数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/   //会生成一个临时密码

创建配置文件

vim /etc/my.cnf
[ysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

配置服务启动脚本

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld

启动mysql

/etc/init.d/mysqld start

修改密码

/usr/local/mysql/bin/mysql -uroot -p
set password = password ('555555');
安装PHP

安装依赖项

yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel  pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel libcurl-devel.x86_64
安装8.0版本时依赖项版本级别可能不够,可能需要安装一下几项 
sqlite* libxml* bzip* readline-devel
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz 
tar -zxf oniguruma-6.9.4.tar.gz
./autogen.sh && ./configure --prefix=/usr 
make && make install 

下载并且编译安装

wget https://www.php.net/distributions/php-8.2.11.tar.gz
tar -xf php-8.2.11.tar.gz
./configure --prefix=/usr/local/php7  --with-config-file-path=/etc --enable-fpm --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-openssl --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --enable-exif  --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --with-gettext --enable-json --enable-mbstring --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-readline --enable-shmop --enable-simplexml --enable-sockets --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-pcntl --enable-posix
make -j $(cat /proc/cpuinfo |grep processor|wc -l)
make install

配置环境变量

echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh
source /etc/profile.d/php7.sh

配置php-fpm

cp php.ini-production /etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

编辑php-fpm的配置文件(/usr/local/php7/etc/php-fpm.conf):

pm.max_children = 50    ;最多同时提供50个进程提供50个并发服务
pm.start_servers = 5    ;启动时启动5个进程
pm.min_spare_servers = 2    ;最小空闲进程数
pm.max_spare_servers = 8    ;最大空闲进程数

修改php配置文件

user=nginx 
group=nginx

修改nginx配置文件;使nginx支持php

vim /etc/nginx/conf.d/default.conf
//第10行;添加php格式的主页
index index.html index.htm index.php;
//30~36行;配置php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
include fastcgi_params;
}

修改root根目录路径
把fastcgi_param中的/scripts改成$document_root(引用刚才设置的根目录路径)

配置php
vim /etc/php.ini
#修改PHP配置文件
//359行;修改;隐藏php版本
expose_php = Off
//202行;修改;支持php短标签
short_open_tag = On

//以下为zabbix配置要求,数值可以大于但不能小于,不然后面验证不通过
//368行;修改;执行时间
max_execution_time = 300
//378行;修改;接收数据等待时间
max_input_time = 300
//389;每个脚本占用内存
memory_limit = 128M
//656;修改;Post数据大小
post_max_size = 16M
//799;下载文件大小
upload_max_filesize = 2M
//800;添加;可以用$HTTP_RAW_POST_DATA 接受post raw data
always_populate_raw_post_data= -1
/877;取消注释,添加;指定时区
date.timezone = Asia/Shanghai

测试php首页

vim /usr/local/nginx/html/info.php
<?php
  phpinfo();
?>

启动php-fpm

service php-fpm start

数据库授权

create database bbs;
grant all on bbs.* to 'bbsuser'@'%' identified by '555555'
flush privileges;

安装论坛

cd /use/local/nginx/html 
wgethttps://foruda.gitee.com/attach_file/1696180979264216471/discuz_x3.5_sc_utf8_20231001.zip?token=e440b981136ce9f16e05347f62ae4eee&ts=1697700563&attname=Discuz_X3.5_SC_UTF8_20231001.zip
unzip Discuz_X3.5_SC_UTF8_20231001.zip 
cd upload 
chmod -R a+w config/ data/ uc_server/ uc_client/    //授权

登录web窗口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值