在 Linux Mint 21 的 Apache2 上使用 YiiFramework 1.1 配置遗留项目

Configuration of a legacy project with YiiFramework 1.1 on Apache2 in Linux Mint 21

提问人:Bryan Henrique Cruz 提问时间:6/10/2023 更新时间:6/10/2023 访问量:13

问:

我有一个PHP 7.3项目,它使用了YiiFramework 1.1。以前,我在带有 XAMPP 的 Windows 10 上使用它,它按预期运行。

我面临的问题是,在Linux上安装必要的软件包(apache2,php7.3及其各自的附加软件包,mysql 8)后,它无法识别请求并始终返回“404 Not Found”错误。

我根据自己对需求的理解配置了apache2:

  1. 我为目录/var/www/html/设置了“AllowOverride All”。
  2. 我为 PHP 启用了“重写”和“标头”模组,因为我的项目需要它们。
  3. 我将我的项目添加到文件夹“/var/www/html/”中。

该项目名为“cardapio10”,我将代码放在“/var/www/html/”中的“cardapio10/”文件夹中,类似于在Windows中的“C://xampp/htdocs”。

该项目的根结构如下:

- cardapio10/
---- app/
---- assets/
---- font/
---- protected/
---- yiiframework/
---- .git
---- .gitignore
---- .htaccess
---- .prettierrc
---- favicon.ico
---- index.php

.htaccess的内容如下:

<IfModule mod_rewrite.c>
RewriteEngine On
Header Set Access-Control-Allow-Origin "*"
RewriteBase /cardapio10
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cardapio10/index.php [L]
</IfModule>

我的期望是,在访问“http://localhost/admin/login”时,YiiFramework应该解释“/admin/login”并相应地重定向我。然而,这并没有发生。有趣的是,我注意到如果我以“http://localhost/cardapio10/admin/login”身份访问它,它会找到该页面。

我想知道我需要哪些配置才能在不包含“/cardapio10/”的情况下访问 URL 并达到相同的结果。

Linux Apache Yii DevOps

评论


答: 暂无答案