Я развертываю WordPress и его базу данных через docker-compose.yml, каждый в своем контейнере.Такое развертывание должно выполняться без участия человека во время процесса установки.Это подразумевает необходимость указывать непосредственно в файлах всю информацию, которая потребуется в процессе установки.Эти предварительные настройки позволят избежать взаимодействия с человеком, например, информируя "language", "username", "password" и "title site", во время процесса установки.
Я пытаюсь установить 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 );