bash - plugin - wp cli source
wp-cli: no se puede ejecutar phpunit en MAMP (3)
Finalmente conseguí phpunit
para correr !!
No pude encontrar esto documentado en ningún lado ...
En algún momento durante el proceso de instalación, los archivos centrales de Wordpress se instalan en /tmp/wordpress/
. Esa instalación de Wordpress tiene su propio archivo wp-config.php
que tenía valores incorrectos. Cuando corregí esos valores para que coincida con wp-config.php
de mi sitio, ¡ phpunit
funcionó sin problemas!
No estoy seguro de cómo sucedió esto, pero mi teoría es que la primera vez que ejecuté el script de instalación con las credenciales incorrectas. Pero luego los corrigí (volví a ejecutar el script de instalación varias veces). Pero creo que el script de instalación no sobrescribió los archivos originales.
+400 a @Nikita Zernov por tanta ayuda!
Estoy siguiendo las instrucciones de instalación / instalación de la prueba del complemento . wp scaffold plugin-tests my-plugin
para ejecutar. Pero luego, en el siguiente paso, cuando intento ejecutar bash bin/install-wp-tests.sh wordpress_test root '''' localhost latest
el siguiente error:
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''
Mi sitio local de Wordpress se está ejecutando con MAMP (que está funcionando). No estoy seguro de si esto es relevante para el script de instalación, ya que creo que está creando un DB temporal para ejecutar las pruebas ... ¿Importa si usa el OSX mysql incorporado o el MySQL de MAMP?
Aquí está la salida de 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
Actualización 2 Descubrí que originalmente MySQL no estaba instalado ... ¡por eso no me pude conectar! Pero ahora lo es. Ejecuté el script de instalación, y esto funciona ...
$ ./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
Pero cuando corro phpunit
obtengo esto:
$ 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
Parte de mi problema es que no tengo claro si wp-cli debería ejecutarse por completo en PHP / Mysql nativo (cli) o PHP / Mysql de MAMP, o alguna combinación de ambos.
Actualización 4 Estoy bastante seguro de que el problema final es que phpunit debe instalarse en MAMP, pero lo estoy ejecutando desde OSX ...
$which phpunit
/usr/bin/phpunit
Mencionado en esta esencia .
Actualización 6
Resulta que ya no puedes instalar phpunit usando pear. Así que lo agregué como una dependencia de compositor bajo require-dev, pero cuando ejecuto esa versión, obtengo el mismo error.
$ ./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
Incluso lo agregué a mi camino para estar seguro ...
$ which phpunit
/Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/phpunit/phpunit/phpunit
Actualización 7
Después de leer los comentarios en la parte inferior de esta publicación de blog, veo que el script de instalación hace referencia a la versión OSX de mysqladmin
. No estoy seguro de si esto importa, pero preparé la versión de MAMP en la ruta y volví a ejecutar el script de instalación. Parece instalar los archivos de Wordpress en /tmp/
anyway. El mismo error cuando ejecuto phpunit
Normalmente, si usa ftp o telnet para localhost, se le conection refused
. Si desea corregir el error, cambie su httpd.conf
a ServerName localhost
Además, si desea hacer un inicio de sesión remoto, intente habilitar el inicio de sesión remoto yendo a System Preferences -> Sharing -> Remote Login box (check it)
.
Para el problema de MySQL
Asegúrese de que ''skip-networking'' esté comentado en el archivo de configuración (en este caso /opt/local/etc/mysql55/my.conf
) o al iniciar el servidor mysql, no comience con ''-skip-networking''
En el modo de red de omisión, la instancia de mysql no "escucha para nada las conexiones TCP / IP. Todas las interacciones con mysqld se deben realizar utilizando conductos con nombre o memoria compartida (en Windows) o archivos de socket Unix (en Unix) " desde MySql Docs
Espero que ayude
Si está utilizando MAMP, el problema puede ser relevante para la configuración de su servidor MySQL. Asegúrate de marcar la opción Allow network access
en la configuración de MAMP:
Actualización 1
Cree el archivo phpinfo.php
en su directorio raíz (normalmente /Applications/MAMP/htdocs
para MAMP). Pega el siguiente contenido:
<?php phpinfo() ?>
Luego, compruebe la propiedad Loaded Configuration File
. Ábrelo usando nano
u otro editor de texto en la terminal. A continuación, busque y cambie estas 3 propiedades pdo_mysql.default_socket
, mysql.default_socket
, mysqli.default_socket
a su archivo de socket.
Se hace referencia desde http://maccrazy.com/lion-upgrade-killed-my-php-site-and-how-i-fixed-it