Laravel项目无法连接到Wordpress数据库

时间:2019-03-26 20:15:22

标签: php mysql wordpress laravel

我正在学习Laravel,它将用作wordpress数据库的后端。我正在构建一个Laravel API与WP数据库进行通信的步骤。 因此,我创建了一个WP项目,并记下了cPanel中的数据库设置,然后使用它来更新Laravel .env文件。我运行了“ php artisan serve”,并且laravel页面在那里。一切都很好。因此,我开始在laravel项目中添加wordpress文件,并使用define('WP_USE_THEMES',false)在laravel public / index.php文件中配置wordpress;然后需要wp-blog-header.php文件...我收到一个错误消息,说wp-config文件丢失。因此,我从WP cPanel下载了wp-config.php文件,并将其添加到Laravel wordpress文件夹中,而保留了wp-config-example.php文件。这使我陷入数据库错误:“连接数据库连接时出错”。不过,奇怪的是,我的Wordpress站点具有我尝试连接Laravel的数据库,可以正常加载,没有错误,错误仅出现在Laravel的localhot:8000上。我不确定这是WP还是Laravel的问题,但是我尝试了两种方法的调试。

设置:Wordpress 5.1.1,PHP7.2.1 Laravel5 +

我在这里和Google上尝试了一些解决方案,但无济于事。例如problems with database connection in 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/

我认为重要的是要提到连接到WP数据库的初始.env文件编辑(即使用cPanel数据库凭据)可以很好地工作。但是我注意到,我从cPanel下载的wp-config文件的数据库设置与cPanel中的数据库设置不同,因此,除了数据库名称之外,.env的数据库设置也不同。所以我将wp-config编辑为.env,反之亦然,仍然没有骰子。有解决方案吗?

这是使用cPanel凭据的.env文件。

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 :(得分:0)

larwell需要不同的配置格式,例如版本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'    => '',
),

如果您愿意,可以在larewel config wp config中进行隐藏,并使用wp约束

答案 1 :(得分:0)

您的Laravel项目是否与WordPress环境托管在同一台服务器上?如果不是,那可能是由于cPanel阻止了对数据库的外部访问。

确保运行Laravel的主机的IP地址被允许作为远程MySQL连接。

这可以通过在cPanel中的数据库下单击“远程 MySQL ”进行管理。