小白到运维工程师自学之路 第四十七集 (LNMP部署电影网站)

news2024/10/5 13:40:11

一、概述

Linux:作为操作系统,提供服务器的基本功能和稳定性。通常使用常见的Linux发行版,如Ubuntu、CentOS等。

Nginx:作为Web服务器和反向代理服务器,处理HTTP请求和传递数据。Nginx具有高性能、稳定性和并发处理能力,常用于处理静态文件和负载均衡。

MySQL:作为关系型数据库管理系统(RDBMS),用于存储和管理数据。MySQL是一种流行的开源数据库系统,提供可靠的数据存储和高效的数据查询。

PHP(或其他编程语言):作为服务器端的编程语言,用于实现动态网页和与数据库的交互。PHP是一种广泛应用的脚本语言,用于开发Web应用程序

二、工作原理

1、客户端发送HTTP请求:当用户在浏览器中访问一个Web应用时,会发送HTTP请求到服务器。

2、Nginx接收请求:请求由Nginx服务器接收,Nginx作为Web服务器充当前端代理服务器,负责接收和处理请求。

3、静态文件处理:如果请求的是静态文件(如图片、样式表等),Nginx会直接返回文件给客户端,无需后端处理。这样可以减轻后端服务器的负担。

4、动态请求代理:如果请求需要处理动态内容(如数据库查询、业务逻辑等),Nginx会将请求代理转发给后端应用服务器处理。

5、后端应用服务器处理请求:后端应用服务器(如PHP)接收到Nginx转发的请求,进行数据处理、业务逻辑处理等。

6、数据库查询与操作:如果需要访问数据库,后端应用服务器通过MySQL与数据库进行交互,执行相应的数据查询、更新等操作。

7、生成动态页面:后端应用服务器根据请求的处理结果,生成动态页面或数据,并将结果返回给Nginx。

8、Nginx返回响应:Nginx接收到后端应用服务器返回的响应,再将响应返回给客户端。

9、整个过程中,Nginx负责接收和转发请求,并处理静态文件的请求,将动态请求转发给后端应用服务器,最后将后端应用服务器的响应返回给客户端。这种架构可以提高服务器的性能和稳定性,实现高并发和负载均衡。

三、安装部署

1、安装nginx

useradd -M -s /sbin/nologin  nginx             创建nginx的程序用户
tar xzf  nginx-1.16.0.tar.gz  -C /usr/src      将nginx的安装包解压到/usr/src下
 yum -y install pcre-devel zlib-devel gcc c++  安装nginx的依赖包
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --user=nginx && make  && make install                                编译安装nginx
 ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ 优化nginx命令
编写nginx脚本
#!/bin/bash
#chkconfig:2345 99 20
# description: Nginx Server Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
PROG_FPM="/usr/local/sbin/php-fpm"
PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"

case "$1" in
start)
        $PROG 
        $PROG_FPM
;;
stop)
        kill -s QUIT $(cat $PIDF)
        kill -s QUIT $(cat $PIDF_FPM)
;;
restart)
        $0 stop
        $0 start
;;
reload)
        kill -s HUP $(cat $PIDF)
;;
*)
        echo "Usage: $0 (start|stop|restart|reload)"
        exit 1
esac
exit 0

chmod +x /etc/init.d/nginx    赋予脚本执行权限
chkconfig --add nginx         将nginx服务添加到系统中      
vim /usr/local/nginx/conf/nginx.conf   进入nginx配置文件
location ~ \.php$ {
            root html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
在第一个location的html行后面添加 index.php

启动nginx

 

 2、安装mysql(二进制安装)

yum -y install libaio                          安装mysql依赖包
tar xf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local  将mysql解压到/usr/local中
mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysql  改名字
useradd -s /sbin/nologin mysql                 创建mysql的程序用户
cd mysql/                                      进入MySQL目录
chown -R mysql:mysql ./                        将目录下的所有文件用户修改为mysql
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize                       初始化数据库

这个红色方框中的是密码

vim /etc/my.cnf   修改配置文件
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock

[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid

./support-files/mysql.server star                   启动mysql服务
mysqladmin -uroot -p'sJ>-pohhK2j(' password 123456  修改MySQL密码

3、安装php

yum -y install gd libxml2-devel.x86_64 libjpeg-devel libpng-devel  安装php依赖包
tar xf php-5.6.39.tar.gz -C /usr/src                               解压到/usr/src下
cd /usr/src/php-5.6.39/                                            进入到解压路径中
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jbeg-dir=/usr/lib && make && make install  进行编译安装
cp php.ini-production /usr/local/php5/php.ini                      准备配置文件
ln -s /usr/local/php5/bin/* /usr/local/bin/                        命令优化
ln -s /usr/local/php5/sbin/* /usr/local/sbin/                      命令优化

4、安装zend

tar xf zend-loader-php5.6-linux-x86_64_update1.tar.gz           解压zend
cd zend-loader-php5.6-linux-x86_64/                             进入到zend目录
cp ZendGuardLoader.so /usr/local/php5/lib/php                   复制到php下
vim /usr/local/php5/php.ini      进入php配置文件
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so            写入两行
zend_loader.enable=1

cd /usr/local/php5/etc/                     
mv php-fpm.conf.default php-fpm.conf        修改文件名
vim php-fpm.conf  修改主配置文件
149 行    user = php
150 行    group = php
241 行    pm.max_children = 50
246 行    pm.start_servers = 20
251 行    pm.min_spare_servers = 5
256 行    pm.max_spare_servers = 35

useradd -M -s /sbin/nologin php            创建程序用户
/usr/local/sbin/php-fpm                    开启程序

 5、安装skyuc

unzip SKYUC.v3.4.2.SOURCE.zip                            解压skyuc
cd SKYUC.v3.4.2.SOURCE                                   进入到skyuc目录
rm -rf /usr/local/nginx/html/*                           删除nginx的页面
cp -rf wwwroot/ /usr/local/nginx/html/                   复制skyuc目录到nginx下   
cd /usr/local/nginx/html/wwwroot                         进入wwwroot                                                                                         
chown -R php:php admincp/ data/ templates/ upload/       赋予这四个目录的属主属组为php
mysql -u root -p123456                                            进入mysql
create database skyuc;                                            创建用户
grant all on skyuc.* to skyuc@localhost identified by '123';      赋予用户权限
flush privileges;                                                 更新权限

四、测试

输入本机IP/wwwroot/index.php

 以上就是LNMP部署电影网站

如有错误欢迎各位大佬批评指正,我们共同进步

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

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

相关文章

Java链式编程与Builder(建造者)设计模式

一、链式编程 1.1.释义 链式编程,也叫级联式编程,调用对象的函数时返回一个this对象指向对象本身,达到链式效果,可以级联调用。 1.2.特点 可以通过一个方法调用多个方法,将多个方法调用链接起来,形成一…

Mysql数据NULL避坑指南

NULL空值是mysql中一种特殊的数据值&#xff08;即"缺少的未知值"&#xff09;,NULL和字符串空值不是一回事&#xff0c;处理NULL与其他值不同&#xff0c;下面具体阐述相关差异&#xff1a; 一、NULL运算符 1、普通数据使用 > 、 < 、即可做常用的逻辑运算如…

Linux随机生成数

简介 在某些情况下&#xff0c;我们需要随机产生一个数来在一些场景中使用&#xff0c;例如验证码、ssh反向代理随机数的产生&#xff0c;又或者在一些shell脚本设计中需要用到随机数&#xff0c;下面以随机产生一个30000-40000之间的随机数为例。 使用shuf shuf 命令在一些 Li…

【FFMPEG】AVFilter使用流程

流程图 核心类 AVFilterGraph ⽤于统合这整个滤波过程的结构体 AVFilter 滤波器&#xff0c;滤波器的实现是通过AVFilter以及位于其下的结构体/函数来维护的 AVFilterContext ⼀个滤波器实例&#xff0c;即使是同⼀个滤波器&#xff0c;但是在进⾏实际的滤波时&#xff0c;也…

基于单片机水质检测系统的设计与实现

功能介绍 以STM32单片机作为主控系统&#xff1b;液晶显示当前参数&#xff1b;PH模块采集当前水质PH酸碱度&#xff1b;DS18B20温度传感器采集当前水体温度&#xff1b;TDS传感器采集当前水体TDS值&#xff1b;浊度传感器采集当前水体浑浊度&#xff1b;按键设置PH、温度、TDS…

基于vscode连接到远程服务中debug

本文章主要讲解以下两点的任务 1.在windows的vscode中去debug 本机子系统wsl2中运行的docker容器 该篇文件参考知乎上这篇文章 vscode远程连接到本机 wsl2子系统 中正在运行的 docker容器&#xff0c;该docker中有一个flask实例&#xff0c;通过vscode远程debug它 1.1安装v…

基于matlab配置单目鱼眼摄像头(附源码)

一、前言 此示例演示如何将鱼眼相机模型转换为针孔模型&#xff0c;并构建相应的单目相机传感器仿真。 要模拟安装在车辆中的单目摄像头传感器&#xff0c;请执行以下步骤&#xff1a; 通过使用棋盘格校准相机来估计固有的相机参数。内在参数描述了鱼眼镜头相机本身的特性。 …

抖音seo矩阵系统源码部署开发-可二开(二)

抖音seo短视频剧组嗯系统是以人工智能技术&#xff0c;通过多个短视频平台&#xff0c;多个短视频账号为核心&#xff0c;视频自动生成、自动发布智能优化&#xff0c;以达到矩阵营销的目的&#xff0c;从根本上解决短视频曝光难和获客少等难题&#xff0c;从而快速增加商家的运…

基于matlab使用卷积神经网络对晶圆图上的八种制造缺陷进行分类(附源码)

一、前言 此示例展示了如何使用简单的卷积神经网络 &#xff08;CNN&#xff09; 对晶圆图上的八种制造缺陷进行分类。 晶圆是半导体材料&#xff08;通常是硅&#xff09;的薄盘&#xff0c;用作集成电路的基础。每个晶圆产生几个单独的电路&#xff08;IC&#xff09;&…

XXX汽车ERP系统供应商索赔业务上线,助力业财数据快速闭环(投稿数据化月报四)

供应商三包索赔款项源起QMS质量系统&#xff0c;联动金税系统完成发票开具&#xff0c;最终在SAP系统中创建完成财务凭证。该流程上线前为手工操作&#xff0c;费时费力且效率低下容易出错。针对该业务现状&#xff0c;SAP与QMS业务顾问及开发团队组成开发小组&#xff0c;导入…

Java性能权威指南-总结26

Java性能权威指南-总结26 数据库性能的最佳实践异常日志 数据库性能的最佳实践 异常 Java的异常处理一直有代价高昂的坏名声。其代价确实比处理正常的控制流高一些&#xff0c;不过在大多数情况下&#xff0c;这种代价并不值得浪费精力去绕过。另一方面&#xff0c;因为异常处…

添加 zabbix 客户端主机 自定义监控内容 自动发现与注册(得不到假装不想要)

文章目录 一、添加zabbix客户端主机2.关闭防火墙和修改主机名 二、自定义监控内容1.需求&#xff1a;限制登录人数不超过 3 个&#xff0c;超过 3 个就发出报警信息在客户端创建自定义 key在 Web 页面创建自定义监控项模板 三、zabbix 自动发现与自动注册zabbix 自动发现&#…

HCIE-datacom | 网络准入控制

一、前言 之前提供网络技术咨询服务时&#xff0c;有一位实习生同学向我咨询了有关网络准入的相关情景&#xff0c;在这里我结合华为HCIE-datacom中“网络准入控制”这一节等相关资料&#xff0c;对网络准入技术进行一下简单的理论性说明&#xff0c;与资料的讲解思路相同&…

基于matlab使用AprilTag标记进行相机校准(附源码)

一、前言 AprilTags被广泛用作物体检测、定位应用的视觉标记&#xff0c;并作为相机校准的目标。AprilTags类似于QR码&#xff0c;但旨在编码更少的数据&#xff0c;因此可以更快地解码&#xff0c;这对于实时机器人应用程序非常有用。使用 AprilTags 作为校准模式的优点包括更…

Docker学习笔记21

案例三&#xff1a;使用容器运行一个wordpress应用&#xff1a; 语言开发环境&#xff08;PHP&#xff09; 数据库 第一步&#xff1a;创建一个工程目录&#xff1a; mkdir wordpress cd wordpress 第二步&#xff1a;创建一个docker-compose.yaml文件&#xff1a; [rootnode…

Mybatis进阶(2)——为什么用mybatis? 多表查询解决 延迟加载 mybatis缓存 【未完待续】

目录 引出一、为啥用mybatis&#xff1f;二、多表查询之一对多【待续】1.一对多的情况方案一&#xff1a;采用多表联查的方式&#xff08;1&#xff09;resultMap&#xff08;2&#xff09;查询的java接口和xml的SQL语句&#xff08;3&#xff09;对应关系分析&#xff08;4&am…

使用docker搭建minio分布式对象存储系统

使用docker搭建minio分布式对象存储系统 这里我简单的和大家介绍一下什么是minio &#xff1f; 附上Minio官网链接&#xff1a;https://minio.org.cn/ MinIO是一种开源的对象存储服务器&#xff0c;通过使用标准的HTTP/REST API来访问和管理数据。它采用分布式架构&#xff0c…

【SAP UI5 控件学习】DAY02 Input组PartII

1. CheckBox控件 1.1 最普通的CheckBox <CheckBox text"Option a" selected"true" />如果需要设置选中状态&#xff0c;需要设置selected属性为true 1.2 部分选中CheckBox <CheckBox text"Option partially selected" selected"t…

【ElasticSearch】DSL查询语法

文章目录 1、DSL查询分类2、DSL基本语法3、全文检索查询4、精确查询5、地理查询6、复合查询--相关性打分算法7、复合查询之Function Score Query8、复合查询之BooleanQuery 1、DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;…

【ARM Coresight 系列文章 2 - ARM Coresight 介绍】

文章目录 1.1 ARM Coresight 介绍1.1.1 ARM Coresight 发展历史 1.2 ARM Coresight 框架介绍1.1.1 Trace 通路1.1.3 Debug 通路1.1.4 Trigger 通路 1.1 ARM Coresight 介绍 ARM Coresight是ARM公司提供的一种调试和跟踪技术&#xff0c;用于ARM处理器的调试和性能分析。它通过…