LNMP搭建:Linux+Nginx+MySQL+PHP

关闭防火墙和核心防护,使用一台机器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.mzph.cn/web/27445.shtml

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

相关文章

利用STM32F103驱动舵机的指南(使用HAL库)

利用STM32F103驱动舵机的指南&#xff08;使用HAL库&#xff09; 舵机是一种常用的执行器&#xff0c;可以在机器人、遥控模型、自动化装置等项目中用来进行角度控制。本文将介绍如何利用STM32F103微控制器&#xff0c;通过HAL库来驱动舵机。 硬件准备 STM32F103开发板&…

第一个SpringBoot程序

第一个SpringBoot程序 目录介绍 当我们创建了一个SpringBoot项目之后&#xff0c;会出现如下的目录结构 SpringBoot项⽬有两个主要的⽬录&#xff1a; src/main/java: Java源代码 src/main/resources:为静态资源或配置⽂件&#xff1a; /static&#xff1a;静态资源⽂件夹,⽐…

Spring Cloud Netflix 之 Ribbon

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言前言1、负载均衡1.1、服务端负载均衡1.2、客户端负载均衡 2、Ribbon实现服务…

python 多线程条件竞争利用失败print不显示的原因

如下脚本&#xff0c;利用php的PHP_SESSION_UPLOAD_PROGRESS条件竞争漏洞执行一直着没反应&#xff1a; import requests import threading import syssession requests.session() sess zzx url1 "http://192.168.50.162/a.php" flag # file后为phpsession的路径 …

大模型企业落地:制造业可以选择的应用场景

前言 在当今制造业快速发展的背景下&#xff0c;设备稳定运行对于企业的发展至关重要。然而&#xff0c;传统的设备维修模式已无法满足现代企业的需求。为此&#xff0c;引入智能化、数字化的设备维修解决方案成为必然趋势。本文将探讨如何利用大模型技术&#xff0c;构建企业…

智慧工厂人员定位系统的影响与前景展望

随着科技的不断发展&#xff0c;智能制造正在迅速崛起&#xff0c;而智慧工厂人员定位系统作为其中的重要组成部分&#xff0c;正在改变传统制造业的面貌。这一系统通过利用物联网、室内定位等技术手段&#xff0c;能够实时准确地追踪和监控工厂内人员的位置。那么&#xff0c;…

车路协同,大模型擂台赛,AI的新知识处理,AI与医学的未来

一支烟花社区官网&#xff1a;(更多内容) https://agifun.love 智源社区 车路协同多智能体协作大牛齐聚&#xff0c;ECCV24「协同智能」Workshop开启征稿啦 coop-intelligence 投稿量子位 | 公众号 QbitAI近年来&#xff0c;具身智能&#xff08;如自动驾驶和机器人等自主智…

数据采集项目2-业务数据同步

全量同步 每天都将业务数据库中的全部数据同步一份到数据仓库 全量同步采用DataX datax datax使用 执行 python /opt/module/datax/bin/datax.py /opt/module/datax/job/job.json 更多job.json配置文件在&#xff1a; 生成的DataX配置文件 java -jar datax-config-genera…

linux C语言 pthread多线程11错误 卡死

pthread新手坑&#xff0c;跟着网上直接写&#xff0c;pthread_create然后就让函数跑&#xff0c;跑完了直接在函数里面return。这个流程&#xff0c;小测试&#xff0c;一点毛病都没有&#xff0c;跑得贼溜。 但是客户拿去压测七天后&#xff0c;出现卡死的现象。分析后&…

Vue3 之 Pinia 核心概念(八)

核心概念 State&#xff1a;这是你的应用程序的状态&#xff0c;是一个响应式的对象。 Getters&#xff1a;类似于 Vuex 中的 getters&#xff0c;它们是基于 state 的计算属性。 Actions&#xff1a;类似于 Vuex 中的 mutations 和 actions&#xff0c;它们用于改变 state。但…

AI图书下载:《ChatGPT打造赚钱机器》

这本书《ChatGPT打造赚钱机器》&#xff08;ChatGPT Money Machine 2024 The Ultimate Chatbot Cheat Sheet&#xff09;是一本全面的指南&#xff0c;旨在帮助读者快速掌握如何利用ChatGPT等人工智能技术创造收益。 以下是各章节内容的总结&#xff1a; **引言** 介绍了人工智…

AI模型部署:Triton+TensorRT部署Bert文本向量化服务实践

前言 本篇介绍以Triton作为推理服务器&#xff0c;TensorRT作为推理后端&#xff0c;部署句嵌入向量模型m3e-base的工程方案和实现&#xff0c;句嵌入模型本质上是Bert结构&#xff0c;本案例可以推广到更一般的深度学习模型部署场景。 内容摘要 推理服务器和推理后端介绍Ten…

个人关于vuex的见解

前言 vuex是什么&#xff1f; Vuex 是 Vue.js 的官方状态管理库&#xff0c;专为 Vue.js 应用程序设计&#xff0c;用于在复杂的前端应用中集中管理状态。 Vuex 的重要性 集中管理&#xff1a;统一存储应用状态&#xff0c;简化复杂应用的状态逻辑。响应式更新&#xff1a;…

PostgreSQL下载地址

下载地址&#xff1a;PostgreSQL: File Browser

AI实践与学习6-RAG流程优化学习

背景 RAG流程很多细节优化点&#xff0c;助力AIGC。 内容 LangChain在RAG功能上的一些能力 多路向量检索 多向量检索器的核心想法是将我们想要用于答案合成的文档与我们想要用于检索的参考文献分开。这允许系统为搜索优化文档的版本&#xff08;例如&#xff0c;摘要&…

欣九康诊疗系统让中医诊所创收不再难

近些年由于国家对中医药的支持政策不断地在推进落实&#xff0c;所以导致中医馆、中医诊所越开越多&#xff0c;再加上各行各业都在向数字化转型&#xff0c;也给中医诊所带来了冲击&#xff0c;所以如何平衡机遇与竞争&#xff0c;实现诊所创收便成了每位中医诊所的负责人所必…

牛客链表刷题(二)

目录 题目一&#xff1a;合并两个有序链表 代码&#xff1a; 题目二&#xff1a;合并k个有序链表 代码&#xff1a; 题目三&#xff1a;判断链表中是否有环 代码&#xff1a; 题目四&#xff1a;链表中环的入口结点 代码&#xff1a; 题目一&#xff1a;合并两个有序链表 代…

Redis专题----2

一.主从复制 从服务器连接主服务器,发送SYNC命令.主服务器接收到SYNC命令后,执行命令生成RDB文件并使用缓冲区记录此后执行的所有写命令.主服务器执行完后,向所有的从服务器发送快照文件,并在发送期间继续记录被执行的写命令.从服务器收到快照文件后丢弃所有的旧数据,载入收到的…

卫星通讯助力船舶可视化监控:EasyCVR视频汇聚系统新应用

一、背景 随着科技的不断进步和社会治安的日益严峻&#xff0c;视频监控系统已经成为维护公共安全和提升管理效率的重要工具。传统的视频监控主要依赖于有线传输&#xff0c;但受到地域限制、布线成本高等因素的影响&#xff0c;其应用范围和效果受到一定限制。而卫星通讯传输…

CentOS 7 下gdb任意版本的升级

文章目录 前言查看gdb版本升级步骤 小结 前言 在做项目的过程中&#xff0c;遇到了难缠的bug&#xff0c;使用gdb调试的时候&#xff0c;bt调用堆栈看的一震头疼&#xff0c;于是就想起把gdb升级一下 当前环境&#xff1a;Centos7&#xff0c;gdb&#xff1a;7.6 稍微好看了那…