Я пытаюсь настроить простую среду с Vagrant. Базовый блок (который я создал) имеет CentOS 6.5 64 бит с Apache и MySQL.
Проблема заключается в том, что служба httpd не запускается при загрузке после перезагрузки виртуальной машины (vagrant reload
или vagrant halt
, а затем up
).
Проблема возникает, когда я запускаю условие script, которое изменяет DocumentRoot
и только после первого раза останавливает машину.
Дополнительная информация:
httpd находится на chkconfig
на уровнях 2, 3, 4 и 5
Ошибки, записанные в error_log (на /etc/httpd/logs
), отсутствуют.
Если я зашел в машину и запустил сервис вручную, он начнет без проблем.
У меня была такая же проблема с другими блоками CentOS (например, chef/centos-6.5
, доступная на vagrantcloud.com), поэтому я сам создал ее.
Другие службы, такие как mysql, начинают нормально, поэтому это проблема, характерная для apache.
Резюмируя:
- httpd всегда запускается при первой загрузке, даже с предоставлением script (например, после уничтожения бродяг)
- httpd всегда запускается, когда я не запускаю условие script (но мне нужно его установить DocumentRoot)
- httpd не запускается после первой остановки, с условием script, которое бесполезно с DocumentRoot (не уверен, что эта проблема).
Это мой Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos64_lamp"
config.vm.box_url = "<url>/centos64_lamp.box"
config.vm.hostname = "machine.dev"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.synced_folder ".", "/vagrant", owner: "root", group: "root"
config.vm.provision :shell, :path => "vagrant_files/bootstrap.sh"
end
Я попытался создать папку бродяг с владельцем/группой root
и apache
. Такая же проблема с обоими (как с владельцем vagrant
).
Это сценарии обеспечения (bootstrap.sh), которые я пробовал. Единственное, что я хочу сделать, это изменить DocumentRoot на папку с бродягой. Ничего не работало.
Попробуйте 1
#!/usr/bin/env bash
sudo rm -rf /var/www/html
sudo ln -fs /vagrant/app/webroot /var/www/html
Попробуйте 2
#!/usr/bin/env bash
sudo cp /vagrant/vagrant_files/httpd.conf /etc/httpd/conf
sudo service httpd restart
httpd.conf во второй попытке равен значению по умолчанию, за исключением пути DocumentRoot. Эта вторая альтернатива позволяет мне сделать vagrant up --provision
, чтобы принудительно перезапустить службу, но это должен быть ненужный шаг.
Что еще я могу попытаться решить? Спасибо.