【发布时间】:2013-12-27 14:19:54
【问题描述】:
我刚刚创建了一个新盒子(基于ubuntu precise32),并安装了我自己的软件,一切正常,除了启动时不启动的 apache。
在vagrant up之后,我每次都必须登录我的盒子并启动它。
我试图让它在启动时启动:
sudo update-rc.d apache2 defaults
但我明白了:
System start/stop links for /etc/init.d/apache2 already exist.
所以它应该开始... 这是我的 Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define :stilogo do |stilogo_config|
stilogo_config.vm.box = "precise32"
stilogo_config.vm.box_url = "http://files.vagrantup.com/precise32.box"
stilogo_config.ssh.forward_agent = true
#Do alla macchina un IP statico
#stilogo_config.vm.network :private_network, ip: "192.168.56.101"
stilogo_config.vm.network :forwarded_port, guest: 80, host: 8888, auto_correct: true
stilogo_config.vm.network :forwarded_port, guest: 3306, host: 8889, auto_correct: true
stilogo_config.vm.network :forwarded_port, guest: 5432, host: 5433, auto_correct: true
stilogo_config.vm.hostname = "stilogo"
stilogo_config.vm.synced_folder "www", "/var/www", {:mount_options => ['dmode=777','fmode=777']}
stilogo_config.vm.provision :shell, :inline => "echo \"Europe/Rome\" | sudo tee /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata"
stilogo_config.vm.provider :virtualbox do |v|
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--memory", "512"]
end
#Installo il software che mi serve
stilogo_config.vm.provision :puppet do |puppet|
puppet.manifests_path = "puppet/manifests"
puppet.manifest_file = "phpbase.pp"
puppet.module_path = "puppet/modules"
#puppet.options = "--verbose --debug"
end
end
end
这是 apache 安装:
class apache
{
package
{
"apache2":
ensure => present,
require => [Exec['apt-get update'], Package['php5'], Package['php5-dev'], Package['php5-cli']]
}
service
{
"apache2":
ensure => running,
enable => true,
require => Package['apache2'],
subscribe => [
File["/etc/apache2/mods-enabled/rewrite.load"],
File["/etc/apache2/sites-available/000-default.conf"],
File["/etc/apache2/conf-enabled/phpmyadmin.conf"]
],
}
file
{
"/etc/apache2/mods-enabled/rewrite.load":
ensure => link,
target => "/etc/apache2/mods-available/rewrite.load",
require => Package['apache2'],
}
file
{
"/etc/apache2/sites-available/000-default.conf":
ensure => present,
owner => root, group => root,
source => "/vagrant/puppet/templates/vhost",
require => Package['apache2'],
}
exec
{
'echo "ServerName localhost" | sudo tee /etc/apache2/conf-enabled/fqdn.conf':
require => Package['apache2'],
}
}
这是vagrant up 和(手动)apache start 之后的日志
[Fri Dec 27 15:26:33.220448 2013] [mpm_prefork:notice] [pid 1379] AH00169: caught SIGTERM, shutting down
PHP Warning: Module 'memcached' already loaded in Unknown on line 0
[Fri Dec 27 15:27:55.750639 2013] [mpm_prefork:notice] [pid 1105] AH00163: Apache/2.4.6 (Ubuntu) PHP/5.5.7-1+sury.org~precise+1 configured -- resuming normal operations
[Fri Dec 27 15:27:55.750700 2013] [core:notice] [pid 1105] AH00094: Command line: '/usr/sbin/apache2'
我错过了什么?
【问题讨论】:
-
如果您查看日志,它是否正在尝试启动并失败?或者甚至不尝试?
-
我已经在问题中添加了日志
-
请问您为什么要启动 apache,因为您将它作为在级别运行上定义的 puppet 服务?
-
因为当我启动我的机器时我无法使用 apache,如果我尝试在我的浏览器中访问 `localhost:8888¡ 它说它无法联系服务器。如果我手动启动 apache 它可以工作,也许我遗漏了一些东西,或者我不太了解如何使用 vagrant 和 puppet...