programing

wp-cli: MAMP에서 phpunit을 실행할 수 없습니다.

linuxpc 2023. 3. 7. 21:09
반응형

wp-cli: MAMP에서 phpunit을 실행할 수 없습니다.

플러그인 테스트 설정/설치 지침을 따르고 있습니다.받았습니다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'

로컬 Wordpress 사이트에서 MAMP(작동 중)를 실행하고 있습니다.테스트를 실행하기 위한 임시 DB를 만드는 것 같기 때문에 설치 스크립트와 관련이 있는지 잘 모르겠습니다.내장 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

업데이트 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

하지만 내가 달릴 때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

문제의 일부는 wp-cli가 네이티브(cli) PHP/Mysql 또는 MAMP의 PHP/Mysql 또는 그 양쪽의 조합 중 어느 쪽에서 실행되어야 하는지 명확하지 않다는 것입니다.

업데이트 4 마지막 문제는 Phpunit을 MAMP에 설치해야 한다는 것입니다만, 저는 OSX에서 실행하고 있습니다.

$which phpunit
/usr/bin/phpunit

요지에 언급되어 있다.

업데이트 6

pear를 사용하여 phpunit을 설치할 수 없게 되었습니다.그래서 require-dev에 composer 의존관계로 추가했는데 해당 버전을 실행하면 동일한 오류가 발생합니다.

$ ./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

확실히 하기 위해 내 길에도 추가했어...

$ which phpunit
/Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/phpunit/phpunit/phpunit

업데이트 7

블로그 투고 하단의 코멘트를 읽고 나서, 인스톨 스크립트가 다음의 OSX 버전을 참조하고 있는 것을 알 수 있습니다.mysqladmin이게 중요한지 모르겠지만 경로에서 MAMP 버전을 추가하고 설치 스크립트를 다시 실행했습니다.Wordpress 파일이 에 설치되어 있는 것 같습니다./tmp/어쨌든.실행 시 동일한 오류phpunit

MAMP를 사용하는 경우 MySQL Server 설정과 관련된 문제가 발생할 수 있습니다.꼭 확인하세요Allow network accessMAMP 설정의 옵션:

여기에 이미지 설명 입력

업데이트 1

만들다phpinfo.php루트 디렉토리에 있는 파일(통상은/Applications/MAMP/htdocs(MAMP의 경우)다음 내용을 붙여넣습니다.

<?php phpinfo() ?>

그럼 다음 체크해 주세요.Loaded Configuration File소유물.다음을 사용하여 열기nano또는 단말기의 다른 텍스트에디터.그런 다음 이 세 가지 속성을 찾아서 변경하십시오.pdo_mysql.default_socket,mysql.default_socket,mysqli.default_socket소켓 파일로 이동합니다.

http://maccrazy.com/lion-upgrade-killed-my-php-site-and-how-i-fixed-it에서 참조

나는 마침내 얻었다.phpunit달려라!!

어디서도 이 문서를 찾을 수 없었어요...

설치 프로세스 중 어느 시점에 Wordpress 코어 파일이 설치됩니다./tmp/wordpress/Wordpress 설치에는 자체 기능이 있습니다.wp-config.php잘못된 값을 가진 파일입니다.을 ""에하도록 wp-config.php ★★★★★★★★★★★★★★★★★★★.phpunit문제없이 작동했습니다!

어떻게 이런 일이 일어났는지는 모르겠지만, 처음 잘못된 자격 증명으로 설치 스크립트를 실행했을 때 그런 것 같습니다.그러나 나중에 수정했습니다(설치 스크립트를 여러 번 재실행했습니다).하지만 설치 스크립트가 원본 파일을 덮어쓰지는 않은 것 같습니다.

+400에서 @Nikita Zernov에게 많은 도움을 드립니다!

ftp "telnet " localhost " 가 .conection refused하려면 , 를 합니다.httpd.conf로로 합니다.ServerName localhost

, 리모트 는, 「 enable 」를.URL 「 」, 「 」, 「 」, 「 」, 「 」, 「 」로 이동합니다.System Preferences -> Sharing -> Remote Login box (check it).

MySQL 문제의 경우

에 「skip-networking 되어 있는 것을 이 경우는 「skip-networking」)./opt/local/etc/mysql55/my.conf서버를 mysql 서버가 "– 으로

skip-networking 모드에서는 mysql 인스턴스는 TCP/IP 연결을 전혀 수신하지 않습니다.mysqld와의 모든 상호 작용은 MySql Docs의 명명된 파이프 또는 공유 메모리(Windows) 또는 Unix 소켓 파일(Unix)을 사용하여 수행해야 합니다.

도움이 됐으면 좋겠다.

언급URL : https://stackoverflow.com/questions/31942696/wp-cli-unable-to-run-phpunit-on-mamp

반응형