Wordpress + Vagrant: SSH命令以非零退出状态响应


Wordpress + Vagrant : The SSH command responded with a non-zero exit status

我正在按照这个教程设置Wordpress与vagrant。

得到如下结果:

==> default: gpg: 
==> default: keyring `/tmp/tmpJZaDWh/secring.gpg' created
==> default: gpg: 
==> default: keyring `/tmp/tmpJZaDWh/pubring.gpg' created
==> default: gpg: 
==> default: requesting key E5267A6C from hkp server keyserver.ubuntu.com
==> default: gpg: 
==> default: /tmp/tmpJZaDWh/trustdb.gpg: trustdb created
==> default: gpg: 
==> default: key E5267A6C: public key "Launchpad PPA for Ond'xc5'x99ej Sur?" imported
==> default: gpg: 
==> default: Total number processed: 1
==> default: gpg: 
==> default:               imported: 1
==> default:   (RSA: 1)

然后:

==> default: E
==> default: : 
==> default: Unable to correct problems, you have held broken packages.
==> default: tee: 
==> default: /etc/php5/mods-available/xdebug.ini
==> default: : No such file or directory
==> default: xdebug.scream=1
==> default: xdebug.cli_color=1
==> default: xdebug.show_local_vars=1
==> default: sudo
==> default: : 
==> default: a2enmod: command not found
==> default: sed: can't read /etc/php5/apache2/php.ini: No such file or directory
==> default: sed: can't read /etc/php5/apache2/php.ini: No such file or directory
==> default: sed: can't read /etc/php5/cli/php.ini: No such file or directory
==> default: apache2: unrecognized service
==> default: /tmp/vagrant-shell: line 26: php: command not found
==> default: mv: 
==> default: cannot stat `composer.phar'
==> default: : No such file or directory
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

我真的不知道这意味着什么,也不知道问题出在哪里。流浪汉确实工作,我已经能够启动一个流浪汉盒子之前没有错误。正是在上面提到的教程的上下文中,我遇到了问题。

编辑:按照这里的建议,我已经改变了我的流浪档案。install.sh。然而,我仍然得到相同的错误。以下是我修改过的文件:

Vagrantfile :

# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/precise64"
  config.vm.network :private_network, ip: "192.168.33.21"
  config.vm.provision :shell, :path => "install.sh"
  config.vm.synced_folder ".", "/var/www"
end

install.sh

sudo apt-get update
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root'
sudo apt-get install -y vim curl python-software-properties
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install -y php5 apache2 libapache2-mod-php5 php5-curl php5-gd php5-mcrypt php5-readline mysql-server-5.5 php5-mysql git-core php5-xdebug
cat << EOF | sudo tee -a /etc/php5/mods-available/xdebug.ini
xdebug.scream=1
xdebug.cli_color=1
xdebug.show_local_vars=1
EOF
sudo a2enmod rewrite
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini
sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini
sed -i "s/disable_functions = .*/disable_functions = /" /etc/php5/cli/php.ini
sudo service apache2 restart
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

我认为这个教程有点老了,而且肯定包含了一些过时的信息。

使用更新框

本教程中使用的precise64方框在过去2年中没有更新过,您应该使用该方框的最新版本,因此替换

  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"

单行

  config.vm.box = "ubuntu/precise64"

vagrant将自动从atlas下载盒子

php repo已过时

示例中使用的PHP repo已被弃用

此PPA将被弃用,请使用PPA:ondrej/php

如果您需要其他PHP版本,请使用:

  PHP 5.4: ppa:ondrej/php5-oldstable (Ubuntu 12.04 LTS)
  PHP 5.5, PHP 5.6 and PHP 7.0: ppa:ondrej/php (Ubuntu 14.04 LTS - Ubuntu 16.04 LTS)
所以install.sh脚本将是
sudo apt-get update
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root'
sudo apt-get install -y vim curl python-software-properties
sudo add-apt-repository -y ppa:ondrej/php5-oldstable
sudo apt-get update
sudo apt-get install -y php5 apache2 libapache2-mod-php5 php5-curl php5-gd php5-mcrypt php5-readline mysql-server-5.5 php5-mysql git-core php5-xdebug
sudo a2enmod rewrite
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini
sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini
sed -i "s/disable_functions = .*/disable_functions = /" /etc/php5/cli/php.ini
sudo service apache2 restart
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

有了这两个变化,它应该已经让你在一个更好的状态-它将开始,但正如所说的,它现在很老了,如果你正在寻找开发,你应该寻求升级堆栈-