• Решено sergey6996

    (@sergey6996)


    	ini_set('error_reporting', E_ALL);
    	ini_set('display_errors', 1);
    	ini_set('display_startup_errors', 1);	
    
    	define( 'WP_INSTALLING', true );
    	require 'wp-load.php';
    	require 'wp-admin/includes/upgrade.php';
    	require 'wp-admin/includes/translation-install.php';
    	require 'wp-includes/wp-db.php';
    
    	if(is_blog_installed()){
    		echo 'Блог <b>уже</b> установлен!';
    	} else {
    		// Вручную, заменяю переменные в wp-config-sample.php
    		wp_install({blog_title}, {wp_login}, {wp_email}, true, $deprecated = '', {wp_passwd}, {wp_lang_install});		
    		echo 'Блог установлен!';
    	}

    Вот такой вот скрипт, пришел к нему, как к самому (и всегда) актуальному и рабочему способу установки WP не вручную, через бразуер, а посредством запуска такого скрипта.

    Но столкнулся с проблемой, так как у меня явно не полная установка — она вообще не работает на WP c https://wordpress.org/latest.zip.

    При этом, удается все сделать, если скачать русскую локализацию, куда файлы локализации включены. А так я получаю на вывод экран выбора языка, хотя в функции указал какой язык использовать. Вопрос — что добавить в скрипт, чтобы все наконец заработало и он получил нужную мне локализацию? В данном случае это en_US или ru_RU…

    • Тема изменена 7 лет, 4 месяца назад пользователем sergey6996.
Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Вот такой вот скрипт

    У меня выдаёт ошибку 500, потому что дважды определяется класс wpdb из файла wp-includes/wp-db.php. Второй раз лишний, wp-load.php уже подключает этот файл.

    получаю на вывод экран выбора языка, хотя в функции указал какой язык использовать

    У меня не воспроизвелось, если не менять префикс таблиц БД в wp-config.php после установки.

    Вопрос — что добавить в скрипт, чтобы все наконец заработало и он получил нужную мне локализацию?

    В таком виде работает:

    
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    
    define( 'WP_INSTALLING', true );
    require 'wp-load.php';
    require 'wp-admin/includes/upgrade.php';
    require 'wp-admin/includes/translation-install.php';
    
    if ( is_blog_installed() ) {
    	echo 'Блог <b>уже</b> установлен!';
    } else {
    	$locale = 'ru_RU'; // Заменить на {wp_lang_install}
    	if ( 'en_US' !== $locale ) {
    		wp_download_language_pack( $locale );
    		load_default_textdomain( $locale );
    		$GLOBALS['wp_locale'] = new WP_Locale();
    	}
    	// Вручную заменяю переменные в wp-config-sample.php
    	wp_install( {blog_title}, {wp_login}, {wp_email}, true, $deprecated = '', {wp_passwd}, $locale );
    	echo 'Блог установлен!';
    }
    
    <?php
    
    	echo 'Запущен скрипт установки блога<br />';
    	ini_set('error_reporting', E_ALL);
    	ini_set('display_errors', 1);
    	ini_set('display_startup_errors', 1);	
    
    	define( 'WP_INSTALLING', true );
    	require 'wp-load.php';
    	require 'wp-admin/includes/upgrade.php';
    	require 'wp-admin/includes/translation-install.php';
    	echo 'Подключены файлы<br />';
    
    	if(is_blog_installed()){
    		echo 'Блог <b>уже</b> установлен!';
    	} else {
    		if($config_sample = file_get_contents('wp-config-sample.php')){
    			$config_sample = str_replace('database_name_here', 'db_name', $config_sample);
    			$config_sample = str_replace('username_here', 'u_name', $config_sample);
    			$config_sample = str_replace('password_here', '5555', $config_sample);
    			$config_sample = str_replace('localhost', 'localhost', $config_sample);
    			$config_sample = str_replace('wp_', 'preffix_', $config_sample);
    			file_put_contents('wp-config.php', $config_sample);
    		}
    		
    		wp_download_language_pack( 'en_EN' );
    		load_default_textdomain( 'en_EN' );
    		$GLOBALS['wp_locale'] = new WP_Locale();		
    		wp_install('СС', 'user', '30615@mail.ru', true, $deprecated = '', 'uDjK6', 'en_EN');
    		echo 'Блог установлен!';
    	}
    
    	return;
    
    ?>

    Я точно в такой же ситуации — результат работы скрипта, это на деле вывод страницы выбора языка и все, то есть открытие этого скрипта в корне сайта приводит к тому, что с него идет редирект, при этом очевидно, что даже файл настроек не создается, так как его поле работы в папке нету… Кажется все случается это только на этапе подключения файлов….

    • Ответ изменён 7 лет, 4 месяца назад пользователем sergey6996.
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    wp_download_language_pack( 'en_EN' );

    Локали en_EN не существует. Есть en_US, но для неё не нужно скачивать языковой пакет.

    Вручную заменяю переменные в wp-config-sample.php

    Только сейчас обратил внимание на этот момент. wp-config-sample.php трогать не нужно, нужно скопировать его в wp-config.php и уже там менять значения.

    очевидно, что даже файл настроек не создается

    Его нужно создать вручную, см. выше.

    http://afro.ecou.us/ — тут кстати можно увидеть, как это срабатывает. Скрипт — это http://afro.ecou.us/wp-install-my.php — который на самом деле проскакивает так ничего и не сделав. Именно его поправленное содержание есть тут, именно он не может сработать и сразу делает редирект на установку… Заменил на en_US, но кажется до этого просто не доходит…

    Его нужно создать вручную, см. выше.

    Я так и делаю в скрипте, то есть беру wp-config-sample.php — меняю в нем значение и на этом создаю новый wp-config.php ….

    • Ответ изменён 7 лет, 4 месяца назад пользователем sergey6996.

    Кажется я понял в чем проблема — я не создаю файл заранее, файл конфигурации нужен сразу а не потом…

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Я так и делаю в скрипте

    Не заметил, теперь вижу 🙂

    файл конфигурации нужен сразу а не потом

    Именно так, ещё до подключения файлов. Иначе сработает функция wp_not_installed() и перенаправит на страницу установки.

    Мда, пришел к другой проблеме с пользователями, сейчас поправлю и кажется все должно заработать…

    Создал пользователя, путем двух sql запросов

    CREATE USER 'wp_uid_1'@'localhost' IDENTIFIED BY '".$new_passwd."';
    GRANT ALL PRIVILEGES ON db_uid_1.* TO 'wp_uid_1'@'localhost'

    Но далее устанавливаю WP, где именно эту БД указал (единственную на которую у него есть права. как необходимую БД), но на удивление http://afro.ecou.us/ — соединение не стабильно… При этом в phpmyadmin — тоже войти не получается, просто потому что выдает мне 1045 ошибку. Хотя и не ругается на неверный логин или пароль…

    Пришел к тому, что пользователю просто маловато привелегий, ну то есть не хватает чего-то чтобы подключаться… Правда, что именно ему не хватает понять сложно. При это я проверил, на другом сервере http://brica.xolds.ru/ точно так же созданный пользователь работает без проблемы.

    Разница в том, что там где работает, он создавался через phpmyadmin первым делом и у него кажется есть в этом какое-то отличие, хотя какое понять сложно…

    • Ответ изменён 7 лет, 4 месяца назад пользователем sergey6996.
    • Ответ изменён 7 лет, 4 месяца назад пользователем sergey6996.

    Все, сработало именно чуть поправил порядок (сделал конфиг файл в самую первую очередь еще вообще до всего). А для БД я просто пароль неверный устанавливал….

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Установка через функции» закрыта для новых ответов.