source plugin from cli bash wordpress-plugin mamp wordpress wp-cli

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