LNMP搭建:Linux+Nginx+MySQL+PHP

news2025/4/24 7:56:16

关闭防火墙和核心防护,使用一台机器Node1搭建LNMP

systemctl stop firewalld; setenforce 0

所需源码包:可以去官网下载

编译Nginx

创建/data,在/data/下放源码包

[root@Node1 ~]#:mkdir /data;cd /data

安装依赖包

[root@Node1 data]#:yum -y install pcre-devel zlib-devel gcc gcc-c++ makeyum -y install pcre-devel zlib-devel gcc gcc-c++ make

nginx安装包

[root@Node1 data]#:ls
nginx-1.22.0.tar.gz

[root@Node1 data]#:tar xf nginx-1.22.0.tar.gz 
[root@Node1 data]#:ls
nginx-1.22.0  nginx-1.22.0.tar.gz

创建运行用户

useradd -M -s /sbin/nologin nginx

编译安装

[root@Node1 data]#:cd nginx-1.22.0

[root@Node1 nginx-1.22.0]#:./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module

[root@Node1 nginx-1.22.0]#:make -j2 && make install

软链接

[root@Node1 nginx-1.22.0]#:ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

自启动文件

[root@Node1 nginx-1.22.0]#:tee /lib/systemd/system/nginx.service   <<eof
> [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 -1 $MAINPID
> ExecStop=/bin/kill -3 $MAINPID
> PrivateTmp=true
> [Install]
> WantedBy=multi-user.target
> eof
[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 -1 $MAINPID
ExecStop=/bin/kill -3 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

重新加载和启动nginx

[root@Node1 system]#:systemctl daemon-reload
[root@Node1 system]#:systemctl start nginx

yum安装MySQL

源文件

[root@Node1 data]#:tee /etc/yum.repos.d/mysql.repo <<EOF
> [mysql57-community]
> name=MySQL 5.7 Community Server
> baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
> enabled=1
> gpgcheck=0
> EOF

yum社区办数据库

[root@Node1 data]#:yum -y install mysql-community-server

启动mysql

[root@Node1 data]#:systemctl start mysqld

过滤密码登录mysql

[root@Node1 data]#:grep password /var/log/mysqld.log
2024-06-14T08:27:11.808743Z 1 [Note] A temporary password is generated for root@localhost: ev-lAgi)K2Z2

最后的就是密码,包括特殊符号:ev-lAgi)K2Z2

登录数据库,密码策略改密码

[root@Node1 data]#:mysql -uroot -p"ev-lAgi)K2Z2"

···

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> alter user root@'localhost' identified by 'Admin@123';               #修改密码
Query OK, 0 rows affected (0.00 sec)

Ctrl+D退出数据库

编译安装PHP

安装包准备

[root@Node1 data]#:ls
nginx-1.22.0  nginx-1.22.0.tar.gz  php-7.1.10.tar.bz2

[root@Node1 data]#:tar xf php-7.1.10.tar.bz2 
[root@Node1 data]#:ls
nginx-1.22.0  nginx-1.22.0.tar.gz  php-7.1.10  php-7.1.10.tar.bz2

安装依赖环境

[root@Node1 data]#: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

编译安装

[root@Node1 data]#:cd php-7.1.10/
[root@Node1 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@Node1 php-7.1.10]#:make -j2 && make install

软链接

[root@Node1 php-7.1.10]#:ln -s /usr/local/php/bin/* /usr/local/bin/
[root@Node1 php-7.1.10]#:ln -s /usr/local/php/sbin/* /usr/local/sbin/

修改三个php配置文件:php.ini主配置文件,php-fpm.conf进程服务配置文件,www.conf扩展配置文件

[root@Node1 php-7.1.10]#:cp /data/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini

vim /usr/local/php/lib/php.ini

mysqli.default_socket = /var/lib/mysql/mysql.sock   #1170行,定位命令行模式:1170G跳到1170行
date.timezone = Asia/Shanghai                            #939行,时区,上海

#修改第二个配置文件:
[root@Node1 php-7.1.10]#:cd /usr/local/php/etc/
[root@Node1 etc]#:cp -a php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
pid = run/php-fpm.pid            #开启第17行

#修改第三个配置文件:
[root@Node1 etc]#:cd /usr/local/php/etc/php-fpm.d/
[root@Node1 php-fpm.d]#:cp -a www.conf.default www.conf

#把这个php-fpm.service文件复制到/usr/lib/systemd/system/下
[root@Node1 php-fpm.d]#:cd /data/php-7.1.10/sapi/fpm/
[root@Node1 fpm]#:cp php-fpm.service /usr/lib/systemd/system/php-fpm.service

重新加载启动php

[root@Node1 fpm]#:systemctl daemon-reload

[root@Node1 fpm]#:systemctl restart php-fpm.service


可以测试一下,监听的是9000端口,发现已开启

[root@Node1 fpm]#:ss -natp | grep 9000
LISTEN     0      128    127.0.0.1:9000                     *:*                   users:(("php-fpm",pid=15513,fd=0),("php-fpm",pid=15512,fd=0),("php-fpm",pid=15511,fd=6))

配置nginx支持php解析

修改主配置文件设置路径和添加主页面

[root@Node1 fpm]#:vim /usr/local/nginx/conf/nginx.conf

 43         location / {
 44             root   html;
 45             index  index.html index.htm index.php;            #在45行后添加一个index.php文件
 46         }

 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;

#69行指定路径,去后端服务器的哪个目录下找php程序,比如论坛,博客安装程序
 70             include        fastcgi_params;
 71         }

重启并设置页面,在浏览器上访问验证

[root@Node1 fpm]#:nginx -s reload

[root@Node1 fpm]#:cd /usr/local/nginx/html

[root@Node1 html]#:vim index.php

<?php
phpinfo();
?>

在浏览器上访问:192.168.114.10/index.php。出现以下页面就算成功。

数据库的创建和用户的创建

[root@Node1 html]#:mysql -uroot -p"Admin@123"

···

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

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

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

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

ctrl + D退出

准备页面,并在浏览器测试

[root@Node1 html]#:vim /usr/local/nginx/html/index.php

<?php
$link=mysqli_connect('192.168.114.10','bbsuser','Admin@123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

浏览器测试:数据库连接成功!

安装论坛

源码包放在/data/下

[root@Node1 html]#:cd /data
[root@Node1 data]#:unzip Discuz_X3.4_SC_UTF8.zip

[root@Node1 data]#:ls
dir_SC_UTF8              nginx-1.22.0         php-7.1.10          说明.htm
Discuz_X3.4_SC_UTF8.zip  nginx-1.22.0.tar.gz  php-7.1.10.tar.bz2

[root@Node1 data]#:cp -r dir_SC_UTF8/upload/ /usr/local/nginx/html/bbs

修改论坛目录权限

[root@Node1 data]#:cd /usr/local/nginx/html/bbs/

[root@Node1 bbs]#:chown -R nobody ./config/
[root@Node1 bbs]#:chown -R nobody ./data/
[root@Node1 bbs]#:chown -R nobody ./uc_client/
[root@Node1 bbs]#:chown -R nobody ./uc_server/

在浏览器上访问数据库:192.168.114.10/bbs

点击我同意

 都是对钩,就是成功。点击下一步:

 默认全新安装,点击下一步

 数据库名bbs,数据库用户名bbsuser,数据库密码Admin@123,管理员密码123456,重复密码123456

点击下一步

 最后出现这个界面就是成功。

----end-----

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1823561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【STM32进阶笔记】GPIO端口

前段时间由于其他原因&#xff0c;专栏暂停更新了较长一段时间&#xff0c;现在恢复更新&#xff0c;争取继续为大家创造有价值的内容&#xff0c;期待大家的订阅关注&#xff0c;欢迎互相学习交流。 在STM32速成笔记系列专栏中其实已经对GPIO的一些必要知识进行了介绍&#xf…

华为数据驱动的企业数字化转型之路

华为数据驱动的企业数字化转型之路 数据驱动的数字化转型是企业未来发展的关键。通过构建完善的数据治理体系&#xff0c;包括差异化的数据管理、面向业务的信息架构、数据底座建设和自助数据服务&#xff0c;企业可以提升数据的利用效率和决策能力。本文将根据华为数据治理相…

查看电子磁盘ssd空间信息并释放zfs空间@FreeBSD

发现问题 在某宝买了一块32G的ssd电子盘&#xff0c;但是在FreeBSD里面使用df看到的空间较少&#xff0c;只有15G&#xff0c;一度怀疑是发错货了。不过自己清楚的记得swap分区还分了4G&#xff0c;这样铁定是大于16G的&#xff0c;应该是32G没错。但是少掉的那部分空间跑哪里…

程序员要学会偷懒--excel转建表语句

如下需求&#xff1a;一个复杂的统战系统&#xff0c;用户信息字段总共有26个sheet&#xff0c;54张小表&#xff0c;没有什么复杂的业务逻辑&#xff0c;纯增删改查。字段目测在1000个以上。建表54张。领导交待了一句这周末完成&#xff0c;我&#xff1f;&#xff1f;&#x…

吴恩达2022机器学习专项课程C2W3:2.25 理解方差和偏差(诊断方差偏差正则化偏差方案搭建性能学习曲线)

目录 引言名词替代影响模型偏差和方差的因素1.多项式阶数2.正则化参数 判断是否有高偏差或高方差1.方法一&#xff1a;建立性能基准水平2.方法二&#xff1a;建立学习曲线 总结 引言 机器学习系统开发的典型流程是从一个想法开始&#xff0c;然后训练模型。初次训练的结果通常…

java:spring使用【@ImportResource】导入一个xml里面定义的bean

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89434148 # 项目代码 【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-start…

220v转3v用多大电阻

在设计一个电压转换电路&#xff0c;将220V交流&#xff08;AC&#xff09;电压转换为3V直流&#xff08;DC&#xff09;电压时&#xff0c;我们需要考虑几个关键因素&#xff0c;包括安全、效率和电路的稳定性。AH8651是一款DC-DC转换器&#xff0c;通常用于将较高的输入电压转…

测试 halcon measure_projection 算子

期望结果完全相同&#xff0c;但是下面的测试结果和halcon的差值如下: [0.132838, 0.231991, 0.265157, 0.296903, 0.0998573, 0.165907, 0.230686, 0.130266, 0.0977104, 0.197109, 0.198173, 0.197086, 0.190943, 0.177665, 0.163521, 0.146541, 0.161362, 0.166666, 0.2281…

【GIS矢量切片】tippecanoe在Windows和CentOS中的安装

组件安装记录 背景介绍Windows下安装1、下载工具2、存放安装包3、进入DOS终端4、在终端执行命令5、下载程序6、放置源码7、修改配置信息8、编译9、测试10、参数说明瓦片输出瓦片描述和权属信息输入文件和图层名输入文件的并行处理输入文件的投影缩放级别瓦片分辨率CentOS 7安装…

图像的几何变换之平移

文章目录 前言需求代码运行结果图 前言 图像的几何变换是一个再基础不过的知识点&#xff0c;包括等距变换&#xff0c;相似变换&#xff0c;仿射变换和投影变换。图像的几何变换是指对图像的位置&#xff0c;尺寸&#xff0c;大小&#xff0c;形状和投影进行变换&#xff0c;…

Character Region Awareness for Text Detection论文学习

​1.首先将模型在Synth80k数据集上训练 Synth80k数据集是合成数据集&#xff0c;里面标注是使用单个字符的标注的&#xff0c;也就是这篇文章作者想要的标注的样子&#xff0c;但是大多数数据集是成堆标注的&#xff0c;也就是每行或者一堆字体被整体标注出来&#xff0c;作者…

AI对齐研究方法:建立一个足够对齐的人工智能系统,可以帮助我们解决所有其他对齐问题。 AI安全

与人类价值观保持一致&#xff0c;并遵循人类的意图。 找到一个无限可扩展的解决方案可能非常困难。相反&#xff0c;我们的目标是一种更务实的方法&#xff1a;建立和调整一个系统&#xff0c;该系统可以比人类更快、更好地调整研究进展。 使通用人工智能&#xff08;AGI&am…

2024年社会发展与城市规划国际会议(SDUP 2024)

2024年社会发展与城市规划国际会议&#xff08;SDUP 2024&#xff09; 2024 International Conference on Social Development and Urban Planning 【重要信息】 大会地点&#xff1a;杭州 大会官网&#xff1a;http://www.iacsdup.com 投稿邮箱&#xff1a;iacsdupsub-conf.co…

灾备建设中虚拟机细粒度恢复的含义及技术使用

灾备建设中为了考虑虚拟机恢复的效率与实际的用途&#xff0c;在恢复上出了普通的恢复虚拟机&#xff0c;也有其余的恢复功能&#xff0c;比如瞬时恢复&#xff0c;细粒度恢复等。这里谈的就是细粒度恢复。 首先细粒度恢复是什么&#xff0c;这个恢复可以恢复单个备份下来的文…

HCIA-Datacom H12-811 题库

LDP 邻居发现有不同的实现机制和规定&#xff0c;下面关于LDP 邻居发现的描述错误的是&#xff1a; A&#xff1a;LDP发现机制包括LDP基本发现机制和LDP扩展发现机制 B&#xff1a;LDP基本发现机制可以自动发现直连在同条链路上的LDP Peers C&#xff1a;LDP扩展发现机制够发现…

Golang:使用时会遇到的错误及解决方法详解

Go语言使用时常常会遇到的一些错误及解决方法&#xff0c;文中的示例代码讲解详细&#xff0c;感兴趣的小伙伴可以了解一下 1、go: go.mod file not found in current directory or any parent directory go mod init name 2、Failed to build the application: main.go:4:2:…

请求headers处理

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 有时在请求一个网页内容时&#xff0c;发现无论通过GET或者是POST以及其他请求方式&#xff0c;都会出现403错误。产生这种错误是由于该网页为了防止…

基于Pytorch框架的深度学习ConvNext神经网络宠物猫识别分类系统源码

第一步&#xff1a;准备数据 12种宠物猫类数据&#xff1a;self.class_indict ["阿比西尼猫", "豹猫", "伯曼猫", "孟买猫", "英国短毛猫", "埃及猫", "缅因猫", "波斯猫", "布偶猫&q…

ARM单片机使用CAN总线部署BootLoader

1.引言 1.1.单片机开发BootLoader意义 单片机开发BootLoader的原因主要与其在嵌入式系统中的关键作用有关。BootLoader是硬件启动的引导程序&#xff0c;它在操作系统内核或用户应用程序运行之前执行。以下是单片机开发BootLoader的主要原因&#xff1a; 初始化硬件设备&…

2024年春季学期《算法分析与设计》练习13

A:菱形图案 题目描述 KiKi学习了循环&#xff0c;BoBo老师给他出了一系列打印图案的练习&#xff0c;该任务是打印用“*”组成的菱形图案。 输入 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;。 输出 针对每行输入&#xff0c;输出用“*”组成的菱形&#xff0c;…