LNMP网站服务器部署

LNMP网站服务器部署LNMP 架构是目前成熟的企业网站应用模式之一 指的是协同工作的一整套系统和相关软件 能够提供动态 Web 站点服务及其应用开发环境

大家好,欢迎来到IT知识分享网。

目录

一.LNMP介绍

二.yum相关

三.nginx部署

四.MySQL部署

五.PHP部署

六.测试PHP访问MySQL

七.部署Discuz

————————————————————-

一.LNMP介绍

LNMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和 相关软件,能够提供动态 Web 站点服务及其应用开发环境。LNMP 是一个缩写词,具 体包括 Linux 操作系统、Nginx网站服务器、MySQL 数据库服务器、PHP(或 Perl、 Python)网页编程语言。本章将以源码编译的方式搭建 LNMP 环境,能够满足企业定 制化的需求。在构建 LNMP 平台时,各组件的安装顺序依次为 Linux、Nginx、MySQL、PHP。 其中 Nginx 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后, 负责沟通 Web 服务器和数据库系统以协同工作。

相关安装包下载地址:

  • nginx:
    • nginx: download
  • mysql8(with boost):
    • https://cdn.mysql.com//Downloads/MySQL-8.1/mysql-boost-8.1.0.tar.gz
    • https://cdn.mysql.com//Downloads/MySQL-8.2/mysql-boost-8.2.0.tar.gz
  • php8
    • https://www.php.net/distributions/php-8.2.3.tar.gz
  • cmake:
    • Index of /files
  • libzip
    • https://libzip.org/download/libzip-1.3.2.tar.gz

二.yum相关

准备yum源(yum没有问题的可以跳过此步骤)

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo [root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo [root@localhost ~]# yum makecache && yum clean all

如果 yum 报错: Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

# 重命名原来的文件 cd /etc/yum.repos.d/ mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak # 编辑文件 vim CentOS-SCLo-rh.repo # 内容如下 [centos-sclo-rh] name=CentOS-7 - SCLo rh baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

三.nginx部署

安装依赖包

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

 创建nginx用户

useradd -M -s /sbin/nologin nginx

安装Nginx 

#解压 #这里压缩包默认都放在/opt目录 tar xf nginx-1.26.1.tar.gz -C /opt/ cd /opt/nginx-1.26.1 #配置 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module #编译安装 make -j 2 && make install

 创建软连接,方便管理

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

创建服务

vim /usr/lib/systemd/system/nginx.service # 编辑内容如下: [Unit] Description=nginx After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target

 刷新系统服务,启动Nginx

systemctl daemon-reload systemctl start nginx systemctl enable nginx # firewall firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload

 在浏览器输入IP地址进行访问
LNMP网站服务器部署

四.MySQL部署

这里我们以MySQL5.7为例

安装依赖包

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

创建用户

# 不创建数据库用户的目录,s指定权限 useradd -M -s /sbin/nologin mysql

 解压安装包

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

 配置,编译,安装
 

cd /opt/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_EXTRA_CHARSETS=all \ -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
#也可以把2改成更大的数加快速度,但要根据你的虚拟机配置保持一致 make -j2 && make install

 mysql 配置文件

vim /etc/my.cnf # 内容如下 [client] port = 3306 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 bind-address = 0.0.0.0 skip-name-resolve max_connections=2048 default-storage-engine=INNODB max_allowed_packet=16M 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

 更改目录和配置文件属性

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

 环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$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/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ # 重新加载系统服务 systemctl daemon-reload # 启动mysql systemctl start mysqld.service systemctl enable mysqld.service

MySQL的root用户相关

mysqladmin -u root -p password "" # 直接回车 mysql -u root -p # 查看是否创建成功数据库 mysql> show databases; # 开启root远程登录权限 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;

设置防火墙

firewall-cmd --zone=public --add-service=mysql --permanent firewall-cmd --reload

五.PHP部署

安装依赖包

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

 解压、配置、编译、安装

# 如果当前虚拟机没有bzip2的话要先用 yum -y install bzip2 下载解压软件bzip2 cd /opt tar -xf php-7.1.10.tar.bz2 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 -j2 && make install

 软连接,验证安装的模块

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

php配置文件

  • php用 ; 做注释
  • php有三个配置文件:
    • php.ini 主配置文件
    • php-fpm.conf 进程服务配置文件(进程配置打开)
    • www.conf 扩展配置文件(一般开发使用)

修改 php.ini

# 复制 php.ini cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini # 编辑 vim /usr/local/php/lib/php.ini # 939行 修改时区 date.timezone = Asia/Shanghai # 1170行 和mysql数据库进行网络通信 mysqli.default_socket = /usr/local/mysql/mysql.sock

修改 php-fpm.conf

# 复制 php-fpm.conf cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf # 编辑 vim php-fpm.conf # 17行去掉 ; 注释, pid = run/php-fpm.pid

 www.conf

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

启动 php-fpm

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

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini netstat -anpt | grep 9000

 添加 php-fpm 系统服务

#添加service文件 cd /opt/php-7.1.10/sapi/fpm cp php-fpm.service /usr/lib/systemd/system/php-fpm.service # 重启服务 systemctl restart php-fpm.service systemctl enable php-fpm.service

 Nginx 支持 php 解析

# 修改主配置
vim /usr/local/nginx/conf/nginx.conf

# 65行--取消注释,修改
location ~ \.php$ {
    #指定默认路径/usr/local
	root           html;
	#解析的本地地址
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	#将 /scripts 修改为nginx的工作目录
	fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;	
	#$document_root 代表当前请求在root指令中指定的值
    #fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  
	include        fastcgi_params;
}

#完成后要重启Nginx服务
systemctl restart nginx.service

 测试php页

vim /usr/local/nginx/html/index.php

# 以下内容
<?php
phpinfo();
?>

浏览器访问出现该页面
 LNMP网站服务器部署

六.测试PHP访问MySQL

创建bbs数据库和用户

mysql -uroot -p mysql> CREATE DATABASE bbs; mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123'; mysql> flush privileges;

 编写PHP

vim /usr/local/nginx/html/index.php

#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.9.3','bbsuser','admin123');
if($link) echo "<h1>success</h1>";
else echo "fail";
?>

浏览器访问
 LNMP网站服务器部署

七.部署Discuz

 解压,复制网站

# yum -y install unzip

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

chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

#网页访问
http://192.168.9.3/bbs/install/index.php

安装完毕,网页访问

# 前端 http://192.168.9.3/bbs/index.php # 后台 http://192.168.9.3/bbs/admin.php

LNMP网站服务器部署

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128937.html

(0)
上一篇 2025-08-27 21:26
下一篇 2025-08-27 21:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信