Httpd.conf PHP değişkenleri ayarlama?

5 Cevap php

Ben yaşamak ve henüz farklı veritabanlarına erişim evreleme hamle olarak ben herhangi bir PHP kodu düzenlemek zorunda değilsiniz, böylece otomatik olarak, bir başına sankondan olarak benim veritabanı bağlantı ayarlarını değiştirmek istiyorum. Bu, tek bir adanmış sunucu üzerinde.

Ben de site daha sonra otomatik olarak bir test veritabanına kendisini işaret için kullanabileceğiniz vhost tanımının bir parçası olarak httpd.conf bir PHP değişken veya sabit olarak ayarlayabilirsiniz, merak ediyorum?

$database = 'live';
if (some staging environment variable is true) {
    $database = 'testing'; // and not live
}

Bu mümkün değilse, ben bu durumda güvenle ben anlatmaya devam ediyorum hostname inceleyebilirsiniz sanırım, ama ben biraz daha az kırılgan bir şey istiyorum

Umarım bu mantıklı

çok teşekkürler

Ian

5 Cevap

Eğer. Htaccess dosyasını kullanmayı denediniz mi? Bunu kullanarak php.ini değerleri geçersiz olabilir.

. Sadece htdocs dizine htaccess dosyası koymak:

php_value name value

Remnantlı bilgiler:

Evet ... bunu yapabilirsiniz:

SetEnv DATABASE_NAME testing

ve daha sonra PHP:

$database = $_SERVER["DATABASE_NAME"];

veya

$database = getenv("DATABASE_NAME");

Sen bir veyatam değişkeni ayarlamak ve PHP ile alabilirsiniz.

Httpd.conf:

SetEnv database testing

Lütfen PHP:

if (getenv('database') == 'testing') {

veya

if ($_SERVER['database'] == 'testing') {

Bu phpinfo (böyle varsayılan komut dosyası çıkışları da görünür olduğu gibi), bir ortam değişkeni ayarlamak olmaz;

sadece, sadece htdocs klasöründe yukarıda ve bitirdiniz ve güvenli konum senin. htaccess bir php_value kullanın :)

. Htaccess ile sorun kod tabanı ağaç parçası olmasıdır. Ve kod tabanı ağaç VC / SVN parçasıdır. Bu nedenle yerel / dev herhangi bir değişiklik üretime taşındı alır. Httpd.conf env değişken ayarını tutulması size yanlışlıkla dev bayrak vs sunucusunu değil üzerine dikkatli olma zahmetinden kurtarır. Elbette sürece ölçeklenebilir yaklaşımlar değildir, her ikisi de, IP adresi veya ana bilgisayar adı ile yapmak istiyorum.