Проект Laravel не может подключиться к базе данных Wordpress - PullRequest
0 голосов
/ 26 марта 2019

Я изучаю Laravel, который я использую в качестве бэкэнда, с базой данных WordPress.Я нахожусь на этапе создания Laravel API для связи с базой данных WP.Итак, я создал проект WP и принял к сведению настройки базы данных в cPanel, которые я затем использовал для обновления файла Laravel .env.Я запустил "php artisan serve", и там была страница ларавеллы.Все отлично и денди.Поэтому я приступил к добавлению файлов wordpress внутри проекта laravel и настроил wordpress внутри файла laravel public / index.php с помощью define ('WP_USE_THEMES', false);затем требуется файл wp-blog-header.php ... Я получил сообщение о том, что файл wp-config отсутствует.Итак, я скачал файл wp-config.php из моей WP cPanel и добавил его в папку WordPress Laravel, оставив файл wp-config-example.php без изменений.Это привело меня к ошибке базы данных: «Ошибка подключения к базе данных».Странно то, что мой Wordpress-сайт, на котором есть база данных, к которой я пытаюсь подключиться, Laravel загружается нормально, ошибок нет, ошибка появляется только на localhot Laravel: 8000.Я не уверен, что это проблема WP или Laravel, но я попытался отладить с любого из этих подходов.

Установка: Wordpress 5.1.1, PHP7.2.1 Laravel5 +

Я попробовал несколько решенийздесь и в Google безрезультатно. Например, проблемы с подключением к базе данных в laravel 5

https://www.rosehosting.com/blog/error-establishing-a-database-connection/

https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-error-establishing-a-database-connection-in-wordpress/

Я так думаюВажно отметить, что первоначальное редактирование файла .env (т.е. с использованием учетных данных базы данных cPanel) для подключения к базе данных WP работало нормально.Но я заметил, что файл wp-config, который я скачал с cPanel, имел настройки БД, отличающиеся от настроек в cPanel и, следовательно, .env, за исключением имени базы данных.Поэтому я отредактировал wp-config так, чтобы он выглядел как .env, и наоборот, до сих пор без кубиков.Любые решения?

Вот файл .env с использованием учетных данных cPanel.

DB_CONNECTION=mysql
DB_HOST=sql201.epizy.com
DB_PORT=3306
DB_DATABASE=epiz_23436343_w767
DB_USERNAME=epiz_23436343
DB_PASSWORD=KJYN75fiOnM5S

Вот файл wp-config.(Я оставил для сравнения и cPanel, и исходные учетные данные, но я комментировал их как необходимый)

/** The name of the database for WordPress */
define( 'DB_NAME', 'epiz_23436343_w767' );

/** MySQL database username */
define( 'DB_USER', '23436343_3' );
define( 'DB_USER', 'epiz_23436343' );
/** MySQL database password */
define( 'DB_PASSWORD', '(po5n5S(85' );
define( 'DB_PASSWORD', 'KJYN75fiOnM5S' );

/** MySQL hostname */
define( 'DB_HOST', 'sql201.byetcluster.com' );
define( 'DB_HOST', 'sql201.epizy.com' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

Я официально застрял, и любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Ваш проект Laravel размещен на том же сервере, что и ваша среда WordPress?Если нет, то это может быть связано с тем, что cPanel блокирует внешний доступ к вашей базе данных.

Убедитесь, что IP-адрес вашего хоста, на котором работает Laravel, разрешен как удаленное соединение MySQL.

Это можно сделать, нажав на Remote MySQL под базами данных в cPanel.

0 голосов
/ 27 марта 2019

Ларвелл требует другой формат конфигурации, например, для версии 4.2 :

'mysql' => array(
    'read' => array(
        'host' => '192.168.1.1',
    ),
    'write' => array(
        'host' => '196.168.1.2'
    ),
    'driver'    => 'mysql',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

Если вы хотите, вы можете включить iclude в larewel config wp config и использовать ограничения wp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...