apache 没有在 vagrant 虚拟机中启动

apache 没有在 vagrant 虚拟机中启动

我使用 Puphpet.com 创建了一个用于 Web 开发的 Vagrant VM。我遇到的问题是虚拟机无法在启动时启动 apache。

$ sudo /etc/init.d/apache2 start
* Starting web server apache2                                                   *
* The apache2 configtest failed.
Output of config test was:
apache2: Syntax error on line 36 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/authz_default.load: Cannot load /usr/lib/apache2/modules/mod_authz_default.so into server: /usr/lib/apache2/modules/mod_authz_default.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.

系统是 ubuntu 12,不确定我必须对 puppet 配置进行哪些修改才能解决问题。

答案1

PuPHPet 的作者在这里。

您可能正在尝试在 Ubuntu 12 机器上安装 PHP 5.5。

请注意,我在两处提到 5.5 无法在 Ubuntu 上运行。

澄清:

如果您使用 Nginx,PHP 5.5 将在 Ubuntu 上运行。

进一步澄清:

这并不是说 PHP 5.5 被破坏了。实际上没有任何东西被破坏。如果您手动安装它,效果会很好。问题是 ondrej 的 5.5 版 PPA 安装 Apache 2.4+,而我使用的 puppetlabs-apache 模块不适用于 Apache > 2.2。

如果您想要 PHP 5.5 并想使用 Apache,请设置 Debian 盒子。

答案2

缺少 authz_default 模块。该模块未加载,因此 Apache 不知道该模块使用的任何指令。

安装模块并重试。

关于 Puppet 配置,您必须添加一些行以使其在启动 Apache 之前安装缺少的模块。

答案3

在更改使用 mod_php 的选项后,我在 Debian 7.5 和 PHP 5.6 中遇到了同样的问题(我打开它是因为 php-fpm 弄乱了 Symfony2 dev env 链接)。然后我跑了vagrant provision,这个问题就开始了。文件/usr/lib/apache2/modules/mod_authz_default。所以从系统中丢失了。

vagrant destroy通过调用和解决vagrant up

相关内容