我正在运行Apache 2.26,在Windows 7上使用PHP 5.39 mod_ssl/2.2.6 OpenSSL/0.9.8g。
PHP工作正常,Apache也是如此。
但是,我想尝试为每个目录创建自定义 php.ini 文件,用于我的测试站点。
我可以 - 并且确实 - 使用php_flag但想尝试创建一个有效的自定义 php.ini 文件。我试图谷歌这个,但找不到任何相关的内容。
这是我目前对 C:/www/vhosts/localhost/testsite1 的 .htaccess :
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 中进行了更改.ini在 php 中关闭了短标签 [仅用于测试],但它没有选择它,而是显示 php 代码。
任何帮助都值得赞赏;这将是非常有用的!
(请记住,这个Apache安装是一个开发/测试安装)
如果您使用的是php_flag
那么您可能正在使用mod_php5。 此功能不支持自定义"php.ini"文件。 您需要使用 suPHP 或 equiv,因为php.ini
仅在 PHP 启动时加载,这不是针对 mod_php5 和 FCGI 的每个请求。
但是,由于您使用的是 PHP 5.3,因此您还可以使用 .user.ini 文件
很多时候,您可能会觉得需要对 php.ini 中指定的不同站点(在同一服务器上运行)进行不同的设置。因此,您开始使用 ini_set() 或 .htaccess 在 php 文件中进行更改以覆盖这些设置。在本操作指南中,我将告诉您如何通过为每个网站提供单独的 php.ini 文件来解决具有不同 php 设置的问题。
因此,让我们假设我有一个网站,文档根目录为/var/www/html/example/,域为 www.example.com。出于测试目的,您可以在/var/www/html/example/phpinfo 中创建一个小文件.php
<?php
phpinfo();
?>
现在运行 http://example.com/phpinfo.php 它将显示当前的 php 设置。
现在将 php.ini 文件从/etc/php.ini 文件复制到/var/www/html/example。
[root]# cp/etc/php.ini/var/www/html/example #For Fedora users
[chia]$ sudo cp/etc/php5/apache2/php.ini/var/www/example # for Debian and Ubuntu
现在,我们只需要一个简单的技巧来告诉 apache 在哪里可以找到这个网站的 php 设置。您需要在配置文件中进行此小更改。
<VirtualHost 10.24.11.2:80>
ServerName example.com
ServerAlias www.example.com
PHPINIDir /var/www/html/example
</VirtualHost>
PHPINIDir 应该是文件 php.ini 所在的目录。
在此之后重新启动 apache
[root]# service httpd restart # for Fedora/Redhat/CenOS基于 Fedora/Redhat/CenOS 的系统
[chia]$ sudo apache2 restart # for 基于 Debian/Ubuntu 的系统