邮件和搜狐沟通过,对方说是
轻量虚拟机-容器里面是一个“临时性文件系统”;也就是说,应用在容器中动态创建的文件、目录,是随时可能消失的。这是因为当轻量虚拟机出现故障,或者轻量虚拟机所在物理机器出现故障的情况下,需要将这个轻量虚拟机动态的迁移到别的物理机器上,保证应用的“高可用性”。迁移后,原来轻量虚拟机里面的文件、目录就都丢失了;这也是PaaS通用的处理逻辑。对于您这种问题,建议把需要持久化的数据存在云存储上。
看样子,wordpress可能是判断了某个文件是否存在来确定是否需要安装,但是本地的文件是没办法持久化的,判断状态的文件丢失了,导致wordpress回到安装界面。
所以我就想问一下,wordpress是到底是怎么判断是否已经进行了安装了,然后怎么patch一下源代码从而能正常使用呢。
之前grep出来了几个函数,但是我也不懂php,不知道怎么修改。谢谢大家了~
grep -r "wp_not_installed"
wp-settings.php:wp_not_installed();
wp-includes/load.php:function wp_not_installed() {
virusdefender@asus:~/Desktop/wordpress$ grep -r "is_blog_installed"
wp-admin/install.php:if ( is_blog_installed() ) {
wp-admin/includes/upgrade.php: if ( ! is_blog_installed() )
wp-admin/upgrade.php:<?php if ( get_option( 'db_version' ) == $wp_db_version || !is_blog_installed() ) : ?>
wp-admin/maint/repair.php: if ( isset( $_GET['referrer'] ) && 'is_blog_installed' == $_GET['referrer'] )
wp-includes/default-widgets.php: if ( !is_blog_installed() )
wp-includes/functions.php:function is_blog_installed() {
wp-includes/functions.php: if ( wp_cache_get( 'is_blog_installed' ) )
wp-includes/functions.php: wp_cache_set( 'is_blog_installed', $installed );
wp-includes/functions.php: $wpdb->error = sprintf( __( 'One or more database tables are unavailable. The database may need to be <a href="%s">repaired</a>.' ), 'maint/repair.php?referrer=is_blog_installed' );
wp-includes/functions.php: wp_cache_set( 'is_blog_installed', false );
wp-includes/load.php: if ( ! is_blog_installed() && ! defined( 'WP_INSTALLING' ) ) {
wp-includes/load.php: } elseif ( ! is_blog_installed() && false === strpos( $_SERVER['PHP_SELF'], 'install.php' ) && !defined( 'WP_INSTALLING' ) ) {
据我所知,你可以不需要修改 wp 代码,建议 wp 在你本地安装后,直接打包可以运行的代码部署上去。