I'm running Apache 2.26, on Windows 7 with PHP 5.39 mod_ssl/2.2.6 OpenSSL/0.9.8g .
PHP works fine, so does Apache.
However, I want to try and create custom php.ini files per directory, for my test sites.
I could - and did - use php_flag but would like to try to create a custom php.ini file that works. I tried to Google this, but couldn't find anything relevant.
This is my current .htaccess for C:/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/"
Yet, I made a change in the custom php.ini within the php to have short tags off [for testing only] but it didn't pick it up, the php code showed instead.
Any help is appreciated with this; it'll be extremely useful!
(bear in mind, this Apache install is a development/testing one)
If you are using
php_flag
then you are probably using mod_php5. Custom 'php.ini' files aren't supported with this. You would need to use suPHP or equiv as thephp.ini
is only loaded at PHP startup, and this isn't per-request for mod_php5 and FCGI.However, since you are using PHP 5.3 you can also use .user.ini files which are parsed on a per-request basis.
Many times you might feel that you require a different settings for different sites (running on the same server) as specified in php.ini . So you start making changes in your php files using ini_set() or .htaccess to override those settings. In this howto, I will tell you how to solve this problem of having different php settings by having separate php.ini files for each website.
So, lets assume that I have a website with document root as /var/www/html/example/ with domain as www.example.com. For testing purpose you can create a small file in /var/www/html/example/phpinfo.php
Now run http://example.com/phpinfo.php it will display current php settings.
Now copy the php.ini file from /etc/php.ini file to your /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
And now, we just need a simple trick to tell apache where to find the php settings for this website. You need to make this small change in the configuration file.
PHPINIDir should be the directory where the file php.ini resides.
Restart the apache after this
[root]# service httpd restart # for Fedora/Redhat/CenOS based systems
[chia]$ sudo apache2 restart # for Debian/Ubuntu based systems