我目前的问题如下。
我在主机maschine上有一个本地LAMP环境WP Multisite,我将其迁移到一个使用jailkit进行安全保护的ISPConfig客户端目录(vbox Debian 10测试服务器)。这是在我的测试服务器上,因此还没有在线可用的内容)
迁移之后,由于上载文件路径从/var/www/html/wordpress-directory/wp-content/
到/web/wp-content/
.
以更正我的wp调试日志中的各种错误。我使用了以下代码:
/* Multisite */
define( \'WP_ALLOW_MULTISITE\', true );
define( \'FS_METHOD\', \'direct\' );
define( \'FS_CHMOD_DIR\', ( 0755 & ~ umask() ) ); // change permissions of directories
define( \'FS_CHMOD_FILE\', ( 0644 & ~ umask() ) ); // change permissions of files
define( \'MULTISITE\', true );
define( \'SUBDOMAIN_INSTALL\', true );
define( \'DOMAIN_CURRENT_SITE\', \'tester1.example.com\' );
define( \'PATH_CURRENT_SITE\', \'/\' );
define( \'SITE_ID_CURRENT_SITE\', 1 );
define( \'BLOG_ID_CURRENT_SITE\', 1 );
//These work, but open_basedir error remain
define(\'WP_CONTENT_DIR\', ABSPATH . \'wp-content\' );
define( \'WP_PLUGIN_DIR\', WP_CONTENT_DIR . \'/plugins\' );
上面的代码用于在迁移后更正大多数错误,但此错误仍保留在我的wp调试日志中:
[11-Nov-2021 07:15:46 UTC] PHP Warning: file_exists(): open_basedir restriction in effect. File(/var/www/clients/client1/web10/web/wp-content/db.php) is not within the allowed path(s): (/var/www/clients/client1/web10/web/wp-content:/var/www/clients/client1/web10/web:/var/www/clients/client1/web10/private:/var/www/clients/client1/web10/tmp:/var/www/example.com/web:/srv/www/example.com/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/dev/random:/dev/urandom) in /var/www/clients/client1/web10/web/wp-includes/load.php on line 545
[11-Nov-2021 07:15:46 UTC] PHP Stack trace:
[11-Nov-2021 07:15:46 UTC] PHP 1. {main}() /var/www/clients/client1/web10/web/wp-admin/themes.php:0
[11-Nov-2021 07:15:46 UTC] PHP 2. require_once() /var/www/clients/client1/web10/web/wp-admin/themes.php:10
[11-Nov-2021 07:15:46 UTC] PHP 3. require_once() /var/www/clients/client1/web10/web/wp-admin/admin.php:34
[11-Nov-2021 07:15:46 UTC] PHP 4. require_once() /var/www/clients/client1/web10/web/wp-load.php:50
[11-Nov-2021 07:15:46 UTC] PHP 5. require_once() /var/www/clients/client1/web10/web/wp-config.php:138
[11-Nov-2021 07:15:46 UTC] PHP 6. require_wp_db() /var/www/clients/client1/web10/web/wp-settings.php:124
[11-Nov-2021 07:15:46 UTC] PHP 7. file_exists($filename = \'/var/www/clients/client1/web10/web/wp-content/db.php\') /var/www/clients/client1/web10/web/wp-includes/load.php:545
当我检查时
/var/www/clients/client1/web10/web/wp-includes/load.php:545
, 我明白了:
require_once ABSPATH . WPINC . \'/wp-db.php\';
if ( file_exists( WP_CONTENT_DIR . \'/db.php\' ) ) {
require_once WP_CONTENT_DIR . \'/db.php\';
}
以上WP\\u CONTENT\\u DIR位置已由我的WP config定义。php设置,但似乎被忽略
/var/www/clients/client1/web10/web/wp-includes/load.php:545
ISPConfig内部(>)&燃气轮机;域(>)&燃气轮机;网站(>)&燃气轮机;选项(>)&燃气轮机;打开\\u basedir。。。。我有:
/var/www/clients/client1/web10/web:/var/www/clients/client1/web10/private:/var/www/clients/client1/web10/tmp:/var/www/example.com/web:/srv/www/example.com/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/dev/random:/dev/urandom
显然,
wp-content/db.php
位于允许的目录内
/var/www/clients/client1/web10/web:
我仔细检查了(在服务器上的jailkit shell之外)系统的\'/etc/php/7.4/fpm/php。ini并确认open\\u base\\u dir尚未硬编码,因为这将;“中断”;ISPConfig。
; or per-virtualhost web server configuration file.
; Note: disables the realpath cache
; http://php.net/open-basedir
;open_basedir =
域下(&T)&燃气轮机;网站(>)&燃气轮机;PHP。。。。我有
PHP: PHP-FPM
PHP Version: 7.4
域下(&T)&燃气轮机;网站(>)&燃气轮机;选项。。。。我有:
Use Socket For PHP-FPM (checked / enabled)
Chroot PHP-FPM (unchecked / disabled)
PHP-FPM Process Manager (ondemand PHP version >=5.3.9)
这些是我在;自定义php。ini设置;字段:
post_max_size = 48M
max_input_vars = 1200
upload_max_filesize = 24M
max_execution_time = 300
memory_limit = 256M
我不希望通过apache或PHP禁用open\\u basedir。因为这会破坏ISPConfig并削弱我的安全性。从我的wp配置设置可以看出,我尝试了各种解决方案,但似乎什么都不起作用。。。
如何调整WP和/或ISPConfig以消除open\\u basedir限制错误?
注意:我试图通过ISPConfig从单个站点删除open\\u basedir选项,但它们会自动恢复。我不想在全球范围内关闭它们,因为那样会造成安全漏洞。。。有什么建议吗?