#php #wordpress #ssh #vagrant
#php #wordpress #ssh #vagrant
Вопрос:
Я следую этому руководству, чтобы настроить 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 Ondxc5x99ej 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.
Я не знаю, что это значит, на самом деле, или в чем может заключаться проблема. Тем не менее, Vagrant работает, я смог запустить окно vagrant раньше без ошибок. Именно в контексте вышеупомянутого руководства я столкнулся с проблемами.
редактировать: следуя приведенным здесь советам, я изменил свой vagrantfile и 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
Ответ №1:
Я думаю, что этот учебник немного устарел и наверняка содержит некоторую устаревшую информацию.
используйте поле обновления
Поле precise64, используемое в руководстве, не обновлялось за последние 2 года, вам следует использовать более свежую версию этого поля, поэтому замените
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
с помощью одной строки
config.vm.box = "ubuntu/precise64"
vagrant автоматически загрузит окно из atlas
репозиторий php устарел
репозиторий php, используемый в примере, устарел
Этот 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
С этими 2 изменениями это уже должно привести вас в лучшее состояние — оно запустится, но, как уже говорилось, это довольно старый пост, и если вы ищете разработку, вам следует подумать об обновлении стека —
Комментарии:
1. большое спасибо. Я не понимаю, что именно делать на втором шаге (php repo устарел)?
2. в
install.sh
скрипте естьsudo add-apt-repository -y ppa:ondrej/php5
это репозиторий устарел, поэтому вам нужно заменить это одним из 2 значений из сообщения3. Извините, я думаю, что я все еще не понимаю, я абсолютный новичок. Я заменил ‘sudo add-apt-repository -y ppa: ondrej / php5’ на ‘sudo add-apt-repository -y ppa: ondrej / php’, но он по-прежнему выдает мне ошибку, так что, полагаю, я не правильно вас понял? Какие 2 значения из сообщения вы имеете в виду?
4. Я пробовал это с обоими
ppa:ondrej/php
иppa:ondrej/php
, но это дает мне ту же ошибку. Чтобы быть уверенным, я заменилsudo add-apt-repository -y ppa:ondrej/php5
наsudo add-apt-repository -y ppa:ondrej/php
5. действительно ? странно, с oldstable это сработало бы — воссоздайте свою виртуальную машину, запустите
vagrant destroy amp;amp; vagrant up
, чтобы уничтожить и воссоздать вашу виртуальную машину