覆盖每个虚拟主机的php_value

Met*_*iel 5 php apache overriding virtualhost

我想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/
Run Code Online (Sandbox Code Playgroud)

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

我想将此设置保留在每个virtualhost部分下,我不希望使用.htaccess文件。有人可以启发我吗?在此先感谢您的帮助。

Pan*_*ack 5

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

确保已安装mod_php,并且在Apache配置中未对此进行注释。

LoadModule php5_module        modules/libphp5.so
Run Code Online (Sandbox Code Playgroud)

然后,您应该可以使用类似这样的东西。

<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/
Run Code Online (Sandbox Code Playgroud)

确保在配置更改后重新加载/重新启动Apache。还注意到我设置AllowOverrideNone。您说您不想使用.htaccess,因此您需要禁用.htaccess文件。如果将其设置为All,则Apache每次收到请求都会在Web服务器上扫描.htaccess文件。因此,即使您没有使用它们,它仍在寻找它们。因此,要消除对性能造成的小影响,请关闭htaccess文件(使用完成)None