我收到了一个使用 Contao 3.4.50 CMS 的网站,我的任务是慢慢将其升级到最新版本,但首先我需要让整个网站在我的本地主机上运行。
我在用:
- Ubuntu 20.04.6 LTS
- 阿帕奇
- Php 5.6
- MySQL 版本 5.7.42
我已经到了网站主页在 Firefox 的 localhost 上正确显示的地步。当我尝试切换到另一个页面时,问题就出现了。页面一改变,我就得到了以下信息:
Not Found
The requested URL was not found on this server.
Apache/2.4.41 (Ubuntu) Server at 127.0.0.1 Port 80
我检查了我的localconfig.php
文件,连接到本地数据库的凭据是正确的。如果我更改其中任何一个,甚至主页都会停止显示,让我相信我已成功连接到我的数据库。
我还检查了我的.htaccess
文件是否位于我的 Contao 网站的根文件夹中,并且确实如此。
下面是我的 Apache 错误日志中的一行示例:
"GET /izobrazevanje/izobrazevalni-dogodki.html HTTP/1.1" 404 488 "http://localhost/"
当我检查我的 MySQL 数据库时,我可以看到在 tl_page 表中确实有一行已izobrazevanje/izobrazevalni-dogodki
设置为其别名。
website-archive.conf
我的目录中的内容如下/etc/apache/sites-available/
:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName website-archive
ServerAlias www.website-archive
DocumentRoot /var/www/website-archive/sic-22-06-2023/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
知道为什么其他页面没有显示吗?
答案1
有几种因素可能导致这一问题。
mod_rewrite
被禁用
您可能需要mod_rewrite
通过执行以下命令在服务器上启用:
sudo a2enmod rewrite
sudo service apache2 restart
AllowOverride
指令缺失或错误
检查你的虚拟主机配置是否缺少AllowOverride
指令。默认的 vhost 配置文件是/etc/apache2/sites-available/000-default.conf
,但这可能会因您的设置而异。确保您有AllowOverride All
安装 Contao CMS 的目录。它应该看起来像这样:
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
.htaccess
文件中有错误
如果您使用的是默认值,这种情况发生的可能性较小.htaccess
。但是,如果您对其进行了一些更改,请确保它们是正确的。
答案2
关注后@soritov 建议并添加
<Directory /var/www/website-archive/sic-22-06.2023/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
对于我的website-archive.conf
文件并检查我的 apache 错误日志,我需要安装两个模块并使用以下命令向我的 php.ini 文件添加两行:
sudo apt-get install php5.6-xml php5.6-mbstring
用于安装模块和
sudo nano /etc/php/5.6/apache2/php.ini
要访问我的php.ini
文件,我在其中添加了以下几行:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
extension=dom.so
extension=mbstring.so