linux nginx maccms管理后台无法进入页面不存在和验证码不显示的问题

windows中运行maccms非常顺利,轻松搭建了。并一切正常。而我在linux中搭建缺遇到了一个非常奇怪的问题。进入管理后台,明明"admin.php"(比如重命名成a.php)的页面是存在的,访问时缺提示页面不存在!稍后就自动跳到首页了。
在这里插入图片描述

环境

操作系统:Ubuntu 20.04.1 LTS
nginx version: nginx/1.18.0 (Ubuntu)
PHP 7.4.3-4ubuntu2.28 (cli) (built: Dec 13 2024 13:46:46) ( NTS )

nginx的配置如下:

server {
    listen       80;
    server_name  video.demo.cool;
    root /etc/nginx/WWW/video.demo.cool;

   
	location / {
		index index.php index.html error/index.html;
 	 	if (!-e $request_filename) {
	        rewrite ^/index.php(.*)$ /index.php?s=$1 last;
	        rewrite ^/admin.php(.*)$ /admin.php?s=$1 last;
	        rewrite ^/api.php(.*)$ /api.php?s=$1 last;
	        rewrite ^(.*)$ /index.php?s=$1 last;
	        break;
   		}
		autoindex off;
	}
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}


我的搭建详情见:
《Ubuntu 20.04.1 LTS搭建nginx + php7.4运行环境》
https://blog.csdn.net/lxyoucan/article/details/144850572

原因分析

  1. 我怀疑伪静态规则的设置可能没有生效或者出现错误了,官方的示例如下:
location / {
 if (!-e $request_filename) {
        rewrite ^/index.php(.*)$ /index.php?s=$1 last;
        rewrite ^/admin.php(.*)$ /admin.php?s=$1 last;
        rewrite ^/api.php(.*)$ /api.php?s=$1 last;
        rewrite ^(.*)$ /index.php?s=$1 last;
        break;
   }
}
  1. 可能是admin.php相关的代码运行报错了,当作404页面处理了。

探索实验

伪静态规则测试

我的测试方法很简单,因为windows中是可以正常运行的,我故意把windows中的nginx中的伪静态规则删除测试现象

我在windows中的nginx的配置修改前如下:

server {
        listen        22427;
        server_name  maccms.demo.com;
        root   "D:/app/maccms10-2024.1000.4045";
        location / {
            index index.php index.html error/index.html;
			if (!-e $request_filename) {
					rewrite ^/index.php(.*)$ /index.php?s=$1 last;
					rewrite ^/admin.php(.*)$ /admin.php?s=$1 last;
					rewrite ^/api.php(.*)$ /api.php?s=$1 last;
					rewrite ^(.*)$ /index.php?s=$1 last;
					break;
			} 
            autoindex  off;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9001;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

我去掉

		if (!-e $request_filename) {
					rewrite ^/index.php(.*)$ /index.php?s=$1 last;
					rewrite ^/admin.php(.*)$ /admin.php?s=$1 last;
					rewrite ^/api.php(.*)$ /api.php?s=$1 last;
					rewrite ^(.*)$ /index.php?s=$1 last;
					break;
			} 

经测试并不会出现同样的现象,所以暂时可以排除。

程序报错导致

看来是程序报错导致的,但是程序报错日志我不清楚在哪里查看。

nginx不行就试试Apache吧

搭建LAMP环境,所谓的LAMP指的Linux+Apache+Mysql+PHP. 其中,你的操作系统ubuntu就是Linux。Apache是http服务器,浏览器通过服务器(也就是你的VPS)上的apache提供的服务才能获取到网页资源,从而显示在你的电脑屏幕上。Mysql是数据库,你的网站(这里即是苹果CMS)动态运行时所存取的数据都是由数据库来管理的。PHP与Apache相互配合为用户提供动态的网页,我们要安装的苹果CMS就是php语言编写的,他的运行必须依赖于PHP环境。

因为nginx我是必须要用的,我仅是用apache运行php项目,所以我要把apache中的80端口修改成其他的。

  • 主配置文件:/etc/apache2/apache2.conf
  • 站点配置文件:/etc/apache2/sites-available/ 和 /etc/apache2/sites-enabled/
  • 模块配置文件:/etc/apache2/mods-available/ 和 /etc/apache2/mods-enabled/
  • 环境配置文件:/etc/apache2/envvars
  • 端口配置文件:/etc/apache2/ports.conf
  • 全局配置文件:/etc/apache2/conf-available/ 和 /etc/apache2/conf-enabled/

我把80端口修改成22429

vim /etc/apache2/ports.conf
Listen 22429

然后我把maccms的程序上传到/var/www/html目录,设置一下目录权限

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

这次发现后台可以进了,但是又遇到了一个新的问题,登录的验证码无法显示了。
在这里插入图片描述
这条路成功一半,并没有完美解决。

nginx无法进入后台的最终解决办法

经过对比windows和linux的nginxs配置的差异,最终我把Linux的配置修改成

server {
    listen       80;
    server_name  vipvideo.demo.cool;
    root /etc/nginx/WWW/vipvideo.demo.cool;

   
	location / {
		index index.php index.html error/index.html;
 	 	if (!-e $request_filename) {
        rewrite ^/index.php(.*)$ /index.php?s=$1 last;
        rewrite ^/admin.php(.*)$ /admin.php?s=$1 last;
        rewrite ^/api.php(.*)$ /api.php?s=$1 last;
        rewrite ^(.*)$ /index.php?s=$1 last;
        break;
   		}
		autoindex off;
	}
	
	 location ~ \.php(.*)$ {
			fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

问题得到解决了。但是验证码还是无法显示。。。
在这里插入图片描述

解决验证码不显示的问题

我在网上找了一圈,好多都说把验证码关掉,或者因为v10使用的是thinkphp开发,修改php.ini文件中 session.save_path = “/tmp”。
以上方法我都尝试了,并没有解决我的问题。
最终解决的方法是安装gd

apt-get install php7.4-gd 

参考:https://www.javazxz.com/thread-1005-1-1.html
终于搞定了,太折腾了。

在这里插入图片描述

参考

https://blog.csdn.net/wanyizhilu/article/details/104684728

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

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

相关文章

C# 服务调用RFC函数获取物料信息,并输出生成Excel文件

这个例子是C#服务调用RFC函数,获取物料的信息,并生成Excel文件 上接文章:C#服务 文章目录 创建函数创建结构编写源代码创建批处理文件运行结果-成功部署服务器C#代码配置文件注意!! 创建函数 创建结构 编写源代码 创建…

在 SQL 中,区分 聚合列 和 非聚合列(nonaggregated column)

文章目录 1. 什么是聚合列?2. 什么是非聚合列?3. 在 GROUP BY 查询中的非聚合列问题示例解决方案 4. 为什么 only_full_group_by 要求非聚合列出现在 GROUP BY 中?5. 如何判断一个列是聚合列还是非聚合列?6. 总结 在 SQL 中&#…

Postman测试big-event

报错500。看弹幕,知道可能是yml或sql有问题。 所以检查idea工作台, 直接找UserMapper检查,发现完全OK。 顺着这个error发现可能是sql有问题。因为提示是sql问题,而且是有now()的那个sql。 之后通过给的课件,复制课件…

SpringBoot 2.6 集成es 7.17

引言 在现代应用开发中,Elasticsearch作为一个强大的搜索引擎和分析引擎,已经成为许多项目不可或缺的一部分。Spring Boot作为Java生态中最受欢迎的微服务框架之一,其对Elasticsearch的支持自然也是开发者关注的焦点。本文将详细介绍如何在S…

沙箱模拟支付宝支付3--支付的实现

1 支付流程实现 演示案例 主要参考程序员青戈的视频【支付宝沙箱支付快速集成版】支付宝沙箱支付快速集成版_哔哩哔哩_bilibili 对应的源码在 alipay-demo: 使用支付宝沙箱实现支付功能 - Gitee.com 以下是完整的实现步骤 1.首先导入相关的依赖 <?xml version"1…

自行下载foremos命令

文章目录 问题描述其他小伙伴的成功解决方案&#xff0c;但对我不适用解决思路失败告终 最终解决成功解决思路解决步骤 问题描述 在kali系统终端中输入foremost&#xff0c;显示无此命令 其他小伙伴的成功解决方案&#xff0c;但对我不适用 解决思路 正常来说使用命令 apt-g…

商米电子秤服务插件

概述 SunmiScaleUTS封装商米电子秤服务模块&#xff0c;支持商米旗下S2, S2CC, S2L CC等设备&#xff0c;设备应用于超市、菜市场、水果店等,用于测量商品的重量,帮助实现快捷、准确、公正的交易等一系列商业场景。 功能说明 SDK插件下载 一. 电子秤参数 型号:S2, S2CC, …

快速将索尼手机联系人导出为 HTML 文件

我想将 Sony Xperia 手机上的联系人导出到计算机上进行备份&#xff0c;并在需要时进行编辑。这可以做到吗&#xff1f;如何做到&#xff1f;作为助手我需要下载什么工具吗&#xff1f; 当您的 Android 手机上存储了如此多的重要联系人&#xff0c;而您又不想丢失它们时&#…

linux安装redis及Python操作redis

目录 一、Redis安装 1、下载安装包 2、解压文件 3、迁移文件夹 4、编译 5、管理redis文件 6、修改配置文件 7、启动Redis 8、将redis服务交给systemd管理 二、Redis介绍 1、数据结构 ①字符串String ②列表List ③哈希Hash ④集合Set ⑤有序集合Sorted Set 2、…

聆听音乐 1.5.9 | 畅听全网音乐,支持无损音质下载

聆听音乐手机版是面向广大音乐爱好者的移动应用程序&#xff0c;用户可以随时随地通过手机享受丰富的音乐资源。它提供了多种魅力功能&#xff0c;让用户在手机上畅享更舒适的音乐体验&#xff0c;每位用户都能享受精彩纷呈的收听体验。此外&#xff0c;软件还支持无损音质音乐…

在React中引入tailwind css(图文详解)

Tailwind CSS 是一个功能强大的 CSS 框架&#xff0c;旨在使开发者能够以更高效、灵活的方式创建现代、响应式的网页。与传统的 CSS 框架&#xff08;如 Bootstrap 或 Foundation&#xff09;不同&#xff0c;Tailwind 采取了“实用类”&#xff08;Utility-First&#xff09;的…

双指针算法详解

目录 一、双指针 二、双指针题目 1.移动零 解法&#xff1a; 代码&#xff1a; 2.复写零 ​编辑 解法&#xff1a; 代码&#xff1a; 边界情况处理: 3.快乐数 ​编辑 解法:快慢指针 代码&#xff1a; 4.盛水最多的容器 解法&#xff1a;&#xff08;对撞指针&#xff09;…

每天40分玩转Django:Django Celery

Django Celery 一、知识要点概览表 模块知识点掌握程度要求Celery基础配置、任务定义、任务执行深入理解异步任务任务状态、结果存储、错误处理熟练应用周期任务定时任务、Crontab、任务调度熟练应用监控管理Flower、任务监控、性能优化理解应用 二、基础配置实现 1. 安装和…

Web安全扫盲

1、建立网络思维模型的必要 1 . 我们只有知道了通信原理&#xff0c; 才能够清楚的知道数据的交换过程。 2 . 我们只有知道了网络架构&#xff0c; 才能够清楚的、准确的寻找漏洞。 2、局域网的简单通信 局域网的简单通信&#xff08;数据链路层&#xff09; 一般局域网都通…

【MATLAB APP Designer】小波阈值去噪(第一期)

代码原理及流程 小波阈值去噪是一种信号处理方法&#xff0c;用于从信号中去除噪声。这种方法基于小波变换&#xff0c;它通过将信号分解到不同的尺度和频率上来实现。其基本原理可以分为以下几个步骤&#xff1a; &#xff08;1&#xff09;小波变换&#xff1a;首先对含噪信…

CDP集群安全指南-动态数据加密

[〇]关于本文 集群的动态数据加密主要指的是加密通过网络协议传输的数据&#xff0c;防止数据在传输的过程中被窃取。由于大数据涉及的主机及服务众多。你需要更具集群的实际环境来评估需要为哪些环节实施动态加密。 这里介绍一种通过Cloudera Manager 的Auto-TLS功能来为整个…

信息安全、网络安全和数据安全的区别和联系

1. 前言 有次有朋友问我 信息安全、网络安全和数据安全&#xff0c;这三个词平时写文档时怎么用&#xff1f; 我想很多人都说不清。这次我查阅了资料&#xff0c;尽量讲清楚这三者之间的区别和联系。 2. 信息安全 2.1 定义 信息安全是指为数据处理系统建立和采用的技术和管…

vim 的基础使用

目录 一&#xff1a;vim 介绍二&#xff1a;vim 特点三&#xff1a;vim 配置四&#xff1a;vim 使用1、vim 语法格式2、vim 普通模式&#xff08;1&#xff09;保存退出&#xff08;2&#xff09;光标跳转&#xff08;3&#xff09;文本删除&#xff08;4&#xff09;文本查找&…

Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结

注&#xff1a;因为本人也是第一次接入广告与支付SDK相关的操作&#xff0c;网上也查了很多教程&#xff0c;很多也都是只言片语或者缺少一些关键步骤的说明&#xff0c;导致本人也是花了很多时间与精力踩了很多的坑才搞定&#xff0c;发出来也是希望能帮助到其他人在遇到相似问…

【嵌入式硬件】直流电机驱动相关

项目场景&#xff1a; 驱动履带车&#xff08;双直流电机&#xff09;前进、后退、转弯 问题描述 电机驱动MOS管烧毁 电机驱动采用IR2104STRH1R403NL的H桥方案&#xff08;这是修改之后的图&#xff09; 原因分析&#xff1a; 1.主要原因是4路PWM没有限幅&#xff0c;修改…