LNMP搭建及论坛搭建

这篇具有很好参考价值的文章主要介绍了LNMP搭建及论坛搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、LNMP

LNMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,
能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词,具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。


  1. L:(平台)Linux,作为LNMP架构的基础,提供用于支撑Web站点的操作系统,
    能够与其他三个组件提供更好的稳定性,兼容性(NMP组件也支持Windows、UNIX等平台)。
  2. N:(前台)nginx,nginx网站服务,提供前端的静态页面服务。同时具有代理,转发作用。转发后端请求,转发PHP;nginx没有处理动态资源的功能,但是有可以支持转发动态请求的模块。
  3. M:(后台)MySQL,MySQL关系型数据库,保存用户的账号和密码
  4. P:(中间连接)PHP,动态页面的编程语言,负责解释动态网页文件,和nginx以及数据库协同

 二、LNMP搭建

关闭防火墙和安全机制

LNMP搭建及论坛搭建,linux,运维,服务器

1. 安装 Nginx 服务

1.1 安装依赖环境

 yum -y install pcre-devel zlib-devel gcc gcc-c++ make

1.2 创建运行用户

useradd -M -s /sbin/nologin nginx

1.3 解源码包

cd /opt
tar zxvf nginx-1.22.0.tar.gz -C /opt/

 1.4 进入安装包,配置安装路径

cd nginx-1.22.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

LNMP搭建及论坛搭建,linux,运维,服务器

 1.5 编译安装

make -j 4 && make install  #-j 4 给4核,加快速度

1.6 优化路径 

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

1.7  添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service
[Unit]  #这个部分定义了服务单元的元数据
Description=nginx  #描述该服务单元的信息,描述为"nginx"
After=network.target  #定义服务单元所依赖的其他单元,这里表示服务需要在网络加载完成之后启动
[Service]  #这个部分定义了服务的运行配置
Type=forking  #指定服务的类型,这里是forking,表示服务是一个后台进程(通常是fork出子进程)
PIDFile=/usr/local/nginx/logs/nginx.pid #指定保存主进程ID的文件路径,Nginx将会把主进程ID写入这个文件,以便Systemd可以追踪和管理进程
ExecStart=/usr/local/nginx/sbin/nginx  #指定启动服务的命令。这里是启动Nginx的命令/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID  #指定重新加载配置的命令。当执行此命令时,Systemd将发送HUP信号给主进程,Nginx将重新加载配置文件
ExecStop=/bin/kill -s QUIT $MAINPID  #指定停止服务的命令。当执行此命令时,Systemd将发送QUIT信号给主进程,Nginx将优雅地停止服务
PrivateTmp=true  #将此项设置为true,表示为服务提供独立的临时目录
[Install]  #这个部分定义了服务的安装配置
WantedBy=multi-user.target  #指定服务所属的目标(target),这里是multi-user.target,表示服务在多用户模式下启动

 1.8 给Nginx系统服务文件设置权限

chmod 754 /lib/systemd/system/nginx.service

 1.9 启动nginx服务

systemctl start nginx.service

验证:

LNMP搭建及论坛搭建,linux,运维,服务器

2.安装 MySQL 服务

2.1  安装Mysql环境依赖包

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

2.2 创建运行用户

useradd -M -s /sbin/nologin  mysql

2.3 解源码包

cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz

2.4 进入安装包配置安装路径

cd /opt/mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \ #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \ #指定默认使用的字符集编码,如utf8
-DDEFAULT_COLLATION=utf8_general_ci \  #指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \  #安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据库文件的存储路径
-DWITH_BOOST=boost \ #指定boost的路径,
-DWITH_SYSTEMD=1 #生成便于systemctl管理的文件

2.5 编译安装

make -j 4 && make install

2.6 修改mysql配置文件

vim /etc/my.cnf
[client]
port = 3306 #客户端连接MySQL服务器使用的端口号,默认为3306。
socket=/usr/local/mysql/mysql.sock #客户端连接MySQL服务器使用的Unix socket文件路径,默认为/tmp/mysql.sock。在该配置文件中指定的路径是/usr/local/mysql/mysql.sock

[mysqld]
user = mysql #MySQL服务器运行时的用户名,一般设置为mysql
basedir=/usr/local/mysql #MySQL安装目录的路径
datadir=/usr/local/mysql/data #存放MySQL数据文件的路径
port = 3306 #MySQL服务器监听的端口号,默认为3306
character-set-server=utf8 #MySQL服务器使用的默认字符集,这里设置为UTF-8编码(utf8)
pid-file = /usr/local/mysql/mysqld.pid #保存MySQL服务器进程ID的文件路径,默认为/var/run/mysqld/mysqld.pid。在该配置文件中指定的路径是/usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock #MySQL服务器监听的Unix socket文件路径,默认为/tmp/mysql.sock。在该配置文件中指定的路径是/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0 #MySQL服务器绑定的IP地址,默认为127.0.0.1,这里设置为0.0.0.0表示允许任何IP地址访问MySQL服务器
skip-name-resolve #禁用DNS反向解析,可以提高性能,尤其是在有大量连接时
max_connections=2048 #MySQL服务器支持的最大并发连接数,默认为151,这里设置为2048
default-storage-engine=INNODB #设置默认的存储引擎为InnoDB
max_allowed_packet=16M #设置MySQL服务器接收的最大数据包大小,默认为4MB,这里设置为16MB
server-id = 1 #设置MySQL服务器的唯一ID,在主从复制设置中使用

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.7 更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

 2.8 设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	

source /etc/profile

2.9 初始化数据库

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

 2.10 添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

2.11 修改mysql 的登录密码

mysqladmin -u root -p password "123456"

 2.12 授权远程登录

mysql -u root -p
show databases;

grant all privileges on *.* to 'root'@'%' identified by '123456';        (有分号)
#授予root用户可以在所有终端远程登录,使用的密码是123456,并对所有数据库和所有表有操作权限

flush privileges; #刷新权限

2.13  连接数据库

LNMP搭建及论坛搭建,linux,运维,服务器

 LNMP搭建及论坛搭建,linux,运维,服务器

 LNMP搭建及论坛搭建,linux,运维,服务器

3.安装配置 PHP 解析环境

3.1 安装环境依赖包

yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

3.2 解源码包

cd /opt
tar jxvf php-7.1.10.tar.bz2

3.3 进入安装包,配置安装路径

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

3.4 编译安装

make -j 4 && make install

3.5 路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

 3.6 调整主配置文件

cp /opt/php-7.1.10/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
--939行--取消注释,修改
date.timezone = Asia/Shanghai

php -m                     #验证安装的模块

3.7  调整进程服务配置文件

cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid

 3.8  调整扩展配置文件

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

3.9 启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
##PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 
由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

netstat -anpt | grep 9000   #查看php服务端信息是否正确

cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service

3.10 配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
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;	#将 /scripts 修改为nginx的工作目录
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值
	include        fastcgi_params;
}

3.11  验证PHP 测试页

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

浏览器访问
http://192.168.247.30/index.php
3.12 验证数据库工作是否正常

mysql -u root -p
create database bbs;
show databases; #查看是否创建成功
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#GRANT: 这是授权语句的关键字,用于授予特定的权限给指定用户。
#all: 表示授予所有权限,包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP等。
#bbs.*: 这是指定数据库和表的位置,其中bbs表示数据库名,*表示所有表。
#因此,这个语句授予bbsuser用户在bbs数据库的所有表上的所有权限。
#'bbsuser'@'%': 这是授予权限的用户和主机的标识。'bbsuser'是用户名,'%'表示任何主机。
#所以,bbsuser用户可以从任何主机连接并拥有授予的权限。
#IDENTIFIED BY 'admin123': 这是设置bbsuser用户的密码为admin123,这样用户在连接时需要提供相应的密码。

GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
#这条语句与第一条类似,但是主机部分不同。'bbsuser'@'localhost'表示用户bbsuser只能从本地主机(即MySQL服务器所在的主机)连接,并拥有相同的权限。
#bbsuser用户被授予在bbs数据库的全部权限,允许从任何主机和本地主机连接MySQL服务器,并且密码为admin123.

flush privileges;

3.13 替换原来的测试页内容

vim /usr/local/nginx/html/index.php      		#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.247.10','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
#使用mysqli_connect()函数连接到MySQL数据库服务器。

#'192.168.247.10':表示MySQL服务器的IP地址。
#'bbsuser':表示要连接的MySQL用户。
#'admin123':表示MySQL用户的密码。
#如果连接成功,即$link不为空,就输出<h1>Success!!</h1>,显示"Success!!"这个标题。
#如果连接失败,即$link为空,就输出Fail!!,显示"Fail!!"这个信息。

浏览器访问
http://192.168.247.30/index.php

LNMP搭建及论坛搭建,linux,运维,服务器

 三、部署 Discuz!社区论坛 Web 应用

cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/

#调整论坛目录的权限:
cd /usr/local/nginx/html/bbs/
chown -R nginx ./config/
chown -R nginx ./data/
chown -R nginx ./uc_client/
chown -R nginx ./uc_server/
#或
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

论坛页面访问
http://192.168.247.10/bbs/install/index.php

LNMP搭建及论坛搭建,linux,运维,服务器

LNMP搭建及论坛搭建,linux,运维,服务器 

LNMP搭建及论坛搭建,linux,运维,服务器 

LNMP搭建及论坛搭建,linux,运维,服务器 

LNMP搭建及论坛搭建,linux,运维,服务器 

 文章来源地址https://www.toymoban.com/news/detail-625604.html

到了这里,关于LNMP搭建及论坛搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(74)
  • 【树莓派烤肉 001】从 0 开始用自己的树莓派搭建服务器:运维篇

    没错,我承认这个标题写的很好吃…… 话说我家里那只树莓派 4B 8GB 放了两年了,除了吃灰还是吃灰~ 于是我想用它做一些非同寻常的事情,比如搭服务器。之前建网站都是用的 GitHub Pages,这次我们整个真实的 LAMP 环境。话不多说,下面开始搭建运行环境~ (不用担心树莓派

    2024年02月09日
    浏览(38)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(92)
  • 基于SSM的服务器运维管理的论坛系统+98166(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,服务器运维管理的论坛系统当然也不能排除在外。服务器运维管理的论坛系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用 SSM技术构

    2024年01月16日
    浏览(57)
  • LNMP搭建及论坛搭建

    LNMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件, 能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词,具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。 L:(平台)Linux, 作为L

    2024年02月14日
    浏览(36)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(67)
  • 服务器之LNMP

    L:linux系统,操作系统。 N:nginx网站服务,前端,提供前端的静态页面服务。同时具有代理,转发的作用。 转发:主要是转发后端请求。转发到PHP。nginx没有处理动态资源的功能,他有可以支持转发动态请求的模块。 M:mysgl关系型数据库,保存用户账户密P:PHP动态页面的编程语言

    2024年02月14日
    浏览(40)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(82)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(98)
  • LNMP及论坛搭建

    目录 安装Nginx服务 1.安装依赖包 2.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限) 3.编译安装Nginx 4.优化路径 5.添加 Nginx 系统服务 安装 MySQL 服务 1、安装Mysql环境依赖包 2、创建运行用户 3、编译安装

    2024年02月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包