Bru*_*ton 1 php linux apache ubuntu
我有一个在VirtualBox环境中运行的Ubuntu 12.04服务器.我在我的Windows系统中设置了一个共享文件夹,这很好,直到我从5.3.x将PHP更新到5.5.12.我使用了一个新的php源代码,因为apt-get似乎没让我升级到5.3.x. 在这个过程中它也升级了apache2.我最初忽略的一个区别是vhost配置文件不再是默认或mysite.默认值现在为000-default.conf.并且apache2.conf仅设置为加载具有以.conf结尾的配置文件的站点.
问题不在于我得到任何禁止的错误,而是apache忽略任何指令,告诉它使用除/ var/www位置以外的文档根.我与VirtualBox的共享目录是/ media/sf_sandbox/ - 这是Ubuntu目录.我禁用了默认站点000-default.conf并启用了其他两个站点.现在,sandbox.dev使用var/www目录中的文件而不是共享目录.它忽略了sandbox.conf文件中的指令.
我在某处读到,默认情况下apache只提供来自/ var/www目录的文件,而且我可能需要列出其他目录的白名单.它没有说明如何做到这一点.apache2.conf文件具有从sites-available目录加载*.conf文件的指令.不幸的是,它只是忽略指令告诉它文档根目录在我的网站上.这是在将PHP从5.3.x升级到5.5.12之后发生的,这也升级了apache2.
如何将其他目录列入白名单并告诉apache从指定位置提供文件?
首先,这真的属于Server Fault.那就是说,你问这个:
如何将其他目录列入白名单并告诉apache从指定位置提供文件?
Apache没有"白名单"这样的东西.它可以从您系统的任何位置提供内容.即使你有一套,DocumentRoot你也可以随时使用Alias.Apache非常灵活.
所以你似乎面临的是配置问题.而已.没什么.只需找到配置文件并根据需要进行调整,一切都应该是好的.
这意味着,当您运行此命令列表时,您会看到什么sites-available:
ls -la /etc/apache2/sites-available
Run Code Online (Sandbox Code Playgroud)
与此命令对比sites-enabled:
ls -la /etc/apache2/sites-enabled
Run Code Online (Sandbox Code Playgroud)
内容sites-available是真正的配置文件.这些项目sites-enabled只是文件的符号链接sites-available.所以当你这样说时:
默认值现在为000-default.conf.
你可能会混淆.因为000-default.confin sites-enabled只是一个符号链接default,sites-available因为Apache实际上从中读取配置.例如,sites-available我所在的Ubuntu 12.04服务器上的内容是:
ls -la /etc/apache2/sites-available
-rw-r--r-- 1 root root 913 Apr 15 16:15 default
-rw-r--r-- 1 root root 7469 Feb 14 2012 default-ssl
Run Code Online (Sandbox Code Playgroud)
然后sites-enabled它是:
ls -la /etc/apache2/sites-enabled
lrwxrwxrwx 1 root root 26 Jan 11 2013 000-default -> ../sites-available/default
Run Code Online (Sandbox Code Playgroud)
请注意,基本上000-default只是一个符号链接.../sites-available/default/etc/apache2/sites-available/default
过去你需要提供更多细节或查看你的配置在哪里.您甚至可以尝试运行此命令来查看您的活动Apache服务器当前正在管理的虚拟主机:
sudo apachectl -S
编辑:好像原来的海报没有000-default在sites-enabled.所以可以用这样的新符号链接修复:
sudo ln -s /etc/apache2/sites-available/default /etc/apache2/sites-enabled/000-default
Run Code Online (Sandbox Code Playgroud)
然后用a重启Apache,sudo service apache2 restart再试一次.希望这是问题所在.请注意,当它作为符号链接时default重新命名的原因是确保它是第一个加载的配置.000-defaultsites-enabled