【web】云导航项目部署及环境搭建(复杂)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、项目介绍
    • 1.1项目环境架构LNMP
    • 1.2项目代码说明
  • 二、项目环境搭建
    • 2.1 Nginx安装
    • 2.2 php安装
    • 2.3 nginx配置和php配置
      • 2.3.1 修改nginx文件
      • 2.3.2 修改vim /etc/php-fpm.d/www.conf文件
      • 2.3.3 修改 vim /etc/php.ini
    • 2.4 测试是否正常
  • 三、部署项目和测试
  • 四、代码部署故障-php执行出错(问题解决)
  • 五、总结


前言

日常需要访问很多链接,都需要保存到收藏夹,比较麻烦,使用浏览器账户登录,需要每台电脑都登陆账号,比较麻烦,就做了一个云导航项目,部署到自己购买的阿里云服务器,无论在哪台电脑都可打开登录,访问自己收藏的网址。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


一、项目介绍

1.1项目环境架构LNMP

架构:Nginx + PHP(php-fpm) + xml
用不到mysql,就不进行安装了。
在这里插入图片描述

1.2项目代码说明

运用的技术:js+ajax(xhr请求)(查)+php(增删改)(PHP SimpleXML解析xml)
在这里插入图片描述

二、项目环境搭建

VMware版本:VMware16 Pro 16.1.2 build-17966106
linux操作系统版本:统信UOS Server 20 1060a
在这里插入图片描述

2.1 Nginx安装

安装Nginx软件的方式有很多种,分为如下几种
1.源码编译=>Nginx (1.版本随意 2.安装复杂 3.升级繁琐)
2.epel仓库=>Nginx (1.版本较低 2.安装简单 3.配置不易读)
3.官方仓库=>Nginx (1.版本较新 2.安装简单 3.配置易读,强烈推荐)
yum标准安装操作请参考https://www.cnblogs.com/caijiuge/p/16702656.html

安装依赖:yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake httpd-tools yum-utils
yum方式安装命令:yum install nginx  

在这里插入图片描述

启动命令:systemctl start nginx
重启命令:systemctl restart nginx
停止命令:systemctl start nginx
查看状态命令:systemctl status nginx
开机启动命令:systemctl enable nginx]

防火墙设置:打开端口在这里插入图片描述
在这里插入图片描述

注:源码编译安装,一般会创建一个nginx用户,1.创建用户:useradd -M -s /sbin/nologin nginx [-M : 不创建主目录 -s : 不允许登录 -g :加入用户组]
浏览器访问测试:出现这个界面说明安装成功。
在这里插入图片描述

2.2 php安装

使用php-fpm,php中的mod_php模式和mode_fastcgi和php-fpm模式,php-fpm是fastcgi模式的管理器

nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。 nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回.
PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到. PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。
新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,PHP在 5.3.3 之后已经讲php-fpm写入php源码核心了。

编译安装半天,失败了, 最后直接yum方式安装。

#新版php-fpm安装(推荐安装方式)
$ mkdir /usr/local/php
$ wget https://www.php.net/distributions/php-8.3.3.tar.gz
$ tar -zxvf php-8.3.3.tar.gz
$ cd php-8.3.3

$ ./configure --prefix=/usr/local/php --enable-fpm --with-openssl 

$ make 
$ make install
yum -y install php
yum -y install php-fpm

安装结果:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
启动命令:systemctl start php-fpm
重启:systemctl restart php-fpm
停止命令:systemctl stop php-fpm
查看状态命令:systemctl status php-fpm
开机自启命令:systemctl enable php-fpm
在这里插入图片描述
php和php-fpm的配置文件位置:
在这里插入图片描述

2.3 nginx配置和php配置

Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIX Domain Socket.
其中TCP是IP加端口,可以跨服务器.而UNIX Domain
Socket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决于你的PHP-FPM配置:
方式1:vim /etc/php-fpm.d/www.conf 和vim /etc/nginx/nginx.conf
php-fpm.conf: listen = 127.0.0.1:9000
nginx.conf: fastcgi_pass 127.0.0.1:9000;
方式2:
php-fpm.conf: listen = /tmp/php-fpm.sock
nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock;
其中php-fpm.sock是一个文件,由php-fpm生成,类型是srw-rw----.

选用方式1;主进程php-fpm主要是管理fastcgi子进程,监听9000端口。 fastcgi子进程等待来自Web Server的连接。Nginx通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理,即Nginx通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理。

2.3.1 修改nginx文件

Nginx配置运行php: 编辑/etc/nginx/nginx.conf加入如下语句:

 server {             		
 listen 80; 	        
 server_name www.xxx.com;  			     	    
 location / {                					
 root /usr/local/Testphp/;     			        
 index  index.html index.htm index.php;      					} 		 	         location ~\.php$ {                					
 root /usr/local/Testphp;                					fastcgi_pass 127.0.0.1:9000;指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的            					
#fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php; 					
 # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   					fastcgi_param SCRIPT_FILENAME /usr/local/Testphp$fastcgi_script_name;     					include fastcgi_params;         					} 	
   }				

2.3.2 修改vim /etc/php-fpm.d/www.conf文件

;listen = /run/php-fpm/www.sock
listen = 127.0.0.1:9000

在这里插入图片描述

2.3.3 修改 vim /etc/php.ini

#在最后一行
extension=mbstring.so
extension=php_gd2.dll
:wq!
#保存退出即可
#重启php-fpm服务
systemctl restart php-fpm

2.4 测试是否正常

创建index.php文件放入项目目录,php测试代码内容

<?php
echo phpinfo();
?>

出现此界面,代表配置成功了。
在这里插入图片描述

三、部署项目和测试

将项目就放入上面配置好的目录中即可 /usr/local/Testphp/注意
注:适合windows系统的项目不一定在linux 完全运行,由于代码 路径 // \ ,不一样,需要注意。

四、代码部署故障-php执行出错(问题解决)

问题: 云导航 代码部署到linux系统后,(addlink.php dellink.php uplink.php)总是执行错误
原因: PHP环境的问题。安装的php ,脚本中用到了simplexml解析xml文件或字符串,simpexml可能有问题,simplexml_load_file(“$nxml2”) 无法执行,所以报错。具体原因暂未找到这个,所有不管了。在这里插入图片描述
解决办法: 直接重新安装下 yum install php-xml php-xmlrpc ,即可解决。
----20240224 解决
----还是要看报错信息
----什么都是对的, 找了半天问题

五、总结

遇到问题的处理思路:
如果是项目问题,着手点:代码用了哪些环境,哪些依赖包, 是否都已经具备?
查看断点执行情况、查看日志情况,需要故障线索。


笔记记录日期:2020年04月03日

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内存溢出排查

1、进入k8s容器对应服务节点查看进程号 ps aux|grep javaps aux 是用BSD的格式来显示 java这个进程 显示的项目有&#xff1a;USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND USER: 行程拥有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的记…

python Airtest自动化测试工具的的使用

Airtest全称AirtestProject&#xff0c;是由网易游戏推出的一款自动化测试框架&#xff0c;在软件测试的时候使用到了该框架。这里记录一下安装、使用和遇到的坑的问题… Airtest的官网介绍项目构成 Airtest&#xff1a;是一个跨平台的、基于图像识别的UI自动化测试框架&#x…

YOLOv9尝鲜测试五分钟极简配置

pip安装python包&#xff1a; pip install yolov9pip在https://github.com/WongKinYiu/yolov9/tree/main中下载好权重文件yolov9-c.pt。 运行下面代码&#xff1a; import yolov9model yolov9.load("yolov9-c.pt", device"cpu") # load pretrained or c…

观察者模式与发布订阅模式

观察者模式 定义&#xff1a; 观察者模式是一种行为型设计模式&#xff0c;定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 结构图&#xff1a; ES6简易代码实现&#xff1a; //ts环境下…

Uncertainty-Aware Mean Teacher(UA-MT)

Uncertainty-Aware Mean Teacher 0 FQA:1 UA-MT1.1 Introduction:1.2 semi-supervised segmentation1.3 Uncertainty-Aware Mean Teacher Framework 参考&#xff1a; 0 FQA: Q1: 不确定感知是什么意思&#xff1f;不确定信息是啥&#xff1f;Q2&#xff1a;这篇文章的精妙的点…

300分钟吃透分布式缓存-14讲:大数据时代,MC如何应对新的常见问题?

大数据时代 Memcached 经典问题 随着互联网的快速发展和普及&#xff0c;人类进入了大数据时代。在大数据时代&#xff0c;移动设备全面融入了人们的工作和生活&#xff0c;各种数据以前所未有的 速度被生产、挖掘和消费。移动互联网系统也不断演进和发展&#xff0c;存储、计…

掌握“这招”,平趴也能轻松捕获威胁情报!——利用流行度排名升级威胁情报收集

引言 威胁情报是提供强大网络安全服务的重要基石&#xff0c;这些服务可以保护各地的移动设备和互联网用户。但当今的互联网威胁是复杂且具有强适应性的&#xff0c;它们通过不断改变其面貌以逃避安全防御。这使得提供涵盖各种威胁形势的威胁情报变得日益困难&#xff0c;组织…

工具篇-- 定时任务xxl-job

文章目录 前言一、xxl-job 运行&#xff1a;1.1 下载并且启动&#xff1a;1.2 项目介绍&#xff1a;1.2.1 xxl-job-admin&#xff1a;1.2.1.1 xxl-job-admin 作用&#xff1a;1.2.1.2 xxl-job-admin 的配置&#xff1a; 1.2.2 xxl-job-executor-samples&#xff1a;1.2.2.1 pom…

51.仿简道云公式函数实战-文本函数-JOIN

1. JOIN函数 JOIN 函数可通过连接符将数组的值连成文本。 2. 函数用法 JOIN(数组,"连接符") 3. 函数示例 如需将复选框中勾选的选项通过”-“组合在一起&#xff0c;则可设置公式为JOIN(复选框组,"-") 4. 代码实战 首先我们在function包下创建text包…

基于springboot的新闻资讯系统的设计与实现

**&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;**一 、设计说明 1.1 课题背景…

Qt QWidget 简约美观的加载动画 第四季

&#x1f60a; 第四季来啦 &#x1f60a; 效果如下: 只有三个文件,可以直接编译运行的 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QVBoxLayout> #include <QGridLayout> int main(int argc, char *argv[]) …

亚洲唯一!京东荣获2024年度Gartner供应链技术创新奖背后的创新探索

序言&#xff1a; 序言&#xff1a;2月14日晚间&#xff0c;Gartner公布了2024年度Garter Power of the Profession供应链大奖&#xff0c;京东集团荣获供应链技术创新奖&#xff0c;成为获得该奖项的唯一亚洲企业。Gartner Power of the Profession供应链奖项已经举办十年&am…

驻场人员严重划水,愈演愈烈,要请领导出面吗?

你有没有遇到过团队成员偷懒的情况&#xff1f;比如你们一起完成某个项目目标&#xff0c;干着干着你发现&#xff0c;就只有你和几个核心人员比较上心&#xff0c;很多人都在划水。 你可能会觉得这是因为大家工作态度不好&#xff0c;甚至怀疑他们的人品&#xff0c;忍不住想…

MoonBit支持云原生调试功能

MoonBit 更新 1. 支持云原生调试功能 现在&#xff0c;你可以通过访问try.moonbitlang.cn&#xff0c;直接在浏览器中使用 devtools 调试 MoonBit 程序&#xff0c;无需安装任何软件。具体的使用步骤如下&#xff1a; 2. MoonBit 支持使用 for 关键字定义的函数式循环控制流 …

ShardingJDBC分库分表

目录 ShardingSphere ShardingJDBC客户端分库分表 ShardingProxy服务端分库分表 两者对比 ShardingJDBC分库分表实战 需求 步骤 分片策略汇总 ShardingSphere ShardingSphere最为核心的产品有两个&#xff1a;一个是ShardingJDBC&#xff0c;这是一个进行客户端分库分表…

Linux命令行常用命令

初识shell shell是系统的用户界面&#xff0c;提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上shell是一个命令解释器&#xff0c;它解释用户输入的命令并且把用户的意图传达给内核。&#xff08;可以理解为用户与内核之间的翻译官…

npm/nodejs安装、切换源

前言 发现自己电脑上没有npm也没有node很震惊&#xff0c;难道我没写过代码么&#xff1f;不扯了&#xff0c;进入正题哈哈…… 安装 一般没有npm的话会报错&#xff1a; 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称而且报这个错&#xff0c;我们执行…

Order By Limit不稳定性

文章目录 前置解决不确定性场景1 Order By索引1.1 背景1.2 不确定性产生原因1.2.1 正常情况下1.2.2 但是 1.3 补充1.4 场景1总结 场景2 Order by id2.1 背景2.2 不会产生不确定性原因1原因2 2.3 推荐使用方式 场景3 filesort3.1 背景3.2 不确定性产生原因3.3 内存排序和磁盘临时…

内衣洗衣机哪个牌子好用?甄选安利四款优质好用的内衣洗衣机

内衣洗衣机是近几年新兴的一种家用电器产品&#xff0c;正日益引起人们的重视。但是&#xff0c;面对市面上品牌繁多、款式繁多的内衣洗衣机&#xff0c;使得很多人都不知道该如何选择。身为一个数码家电博主&#xff0c;我知道这类产品在挑选方面有着比较深入的了解。为此&…

数据结构2月25日

第一道&#xff1a; 第二道&#xff1a; 1、插入到prev和next中间 1.new(struct list_head*)malloc(sizeof(struct list_head*)); if(newNULL) { printf("失败\n"); return; } new->nextprev->next; prev->nextnew; return; 2、删除prve和next…