Pisahkan file php.ini untuk setiap host virtual Apache?

11

Apakah mungkin untuk memiliki file php.ini terpisah yang menimpa file php.ini default untuk setiap host virtual? Saya menjalankan Apache / 2.2.14, PHP 5.3.2-1.

Sebagai contoh, saya memiliki beberapa vhost yang menunjuk ke domain di /var/www/direktori saya :

/var/www/website1.com  
/var/www/website2.com

Yang saya inginkan adalah dapat menempatkan file php.ini khusus di setiap direktori yang akan menimpa nilai default hanya untuk vhost itu, tetapi tetap menggunakan default aslinya jika nilainya tidak ditentukan:

/var/www/website1.com/htdocs/
/var/www/website1.com/php.ini

Sunting
Bagi yang berminat, saya menemukan lebih banyak info tentang topik di Bagaimana cara mengatur file php.ini per situs pada server LAMP menggunakan NameVirtualHosts? .

Calvin
sumber

Jawaban:

6

Jika Anda menggunakan mod_php, Anda dapat mengganti nilai yang Anda inginkan di httpd.conf. Ada arahan modul ini:

php_value - PHP Value Modifier
php_flag - PHP Flag Modifier
php_admin_value - PHP Value Modifier (Admin)
php_admin_flag - PHP Flag Modifier (Admin)

Jika tidak, foto terbaik Anda adalah PHP FPM (google it).

Artefacto
sumber
2
Ya, saya juga bisa menggunakan .htaccess di setiap root vhost untuk mengubah nilai juga, dan dari apa yang saya baca ini adalah cara yang baik untuk melakukannya. Tapi saya tahu saya telah melihat beberapa hosting hosting bersama yang memungkinkan Anda mengganti php.ini dengan milik mereka sendiri, jadi harus ada cara lain untuk melakukannya dengan benar?
2

Jika Anda menggunakan cgi (atau fastcgi, atau fpm, yang juga fastcgi), Anda dapat menggunakan .user.inifile .

Cukup letakkan .user.inifile di direktori webroot Anda dengan opsi php Anda, sebagai berikut:

memory_limit=256M
upload_max_filesize=200M
post_max_size=200M

Dan php akan memperpanjang file php.ini utama dengan opsi itu.

elboletaire
sumber
-3

Tambahkan PHPINIDir dalam tag VirtualHost dan arahkan ke direktori file php.ini Anda yang vhost akan gunakan.

<VirtualHost *:80>
[....]
PHPINIDir /var/www/web1
[....]
</VirtualHost>

meraih dari http://www.howtoforge.com/how-to-specify-a-custom-php.ini-for-a-website-apache2-with-mod_php

Sunting 14/04/2010 12:30 EST: ** Nevermind, ini mengubah "File Konfigurasi yang Dimuat" untuk semua vhosts. **

matt
sumber
PHPINIDir memuat php.ini itu untuk SEMUA host virtual, dan bukan hanya yang Anda masukkan. Saya ketahuan dengan asumsi yang sama :(
alandarev