我正在通过docker-compose.yml部署WordPress及其数据库,每个容器都在其容器中。在安装过程中,这种部署必须在没有人工干预的情况下完成。这意味着需要直接在文件上设置安装过程中所需的所有信息。这些预设将避免在安装过程中人为干预,例如通知“语言”,“用户名”,“密码”和“站点标题”。
我正在尝试wp-config.php设置语言(仍在尝试),但是到目前为止,我对如何直接在文件上设置其他信息(如用户名,密码和网站标题)还没有想法。
install.php中最相关的代码如下。
case 1: // Step 1, direct link or from language chooser.
if ( ! empty( $language ) ) {
$loaded_language = wp_download_language_pack( $language );
if ( $loaded_language ) {
load_default_textdomain( $loaded_language );
$GLOBALS['wp_locale'] = new WP_Locale();
case 2:
if ( ! empty( $language ) && load_default_textdomain( $language ) ) {
$loaded_language = $language;
$GLOBALS['wp_locale'] = new WP_Locale();
} else {
$loaded_language = 'en_US';
}
display_header();
// Fill in the data we gathered
$weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : '';
$user_name = isset($_POST['user_name']) ? trim( wp_unslash( $_POST['user_name'] ) ) : '';
$admin_password = isset($_POST['admin_password']) ? wp_unslash( $_POST['admin_password'] ) : '';
$admin_password_check = isset($_POST['admin_password2']) ? wp_unslash( $_POST['admin_password2'] ) : '';
$admin_email = isset( $_POST['admin_email'] ) ?trim( wp_unslash( $_POST['admin_email'] ) ) : '';
$public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 1;
if ( $error === false ) {
$wpdb->show_errors();
$result = wp_install( $weblog_title, $user_name, $admin_email, $public, '', wp_slash( $admin_password ), $loaded_language );