问题描述
嘿伙计们。作为最后的手段,我在这里问这个问题,因为我已经尝试解决这个问题近两天了。
我正在尝试在我的 Drupal Web 应用程序上启用干净的 URL。我访问了几个公开问题,例如this一个,但无济于事。如果这是转帖,我深表歉意。
一些(相关)上下文:
- 该项目涉及使用 Vagrant 脚本自动设置虚拟机。
- VM 没有 GUI。
- Vagrant 使用 VirtualBox。
- Vagrant 使用 bento/centos-7.9 作为基础框。
- 每当我需要终端来执行 PS 或 Linux 命令时,我都会在物理设备上使用 WSL。
我正在使用以下方法在 VM 上设置 LAMP 堆栈:
- CentOS 7.9,如上所述。
- Apache 2.4.6,如下所示:
yum -y install httpd
- MariaDB 10.5.9,如下所示:
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
./mariadb_repo_setup
yum -y install mariadb-server
- PHP 7.4.16,如:
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-PHP74
-
我正在存储提取的 Drupal 内容(index.PHP、update.PHP、 核心、站点 ...) 在
/var/www/drupal/
下。我已经给了 Apache 该文件夹的递归所有权,以免造成必须设置权限的麻烦。无论如何,这不是一个生产项目。 -
在
/etc/httpd/conf/httpd.conf
文件中,我只接触了 DocumentRoot,我将其设置为DocumentRoot "/var/www/drupal"
。我不想想使用.htaccess。 -
当我运行
httpd -M | grep rewrite
时,我收到输出 rewrite_module (shared)。当我在测试页上运行PHPinfo();
时,mod_rewrite 出现在加载的模块中。
运行应用程序,一切正常,并产生以下输出:
我知道另外两个警告,但这些是另一天的担忧。当我不顾警告继续运行时,Apache 加载 index.PHP 就好了:
但是,当我点击任意按钮时,就会发生这种情况:
Screenshot of yet another problem
我怀疑这是未启用干净网址的结果。但是,据我所知,所有必要的模块都已安装。
到目前为止我尝试过的:
- 在
/etc/httpd/conf/httpd.conf
,尝试所有建议here。 - 在
/etc/httpd/conf/httpd.conf
中,将每个 AllowOverride 选项设置为 All。 - 检查兼容性问题。
- 移动文档根目录。
- 更多...
非常感谢您的帮助。提前谢谢了。如果您需要更多信息,我会尽快回复。
解决方法
大家好。问题已解决。
不知何故,它突然起作用了。我现在可以浏览网站而不会弹出未找到错误。
我重试了一个以前不起作用的方法,但现在它起作用了。其他任何变量都没有变化。我编辑了 /etc/httpd/conf/httpd.conf
。除了已经将 DocumentRoot 更改为 /var/www/drupal
之外,我还在其下方添加了另一条配置:
<Directory "/var/www/drupal">
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
我从 here 处获得了这些信息。
CLEAN URLS 警告仍然存在:
但是,尽管有警告,但在继续时似乎没有问题。事实上,在应用程序本身中,导航到错误/警告部分,CLEAN URLS 警告甚至不存在!