【问题标题】:Override php_value per virtualhost覆盖每个虚拟主机的 php_value
【发布时间】:2015-03-05 23:12:00
【问题描述】:

我想为我的虚拟主机设置一个独特的upload_max_filesize。我在每个虚拟主机中都有一些 Web 应用程序,因此无法在 php.ini 中全局更改值,因为我希望每个虚拟主机都有自己的值。

所以我尝试了以下方法:

<VirtualHost *:80>
 ServerName www.test.com
 ServerAlias test.com
 DocumentRoot /var/www/html/test/
 ErrorLog /var/log/httpd/test/error.log
 CustomLog /var/log/httpd/test/requests.log combined

 <Directory /var/www/html/test/>
  AllowOverride All
 </Directory>
 php_value upload_max_filesize 5M
</VirtualHost>
Alias /test /var/www/html/test/

换句话说,我正在尝试使用php_value upload_max_filesize 5M 在虚拟主机.conf 中设置值。我读到我要为AllowOverride 设置一个特定的值,我也想在这里设置它,但是这段代码不起作用。

我想在每个虚拟主机部分保留此设置,我不喜欢使用 .htaccess 文件。

【问题讨论】:

    标签: php apache overriding virtualhost


    【解决方案1】:

    我会将 PHP 设置放在 Directory 指令中。您也应该将其作为 Apache 模块运行。

    确保您已安装 mod_php,并且在 Apache 配置中未注释。

    LoadModule php5_module        modules/libphp5.so
    

    那么你应该可以使用这样的东西。

    <VirtualHost *:80>
     ServerName www.test.com
     ServerAlias test.com
     DocumentRoot /var/www/html/test/
     ErrorLog /var/log/httpd/test/error.log
     CustomLog /var/log/httpd/test/requests.log combined
    
     <Directory /var/www/html/test/>
      AllowOverride None
      <IfModule mod_php5.c>
         php_value upload_max_filesize 5M
      </IfModule>
     </Directory>
    </VirtualHost>
    Alias /test /var/www/html/test/
    

    确保在配置更改后重新加载/重新启动 Apache。还注意到我将AllowOverride 设置为None。你说你不想使用 .htaccess 所以你需要禁用使用 .htaccess 文件。如果将其设置为全部,Apache 会在每次收到请求时扫描网络服务器以查找 .htaccess 文件。因此,即使您不使用任何软件,它仍在寻找它们。因此,为了消除对性能的小影响,请关闭使用None 完成的 htaccess 文件。

    【讨论】:

    • 是的,我使用 PHP 作为模块,我忘了提及它。我不太确定AllowOverride 配置,感谢您的解释。我按照您的建议更改了配置,似乎是正确的,但是没有反映更改
    • 基本上我在 web 应用程序中有一个上传文件部分链接到所需的虚拟主机,当我修改 php.ini 中的 upload_max_filesize 指令时,我可以看到变化,所以我对此毫无疑问配置是我需要更改的。根据您的建议,应用程序仍在使用存储在php.ini 中的upload_max_filesize 值,而不是虚拟主机中的值,即使在重新启动 apache 之后:使用#apachectl restart。有什么问题?感谢您的帮助 =)
    • php.ini 文件在哪里?
    • 我已经尝试过我的配置。现在我用你的试试,还是什么都没有……会是什么? =( 一切似乎都正确。我没有更改httpd.conf 中关于AllowOverride 或目录指令的默认配置。
    • 我遇到了与@Metafaniel 相同的问题。这个答案和我在搜索中找到的众多教程都说这样做。在我的开发环境 UniServerZ 12.3.0(wamp)中,这个问题仍然存在。在我的带有灯的 Ubuntu VPS(实时环境)上,这个解决方案工作得很好。
    猜你喜欢
    • 2019-09-12
    • 2010-09-05
    • 2017-11-05
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2023-03-19
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多