Linux中间件(nginx搭建、LNMP服务搭建)

news2024/11/28 0:59:24

目录

一、安装nginx

第一步、下载nginx的压缩包到Linux中

​第二步、安装依赖

第三步:安装 nginx

第四步:启动nginx 

第五步:测试nginx

二、 nginx的配置文件

 nginx.conf文件内容解读

案例:发布多个网站 

 二、lamp/lnmp

简介:

三、配置lnmp

 ​编辑

第一步:安装nginx

第二步:安装mysql

第三步:安装php和php.fpm 

第四步:修改nginx配置文件 

第五步:测试页面 


一、安装nginx

nginx.org  是nginx的官网  里面有下载地址download) 和 文档/说明(documentation)
nginx也是一个中间件,轻量级,高性能 (跟apache相比)
安装nginx的时候,我们可以选择编译安装和yum安装。
这次我们用编译安装来安装nginx
依赖:openssl-devel  zlib-devel   ncurses-devel   pcre-devel  gcc  gcc-c++

第一步、下载nginx的压缩包到Linux中

(如果没有wget 的话,我们可以先安装一下yum install wget -y)
 wget https://nginx.org/download/nginx-1.24.0.tar.gz    ​​​​​​

 第二步、安装依赖

yum install openssl-devel zlib-devel ncurses-devel pcre-devel gcc gcc-c++

第三步:安装 nginx

tar xvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx && make && make install

cd /usr/local/nginx

ls  --->  conf   html   logs    sbin

conf     是nginx的皮配置文件

html     这个目录是nginx默认网站的根目录

logs     这个是nginx的日志文件目录

sbin     这个是nginx的启动程序的目录

第四步:启动nginx 

cd /usr.local/nginx/sbin   这个目录下有个nginx的文件  ,我们看一下它是文本文件还是二进制文件
file /usr/local/nginx/sbin/nginx

 然后我们  cd /usr/local/nginx/sbin/   
然后./nginx
如果启动失败像这样,说明80端口被占用了,我们需要查看一下谁占用了并将进程停用掉

ss -tnl | grep 80 查看一下80是否开启了,然后端口冲突了

lsof -i 是一个Linux命令,用于列出当前系统打开的网络连接和监听端口
lsof  -i  :80  

pkill httpd 杀死进程    ,然后再看一下是否杀死了  lsof -i :80,然后在  ./nginx 一下启动

第五步:测试nginx

 172.x.x.x  Linux的IP地址

 

如果你想修改网页的内容,我们可以 cd /usr/local/nginx/html  
然后修改  vim index.html   

扩展一下:编译安装的话  如何重启nginx和让nginx开机自动启动

 扩展:重启nginx  要不就杀死进程,然后在启动   要不就-s  reload 命令重启
-s reload  要先进入目录这样
方法1:cd /usr/local/nginx/sbin
./nginx -s reload

        * 我们可以把nginx的路径写入环境变量里,这样我们就可以在别的目录下启动nginx
export PATH=$PATH:/usr/local/nginx/sbin

我们切换到root的家目录下尝试nginx ,发现可以启动
方法2:先kill -9杀死   然后再启动

扩展:实现nginx开机自启动
 ls /etc/rc.d/rc.local   这个文件是当开机的时候,会把里面的命令自动执行一遍
我们把启动命令写到里面去
vim /etc/rc.d/rc.local
/usr/local/nginx/sbin/nginx


但是在cen7之后我们需要给这个文件赋权
chmod +x /etc/rc.d/rc.local

二、 nginx的配置文件

 /usr/local/nginx/conf/nginx.conf
  *  ps  aux 是一个用于显示系统当前运行的进程信息的命令 

                a  显示所有用户的进程

                u  以用户为主的格式显示进程详细信息

                x  显示没有控制终端的进程

 nginx.conf文件内容解读

 

 

案例:发布多个网站 

修改配置文件   可以把注释的部分删掉,在http中写入我们的网站,然后重启服务
/usr/local/nginx/sbin/nginx -s reload
   
注意这个 web3 下
index  index.html;   才对
记得每句要加分号

在/usr/local/nginx/html 下创建  mkdir  web{1,,3} 

echo "1111">/usr/local/nginx/html/web1/index.html

echo "2222">/usr/local/nginx/html/web2/index.html

echo "3333">/usr/local/nginx/html/web3/index.html

/index.html

修改好之后我们去cmd中ping一下看看是否互通,如果不通的话,我们就要去修改windows系统下的hosts文件  C:\Windows\System32\drivers\etc  写入  IP地址  域名
最后我们用www.web1.com  www.web2.com    www.web3.com   来测试是否成功

 二、lamp/lnmp

简介:

lamp :linux \  apache   \  mysql   \  php
lnmp :  linux  \  nginx     \  mysql    \  php
静态:服务器会直接返回给客户端,通过浏览器展示
        例如 图片  视频

动态:请求的文件会在服务器端执行,然后服务器端会将程序的执行结果返回给客户端
        例如   php java 等

 

三、配置lnmp

基于fcgi的安装  可以实现动静分离 

 

安装的组件
nginx - epel源
php-fpm  remi 源
mysql   mariadb

第一步:安装nginx
第二步:安装mysql

yum install mariadb
然后启动:systemctl start mariadb  
开机自启动:systemctl enable mariadb
如果启动不了的话可以安装一下yum install mariadb-server,然后再启动

第三步:安装php和php.fpm 

我们这里要安装php7
如果你已经安装了PHP的其他版本的话,但是现在想安装php7的话,先把原来的删除掉

1.检查当前安装的PHP包
yum list installed | grep php

如果有安装的PHP包,先删除他们
yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 phpldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

2、设置yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
如果想删除上面安装的包,重新安装

rpm -qa | grep webstatic

rpm -e 上面搜索到的包即可

3、运行yum install安装支持包
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

4.安装PHP FPM
yum install php70w-fpm

 关闭防火墙:systemctl stop firewalld       systemctl disable firewalld
setenforce 0
cat /etc/selinux/config

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

第四步:修改nginx配置文件 

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.web1.com;
    root /usr/local/nginx/html/web1;
    index index.html;
    
    location ~ \.php$ {
        root    /myphp;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index    index.php;
        fastcgi_param    SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        include        fastcgi_params;
    }
        }
}
然后在/myphp 中写一个动态文件

第五步:测试页面 

 IP地址/测试页面名称

 

 

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

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

相关文章

springcloud基本使用二(远程调用)

创建两个springboot maven子项目 子项目名称分别为order-server和user-server 配置user-server子项目: 所需依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependenc…

如何用Git在终端以可视化的方式查看提交情况

2024年4月2日&#xff0c;周二上午 要使用 Git 查看树状提交情况&#xff0c;可以使用 git log 命令的 --graph 选项。这个选项会以树状图的形式显示提交历史&#xff0c;清晰地展示每个提交的分支合并情况和分支间的关系。 git log --graph 除了 --graph 选项外&#xff0c;还…

算法学习——LeetCode力扣动态规划篇1(509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯、62. 不同路径、63. 不同路径 II)

算法学习——LeetCode力扣动态规划篇1 509. 斐波那契数 509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; 描述 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项…

Mac - Keychron K3 Pro 功能键改键 -via 改键配置 For Mac

前言 Keychron K3 Pro键盘连接Mac使用&#xff0c;顶部一排功能键&#xff0c;默认是Mac的多媒体功能键。F1&#xff5e;F12功能键&#xff0c;需要按&#xff1a;Fn F1&#xff5e;F12。 而在我的日常工作中&#xff0c;常用的是F1&#xff5e;F12&#xff0c;期望F1~F12功…

SwiftUI Swift 显示隐藏系统顶部状态栏

Show me the code // // TestHideSystemTopBar.swift // pandabill // // Created by 朱洪苇 on 2024/4/1. //import SwiftUIstruct TestHideSystemTopBar: View {State private var isStatusBarHidden falsevar body: some View {Button {withAnimation {self.isStatusBa…

一文入门Ubuntu22

目录 1.安装Ubuntu22 2.常用目录 3.常用指令 1.sudo 超级用户权限运行命令 2.ls 罗列当前文件信息 3.文件目录相关&#xff1a; 1.cd改变工作路径&#xff1a; 2.pwd 3.创建目录和文件&#xff1a; 4.which 5.ps 6.kill 7.ping 4.用户相关 5.ssh与scp 6.服务相关…

宝塔面板 -- 打包前端项目并部署提升访问速度

文章目录 前言一、打包前端项目二、添加PHP项目三、部署打包文件四、开通防火墙五、运行网站总结 前言 在前面写到的文章使用宝塔面板部署前端项目中&#xff0c;并没有将前端项目打包而是直接部署&#xff0c;导致网站访问速度非常慢&#xff0c;加载甚至要十几秒。因此&…

HarmonyOS 应用开发之featureAbility接口切换particleAbility接口切换

featureAbility接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口getWant(callback: AsyncCallback<Want>): void; getWant(): Promise<Want>;ohos.app.ability.UIAbility.d.tslaunchWant: Want;startAbility(parameter: StartAbilityParameter, c…

照片变漫画怎么制作?3种方法教会你

照片变漫画怎么制作&#xff1f;在数字化时代&#xff0c;图片处理技术日新月异&#xff0c;将照片转化为漫画风格已成为一种流行的创意表达方式。这种转变不仅能让普通照片焕发新生&#xff0c;还能为我们的社交媒体和创作平台增添一抹独特的色彩。无论是为了记录生活点滴&…

【Linux】GFS分布式文件系统(一)

目录 背景GlusterFS 概述1.GlusterFS 简介2.GlusterFS 的特点扩展性和高性能高可用性全局统一命名空间弹性卷管理基于标准协议 3.GlusterFS 术语Brick&#xff08;存储块&#xff09;Volume&#xff08;逻辑卷&#xff09;FUSE&#xff08;Filesystem inUserspace&#xff09;V…

CV论文--2024.4.2

1、Unsolvable Problem Detection: Evaluating Trustworthiness of Vision Language Models 中文标题&#xff1a;无法解决的问题检测&#xff1a;评估视觉语言模型的可信度 简介&#xff1a;本文提出了一个新颖且重要的挑战&#xff0c;即视觉语言模型&#xff08;VLM&#x…

电梯四种事故检测YOLOV8

电梯四种事故检测&#xff0c;采用YOLOV8训练得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV调用&#xff0c;支持C/PYTHON/ANDORID开发 电梯四种事故检测YOLOV8

Java | Leetcode Java题解之第6题Z字形变换

题目&#xff1a; 题解&#xff1a; class Solution {public String convert(String s, int numRows) {int n s.length(), r numRows;if (r 1 || r > n) {return s;}int t r * 2 - 2;int c (n t - 1) / t * (r - 1);char[][] mat new char[r][c];for (int i 0, x …

Network AIS Receiver R400N

目录 Introduction OVERVIEW BASIC FEATURES APPLICATIONS SPECIFICATIONS Introduction OVERVIEW The R400N provides a method of monitoring the position, speed and heading of AIS vessels within VHF range. It can decode of Class A, Class B, Aids to Navigat…

【游戏分析】FPS游戏自瞄爆头原理

众所周知 只要是射击类FPS类游戏都有自瞄爆头的功能 有的人会说,既然大家都知道,游戏公司也必然知道 那么为什么不把这个BUG修复掉呢 实际上并不是不修复,而是这个根本不算是BUG 为什么这么说呢? 原因很简单,手动可以射击,外挂也可以射击,手动射击是受肉眼影响准确度的,而…

高等数学基础篇(数二)之多元函数的微分法

多元函数微分法&#xff1a; 一、复合函数微分法 二、隐函数微分法 三、复合函数偏导数与全微分 四、隐函数偏导数与全微分 目录 一、复合函数微分法 二、隐函数微分法 三、复合函数偏导数与全微分 四、隐函数偏导数与全微分 一、复合函数微分法 二、隐函数微分法 补充…

了解游戏相关知识

个人笔记&#xff08;整理不易&#xff0c;有帮助点个赞&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔&#xff1a;工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客 目录 一&#xff1a…

如果医生向软件伪创新学习-UMLChina建模知识竞赛第5赛季第8轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题&#xff0c;即可获得本轮优胜。 如果有第4题&#xff0c;第4题为附加题&am…

Ant Design Vue中的table与pagination的联合使用

效果&#xff1a; 代码&#xff1a; <a-table:dataSource"dataSource":columns"columns":pagination"pagination"change"handleTableChange":scroll"{ x: 100%, y: 600 }"> </a-table> export default defin…

物联网学习2、MQTT 发布/订阅模式介绍

MQTT 发布/订阅模式 发布订阅模式&#xff08;Publish-Subscribe Pattern&#xff09;是一种消息传递模式&#xff0c;它将发送消息的客户端&#xff08;发布者&#xff09;与接收消息的客户端&#xff08;订阅者&#xff09;解耦&#xff0c;使得两者不需要建立直接的联系也不…