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


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


    前言

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

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


    一、项目介绍

    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  
    
    • 1
    • 2

    在这里插入图片描述

    启动命令:systemctl start nginx
    重启命令:systemctl restart nginx
    停止命令:systemctl start nginx
    查看状态命令:systemctl status nginx
    开机启动命令:systemctl enable nginx]
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    注:源码编译安装,一般会创建一个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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    yum -y install php
    yum -y install php-fpm
    
    • 1
    • 2

    安装结果:
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    启动命令: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;         					} 	
       }				
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

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

    在这里插入图片描述

    2.3.3 修改 vim /etc/php.ini

    #在最后一行
    extension=mbstring.so
    extension=php_gd2.dll
    :wq!
    #保存退出即可
    #重启php-fpm服务
    systemctl restart php-fpm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.4 测试是否正常

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

    
    echo phpinfo();
    ?>
    
    • 1
    • 2
    • 3

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

    三、部署项目和测试

    将项目就放入上面配置好的目录中即可 /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日

  • 相关阅读:
    基于SpringBoot的医院患者档案管理系统
    【开源】基于Vue.js的森林火灾预警系统的设计和实现
    使用html+css实现一个静态页面(厦门旅游网站制作6个页面) 旅游网页设计制作 HTML5期末考核大作业,网站——美丽家乡。 学生旅行 游玩 主题住宿网页
    zipfile教程
    Mybatis-plus 怎么使用拦截器拿到SQL,并解析
    直流有刷电机驱动基于STM32F302R8+X-NUCLEO-IHM07M1(二)
    如何设计可扩展架构
    面向对象的选项卡切换
    我经历过的职场故事
    【洛谷 P1037】[NOIP2002 普及组] 产生数 题解(图论+深度优先搜索+排列组合+高精度)
  • 原文地址:https://blog.csdn.net/Best_lgx/article/details/136267770