eme*_*his 16 wordpress bash mamp wordpress-plugin wp-cli
我正在按照插件测试设置/安装说明进行操作.我wp scaffold plugin-tests my-plugin跑了 但是在我尝试运行的下一步,bash bin/install-wp-tests.sh wordpress_test root '' localhost latest我得到以下错误:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (61)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
Run Code Online (Sandbox Code Playgroud)
我的本地Wordpress站点正在运行MAMP(正在运行).我不确定这是否与安装脚本相关,因为我认为它正在创建一个临时数据库来运行测试......如果它使用内置的OSX mysql或MAMP的MySQL是否重要?
这是来自的输出 wp --info
$ ./vendor/wp-cli/wp-cli/bin/wp --info
PHP binary: /Applications/MAMP/bin/php/php5.6.10/bin/php
PHP version: 5.6.10
php.ini used: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini
WP-CLI root dir: /Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/wp-cli/wp-cli
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.19.2
Run Code Online (Sandbox Code Playgroud)
更新2 我发现原来MySQL没有安装......这就是我无法连接的原因!但现在是.我运行了安装脚本,这有效......
$ ./vendor/wp-cli/wp-cli/bin/wp db tables
wp_users
wp_usermeta
wp_posts
wp_comments
wp_links
wp_options
wp_postmeta
wp_terms
wp_term_taxonomy
wp_term_relationships
wp_commentmeta
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时,phpunit我得到了这个:
$ phpunit
PHP Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
PHP Stack trace:
PHP 1. {main}() /private/tmp/wordpress-tests-lib/includes/install.php:0
PHP 2. require_once() /private/tmp/wordpress-tests-lib/includes/install.php:21
PHP 3. require_wp_db() /private/tmp/wordpress/wp-settings.php:79
PHP 4. wpdb->__construct() /private/tmp/wordpress/wp-includes/load.php:350
PHP 5. wpdb->db_connect() /private/tmp/wordpress/wp-includes/wp-db.php:649
PHP 6. mysqli_real_connect() /private/tmp/wordpress/wp-includes/wp-db.php:1452
Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
Run Code Online (Sandbox Code Playgroud)
我的部分问题是我不清楚wp-cli是否应该完全在本机(cli)PHP/Mysql,或MAMP的PHP/Mysql,或两者的某种组合上运行.
更新4 我很确定最后的问题是phpunit需要安装在MAMP中,但我是从OSX运行的...
$which phpunit
/usr/bin/phpunit
Run Code Online (Sandbox Code Playgroud)
在这个要点中提到过.
更新6
事实证明你不能再使用pear安装phpunit了.所以我在require-dev下将它添加为作曲家依赖,但是当我运行该版本时,我得到了同样的错误!
$ ./vendor/phpunit/phpunit/phpunit
PHP Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
PHP Stack trace:
PHP 1. {main}() /private/tmp/wordpress-tests-lib/includes/install.php:0
PHP 2. require_once() /private/tmp/wordpress-tests-lib/includes/install.php:21
PHP 3. require_wp_db() /private/tmp/wordpress/wp-settings.php:79
PHP 4. wpdb->__construct() /private/tmp/wordpress/wp-includes/load.php:350
PHP 5. wpdb->db_connect() /private/tmp/wordpress/wp-includes/wp-db.php:649
PHP 6. mysqli_real_connect() /private/tmp/wordpress/wp-includes/wp-db.php:1452
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
Run Code Online (Sandbox Code Playgroud)
我甚至将它添加到我的路径中以确保......
$ which phpunit
/Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/phpunit/phpunit/phpunit
Run Code Online (Sandbox Code Playgroud)
更新7
阅读本博文底部的评论后,我看到安装脚本引用了OSX版本mysqladmin.我不确定这是否重要,但我在路径中添加了MAMP版本,并重新运行安装脚本.似乎/tmp/无论如何都要安装Wordpress文件.我运行时出现同样的错误phpunit
我终于可以phpunit跑了!!
我在任何地方都找不到这个记录...
在安装过程中的某个时刻,Wordpress 核心文件会安装在/tmp/wordpress/. 该WordPress 安装有它自己的wp-config.php文件,该文件的值不正确。当我更正这些值以匹配wp-config.php我的网站时,phpunit工作没有问题!
我不确定这是如何发生的,但我的理论是,我第一次使用错误的凭据运行安装脚本。但后来我纠正了它们(我重新运行了安装脚本几次)。但我认为安装脚本没有覆盖原始文件。
+400 致@Nikita Zernov 提供如此多的帮助!
| 归档时间: |
|
| 查看次数: |
1238 次 |
| 最近记录: |