欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > lnmp+discuz论坛

lnmp+discuz论坛

2024/12/22 0:20:28 来源:https://blog.csdn.net/pikaqiuu11/article/details/144337725  浏览:    关键词:lnmp+discuz论坛

nginx的优化

1、隐藏版本号

方法1:http{

server_tokens off

}

方法2: 仅限于编译安装

vim /srv/code/nginx.h (修改源码文件)

重新编译./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

server_tokens off

2、nginx日志分割(nginx本身没有设计日志分割的工具,运维人员自己进行处理)

使用shell脚本实现日志分割

#! /bin/bash
d=$(date +%Y-%m-%d)
#直接获取当前的日期dir="/usr/local/nginx/logs"
#获取日志目录所在的位置logs_access='/usr/local/nginx/logs/access.log'
logs_error='/usr/local/nginx/logs/error.log'
#定义需要分割的日志文件pid file='/usr/local/nginx/run/nginx.pid'
#定义pid文件的位置if [ ! -d "$dir" ]
then 
mkdir -p $dir
fimv ${logs_access} ${dir}/access_${d}.log
mv ${logs_access} ${dir}/access_${d}.logkill -USR1 $(cat ${pid_file})
#-USR1,通过发送USR1这个信号给nginx的主进程,让nginx重新生成access.log和error.log#日志清理,清理30天以前的日志
find $dir -mtime +30 -exec rm -rf {} \;

lnmp+discuz论坛

lnmp整个论坛架构的主体

l linux作为操作系统

n nginx作为前端页面

m mysql 数据库 账号密码等等都是保存在这个数据库里面

p php .....nginx擅长处理的是静态页面,页面登陆账户,需要请求数据库

实验过程

编译安装 php中间件 mysql数据库 和Discuz论坛

第一步,编译安装mysql数据库

apt -y install libaio1 libncurses5

useradd -s /sbin/nologin mysql 创建mysql程序用户

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

vim /etc/my.cnf

这段代码是一个MySQL配置文件的片段,通常命名为my.cnfmy.ini,用于配置MySQL服务器和客户端的参数。以下是对各个配置项的解释:

[client] 部分

  • port = 3306: 指定MySQL客户端连接的端口号为3306。
  • socket=/usr/local/mysql/mysql.sock: 指定MySQL客户端使用的Unix套接字文件路径。(在MySQL的上下文中,socket文件用于MySQL服务器和客户端之间的本地通信。当客户端连接到服务器时,它们可以通过这个socket文件交换数据,而无需通过网络协议进行通信。这可以提高性能,因为Unix域套接字通常比网络套接字更快。)

[mysqld] 部分

  • user = mysql: 指定MySQL服务器进程运行的用户为mysql
  • basedir=/usr/local/mysql: 指定MySQL安装目录的路径。
  • datadir=/usr/local/mysql/data: 指定MySQL数据存储目录的路径。
  • port = 3306: 指定MySQL服务器监听的端口号为3306。
  • character-set-server=utf8: 设置服务器的默认字符集为UTF-8。
  • pid-file = /usr/local/mysql/mysqld.pid: 指定MySQL服务器进程ID文件的路径。
  • socket=/usr/local/mysql/mysql.sock: 指定MySQL服务器使用的Unix套接字文件路径。
  • bind-address = 0.0.0.0: 指定MySQL服务器监听所有IP地址(允许远程连接)。
  • skip-name-resolve: 禁用DNS解析,使用IP地址进行主机名解析。
  • max_connections=2048: 设置MySQL服务器允许的最大连接数为2048。
  • default-storage-engine=INNODB: 设置默认的存储引擎为InnoDB。
  • max_allowed_packet=16M: 设置MySQL服务器允许的最大数据包大小为16MB。
  • server-id = 1: 设置MySQL服务器的ID,通常用于主从复制配置。
  • sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION: 设置SQL模式,定义MySQL服务器如何处理SQL语句。具体模式解释如下:
    • STRICT_TRANS_TABLES: 在事务表中启用严格模式。
    • NO_ZERO_IN_DATE: 禁止在日期中使用零值(如'0000-00-00')。
    • NO_ZERO_DATE: 禁止使用零日期。
    • ERROR_FOR_DIVISION_BY_ZERO: 在除以零时抛出错误。
    • NO_ENGINE_SUBSTITUTION: 禁止在创建表时使用备用存储引擎。

这些配置项用于控制MySQL服务器的行为和性能,确保其能够按照预期运行并提供所需的功能。

chown mysql.mysql -R /etc/my.cnf

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

source /etc/profile

support-files文件夹包含了一些辅助文件和脚本,这些文件和脚本可以帮助用户管理和配置MySQL服务器

mysql.server脚本被复制到了/etc/init.d/mysqld,这通常是为了将MySQL服务器的启动和停止脚本添加到系统的服务管理中,使其可以通过系统服务命令(如servicesystemctl)来启动和停止MySQL服务器

cp mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

systemctl daemon-reload

systemctl restart mysqld

mysqladmin -u root -p password “123456”(这条命令使用mysqladmin工具为MySQL的root用户设置密码为“123456”)

mysql -u root -p123456 (这条命令使用新设置的密码连接到MySQL服务器)

create user 'root'@'%' identified by '123456'(这条命令创建了一个新的MySQL用户root,允许从任何主机%连接,并设置密码为‘123456’)

grant all privilenges on *.* to 'root'@'%';(这条SQL命令授予新创建的用户root所有权限,允许其对所有数据库和表进行操作)

flush privileges(这条命令刷新MySQL的权限系统,使得权限更改立即生效)

alter user 'root'@'%' identified with mysql_native_password by '123456';(插件进行身份验证,这是更高版本的身份验证插件)

tips:源码包和安装包

安装包是编译好的二进制文件,源码包是需要编译安装后才能运行

安装php中间件

apt-get install -y libgd-dev libjpeg8-dev libpng-dev libfreetype6-dev libxml2-dev zlib1g-dev libcurl4-openssl-dev libssl-dev libonig-dev libsqlite3-dev(安装依赖环境)

groupadd nobody (创建一个nobody组)

./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-pdo-mysql \
--with-openssl \
--with-sqlite-devel \
--with-oniguruma-devel \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

make -j 4 && make install (编译安装)

ln -s /usr/local/php/bin/* /usr/local/bin/  (创建软链接) 

ln -s /usr/local/php/sbin/* /usr/local/sbin/ (创建软链接)

php的三个配置文件

这三个文件都是与PHP相关的配置文件,它们各自有不同的作用和配置内容。

php.ini

  • 作用php.ini是PHP的全局配置文件,它包含了PHP运行时的各种设置,如错误报告级别、内存限制、文件上传大小限制等。
  • 位置:通常位于PHP的安装目录下,或者在系统的PATH环境变量中。
  • 配置项示例
    error_reporting = E_ALL & ~E_NOTICE
    memory_limit = 128M
    upload_max_filesize = 2M

php-fpm.conf

  • 作用php-fpm.conf是PHP-FPM(PHP FastCGI Process Manager)的主配置文件,它包含了PHP-FPM的全局设置,如进程管理器的配置、进程数、日志文件位置等。
  • 位置:通常位于PHP-FPM的安装目录下的conf文件夹中。
  • 配置项示例
    pid = /run/php-fpm/php-fpm.pid
    error_log = /var/log/php-fpm/error.log
    pm = dynamic
    pm.max_children = 5
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3

http://www.conf

  • 作用www.conf是PHP-FPM的池配置文件,它定义了一个或多个PHP-FPM进程池,每个进程池可以有不同的配置,如监听地址、用户和组、进程数等。
  • 位置:通常位于PHP-FPM的安装目录下的conf文件夹中。
  • 配置项示例
listen = 127.0.0.1:9000
user = www-data
group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

cp /opt/php/php.ini-development /usr/local/php/lib/php.ini

cd /usr/local/php/lib

vim php.ini(修改全局配置文件)

修改时区

设置mysql的接口文件

vim php-fpm.conf 修改主配置文件

cd /usr/local/php/etc/php-fqm.d

cp www.conf.default www.conf

/usr/local/php/sbin/php-fpm(是一个fastcgi的管理工具,nginx的动态请求是由php-fpm来处理) -c /usr/local/php/lib/php.ini(启动php-fpm并指定php.ini作为php的配置文件)

netstat -antp | grep 9000(查看是否启动)

修改 /usr/local/php/etc/php-fpm.conf


systemctl restart php-fpm

第三步,设置nginx

cp /usr/local/nginx/conf/nginx.conf xx.bak设置备份

修改配置文件

mysql -u root -p123456

第四步 创建论坛

成功

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com