WP-CLI không thể kết nối với cơ sở dữ liệu do Vagrant


7

Tôi đang chạy phiên bản WP-CLI mới nhất trên máy mac của mình. Tôi thực hiện tất cả phát triển WordPress trong Vagrant, nhưng muốn chạy các lệnh WP-CLI trong máy chủ. Tôi có một bí danh tên miền từ "dev.mysite.com" đến IP của máy chủ của tôi để có thể truy cập thông qua trình duyệt web của tôi thông qua yêu cầu HTTP.

Khi thử chạy lệnh WP-CLI, tôi gặp phải lỗi "Lỗi khi thiết lập kết nối dữ liệu" vì nó đang cố kết nối qua "localhost" khi nó thực sự phải là "dev.mystie.com" hoặc Địa chỉ IP của Vagrant VM . Có cách nào tôi có thể truy cập trang web của mình thông qua WP-CLI mà không cần phải SSH vào khách không?

Câu trả lời:


5

Vì vấn đề có lẽ là cấu hình DB, bạn có thể thử điều chỉnh nó theo điều kiện wp-config.php:

if ( defined( 'WP_CLI' ) ) {
    define( 'DB_HOST', 'example.com' );
}
else {
    define( 'DB_HOST', 'localhost' );
}

3

Bạn đã thử cập nhật wp-config.php để thay đổi máy chủ cơ sở dữ liệu chưa?

Ngoài ra, tại sao không sử dụng lệnh + t trong thiết bị đầu cuối để mở một tab mới sau đó sử dụng ssh trong đó và sử dụng lệnh đó cho WP-CLI?


2

Bạn có thể xem wp-cli-ssh

Chạy liền mạch các lệnh WP-CLI trên máy chủ từ xa thông qua SSH

Tôi biết bạn không muốn SSH cho khách, nhưng ít nhất, điều này được cho là đã loại bỏ sự cần thiết phải làm thủ công.

Tôi đã tìm ra cách để thiết lập nó.

Thực hiện theo các bước sau

mkdir -p ~/.wp-cli
cd ~/.wp-cli
touch composer.json
php composer.phar init --stability dev --no-interaction
php composer.phar config bin-dir bin
php composer.phar config vendor-dir vendor
php composer.phar config repositories.wp-cli composer 'http://wp-cli.org/package-index/'

Tạo hoặc chỉnh sửa config.ymltrong cùng một thư mục và thêm:

require:
  - vendor/autoload.php

Cài đặt gói với: php composer.phar require x-team/wp-cli-ssh=dev-master

Sau đó, chỉ cần chạy wpsẽ hiển thị một danh sách các tiểu ban có sẵn và bạn nên sshthêm vào danh sách đó.

Sau đó, chúng tôi định cấu hình plugin trong wp-cli.local.ymlhoặc wp-cli.yml:

ssh:
  vagrant:
    # The %pseudotty% placeholder gets replaced with -t or -T depending on whether you're piping output
    # The %cmd% placeholder is replaced with the originally-invoked WP-CLI command
    cmd: vagrant ssh-config > /tmp/vagrant_ssh_config && ssh -q %pseudotty% -F /tmp/vagrant_ssh_config default %cmd%
    # Passed to WP-CLI on the remote server via --url
    url: local-www.yourawesomewebsite.com
    # We cd to this path on the remote server before running WP-CLI
    path: /your/vvv/path/

Và chạy tất cả với wp ssh plugin status --host=vagrant

... Thật tệ khi plugin này giả định Varying-Vagrant-Vagrant. Vì môi trường mơ hồ của tôi lưu trữ rất nhiều trang web, Vagrantfile không có trong thư mục WordPress, phá vỡ toàn bộ ...


1

Tôi đã có thể sử dụng @aliases để kích hoạt các lệnh WP-CLI trên basic-wordpress-vagranthộp từ máy chủ của mình. Có lẽ điều này có thể giúp bạn.

~ / .wp-cli / config.yml

@basic:
    ssh: basic.dev/var/www/wordpress/

~ / .ssh / config

Host basic.dev
    HostName basic.dev
    User vagrant
    IdentityFile ~/sites/basic.dev/.vagrant/machines/default/virtualbox/private_key

$ wp @basic danh sách chủ đề

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.