在我的小型云服务器上运行 do-release-upgrade 后,我的网页无法工作,phpadmin 也无法启动。升级从 20.04 Server 升级到 22.04 Server。升级成功结束。我可以通过 ssh 进入服务器
当我输入我的网页地址时,我看到了index.php的内容,但仅此而已。
<?php
// don't forget the / before the file name!! VIP VIP VIP DO NOT FORGET THE / ï¼ï¼
//include $_SERVER['DOCUMENT_ROOT'] . '/startfile.html.php';
header('location: startfile.html.php')
?>
但我没有得到我的startfile.html.php。升级前一切正常!
另外,我无法访问 phpmyadmin,我只看到这个而不是登录页面:
<?php
declare(strict_types=1);
use PhpMyAdmin\Routing;
if (! defined('ROOT_PATH')) {
// phpcs:disable PSR1.Files.SideEffects
define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
// phpcs:enable
}
global $route, $containerBuilder;
require_once ROOT_PATH . 'libraries/common.inc.php';
$dispatcher = Routing::getDispatcher();
Routing::callControllerForRoute($route, $dispatcher, $containerBuilder);
我可以通过 ssh 访问服务器。
apache2 mydomain.error.log 中有一个错误,说它无法统计 mydomain/public_html/wp-login.php
我不知道为什么它要寻找 wp-login.php 我从来没有这样的文件。
为什么我的 index.php 无法打开我的 startfile.html.php?
我可以以普通非 root 用户身份从命令行访问 mysql。
答案1
问题解决了一半:
在 /etc/apache2/mods-enabled 中,php7.4 和 php8.1 都有条目:
php7.4.load 和 php7.4.conf php8.1.load 和 php8.1.conf
php7.4 未安装。但我认为 apache2 正在尝试加载 php7.4 模块
我将它们重命名为 php7.4.load.old 和 php7.4.conf.old
现在我可以在浏览器中打开 phpmyadmin,因此一半的问题解决了。
仍在尝试弄清楚为什么 PHP 就网页而言无法工作!
现在网页可以正常工作了:我将其放入 /etc/apache2/apache2.conf 中
<Directory /var/www/*>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
之前我只看过 William Desportes 推荐的下面这个,但它限制了在 /var/www/ 中打开文件
<Directory />
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
#AllowOverride None
#Require all denied
# limit libapache2-mod-php to files and directories necessary by pma
# PHP 8+
<IfModule mod_php.c>
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /var/www/:/usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
</IfModule>
</Directory>
/var/log/apache2/mydomain.com-error.log 中的错误是:
[Thu Jul 13 08:39:27.883981 2023] [php:warn] [pid 6793] [client 35.167.198.156:55492] PHP 警告:未知:open_basedir 限制生效。文件 (/var/www/mydomain.com/public_html/index.php) 不在允许的路径内:(/usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/) 位于未知的第 0 行
现在看来一切都正常了!