繁体   English   中英

PHP Slim 抛出内部服务器错误 500

[英]PHP Slim throws Internal Server Error 500

我正在尝试部署一个在本地机器上开发的 RESTful Web 应用程序。 相同的代码在本地 XAMPP 服务器中运行良好,但在上传到远程 Linux 服务器时无法加载。

这是.htaccess 文件

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]

由于它不起作用,我也尝试了小修改,

RewriteEngine On 
RewriteBase /slim/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

我仍然收到错误 500。似乎远程服务器正在阻止脚本或其文件被执行。 这绝对很奇怪,因为相同的代码在本地服务器中完美运行。 任何形式的帮助或建议将不胜感激。

该文件的文件权限也设置为777 (读、写、执行)

远程服务器中的当前 PHP 版本是PHP V5.6

我认为您在服务器上使用 suphp 并且您已为所有文件设置 777 权限,这就是您面临此问题的原因。 请将您的所有文件权限更改为 644 并将文件夹权限更改为 755 并检查您的域 URL。

为了能够在实时服务器(例如 IONOS 服务器)上运行您的 PHP slim 应用程序,
您需要解决两件事:
1. 网络服务器:
在 /var/www/html/myapp (根目录路径)中创建一个 .htaccess 文件,其中 myapp 目录存储您所有的 slim 应用程序文件。

重写引擎开启
重写基础/myapp
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

这里的关键是必须设置的 RewriteBase 指令。
2. 你的 Slim 4 应用配置
在您的 index.php 中,添加:

$app->setBasePath('/myapp');

中提琴!

按照链接进行详细说明https://akrabat.com/running-slim-4-in-a-subdirectory/#the-web-server-apache

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM