Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 每个目录的自定义php.ini(用于测试站点)_Apache_.htaccess_Customization_Php - Fatal编程技术网

Apache 每个目录的自定义php.ini(用于测试站点)

Apache 每个目录的自定义php.ini(用于测试站点),apache,.htaccess,customization,php,Apache,.htaccess,Customization,Php,我在Windows7上运行Apache2.26,使用PHP5.39mod_ssl/2.2.6OpenSSL/0.9.8g PHP工作得很好,Apache也是 但是,我想尝试为我的测试站点创建每个目录的定制php.ini文件 我可以——而且确实——使用php_标志,但我想尝试创建一个可以工作的定制php.ini文件。我试着用谷歌搜索这个,但找不到任何相关的东西 这是我当前的.htc访问权限:/www/vhosts/localhost/testsite1: RewriteEngine on Rewr

我在Windows7上运行Apache2.26,使用PHP5.39mod_ssl/2.2.6OpenSSL/0.9.8g

PHP工作得很好,Apache也是

但是,我想尝试为我的测试站点创建每个目录的定制php.ini文件

我可以——而且确实——使用php_标志,但我想尝试创建一个可以工作的定制php.ini文件。我试着用谷歌搜索这个,但找不到任何相关的东西

这是我当前的.htc访问权限:/www/vhosts/localhost/testsite1:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php


#RewriteCond %{REQUEST_fileNAME} !\.php -f
#RewriteRule .* index.php

AddType text/html .asp
AddHandler application/x-httpd-php .page

php_value include_path "./php:/php/"
然而,我在php中的custom php.ini中做了一个更改,去掉了短标记(仅用于测试),但它没有找到它,php代码显示了它

对此,任何帮助都表示感谢;这将是非常有用的


(请记住,此Apache安装是一个开发/测试安装)

如果您使用的是
php\u flag
,那么您可能使用的是mod\u php5。此文件不支持自定义“php.ini”文件。您需要使用suPHP或equiv,因为只有在php启动时才会加载
php.ini
,这不是mod_php5和FCGI的每个请求


但是,由于您使用的是PHP 5.3,因此也可以使用根据每个请求进行解析的PHP。很多时候,您可能会觉得需要对不同的站点(在同一服务器上运行)进行不同的设置,如PHP.ini中所述。因此,您开始使用ini_set()或.htaccess在php文件中进行更改,以覆盖这些设置。在本教程中,我将告诉您如何通过为每个网站提供单独的php.ini文件来解决不同php设置的问题

因此,假设我有一个网站,其文档根为/var/www/html/example/,域为www.example.com。出于测试目的,您可以在/var/www/html/example/phpinfo.php中创建一个小文件

<?php
phpinfo();
?>

现在运行它将显示当前的php设置

现在将php.ini文件从/etc/php.ini文件复制到/var/www/html/example

[root]#cp/etc/php.ini/var/www/html/example#供fedora用户使用

[chia]$sudo cp/etc/php5/apache2/php.ini/var/www/example#用于Debian和Ubuntu

现在,我们只需要一个简单的技巧来告诉apache在哪里可以找到这个网站的php设置。您需要在配置文件中进行此小更改

<VirtualHost 10.24.11.2:80>

ServerName example.com

ServerAlias www.example.com

PHPINIDir /var/www/html/example

</VirtualHost>

ServerName example.com
ServerAlias www.example.com
PHPINIDir/var/www/html/example
PHPINIDir应该是文件php.ini所在的目录

在此之后重新启动apache

[root]#服务httpd重启#用于基于Fedora/Redhat/CenOS的系统


[chia]$sudo apache2 restart#适用于基于Debian/Ubuntu的系统

您使用的是哪种服务器API(SAPI)?如果FCGI查找user.ini文件,根据PHP_sapi_name,我没有使用PHP CGI。20090626是我当前的API。我不知道那个API比API更像是一天。也许你漏了几行?我怎么找到API?php_sapi_名称就是我尝试的。是的,通常就是这样。不知道那里发生了什么..user.ini:“这些文件只由CGI/FastCGI SAPI处理。”@hakre,对不起,是的,你是对的。这场比赛为FCGI赢得了一个横扫点。如果OP想要在WAMP配置上使用mod_php5,那么最简单的调试方法是使用单独的VM@hakre,对于apache,我们可以使用每个目录的.htaccess来指定php变量/config。@TerryE,另外,请详细说明“suPHP”选项。suPHP不是最终开发人员的选项。在配置Web服务器时,它是系统管理员的一个选择,而且现在大多数人都不赞成使用它。