2010-07-12 19 views
5

bağlı çevreye bağlı olarak birkaç PHP değerlerini (geliştirme/üretim), en önemlisi yolu tasarrufu oturumu ve bazı izleme ve profil ayarları yapmanız gerekir..htaccess Seti PHP Değeri projemiz için Hostname

Bunları PHP betiğinde ayarlamak istemiyoruz çünkü çok fazla değişiklik gerektiren bazı korkunç eski kodlar nedeniyle .htaccess'i her seferinde gitmeden önce değiştirmek zorunda kalmıyoruz. ama biz) kaynak denetiminde olması .htacces gerektirir.

.htaccess böyle bir şey yapmak için herhangi bir yolu var mı: Bu durumda, starup apache ile ediyorum

<IfDefine SERVER1> 
    php_value session.save_path /tmp1 
</IfDefine> 

<IfDefine SERVER2> 
    php_value session.save_path /tmp2 
</IfDefine> 

: Biz şu kullanıldı kullanılan önceki işlerinden de

if (hostname == "dev.example.com") { 
    php_value session.save_path /tmp 
    [...] 
} 

cevap

6
Sen Apache'nin sanal ana config kurallar tanımlayabilirsiniz

(.htaccess yukarıda bir adım, bunu düzenlemek için bir yönetici sormak gerekir):

<VirtualHost *:80>                
    ServerName piskvor.example.com 
    ServerAlias *.host2.example.com 
    php_value session.save_path /home/piskvor/tmp 
</VirtualHost> 
<VirtualHost *:80>                
    ServerName someotherhost.example.org 
    php_value session.save_path /tmp 
</VirtualHost> 

Bu, her yapılandırma imkanı verir (ana bilgisayar adını veya bir ana bilgisayar kalıp karakteri ile) farklı ev sahipliği yapar. En yeni Apache kurulumları bunu desteklemektedir.

0

ek anahtar:

-D SERVER1 SERVER2

DÜZENLEME:

DÜZENLEME

Belki böyle bir şey orta zemin olabilir aşağıdaki?

if (!file_exists('.htaccess')) { 

    copy('.htaccess.default', '.htaccess'); 

    $handle = fopen('.htaccess', 'a'); 

    switch ($_SERVER['HTTP_HOST']) { 

    case 'dev.site': 
     fwrite($handle, 'php_value .....' . "\n"); 
     fwrite($handle, 'php_value .....' . "\n"); 
    break; 

    case 'live.site': 
     fwrite($handle, 'php_value .....' . "\n"); 
     fwrite($handle, 'php_value .....' . "\n"); 
    break; 

    } 

    fclose($handle); 

} 
+0

Bu doğru yönde bir adım olduğunu ancak yöneticileri kesinlikle bu engeller. Onlarla pazarlık yapmaya çalışacağım ama hala .htaccess – dbemerlin

+0

ile sınırlı bir şey için ümit ediyorum. Bu gerçekten herhangi bir güvenlik riski oluşturmuyor, ancak .htaccess'in alacağı kadar çok eminim. Nasıl sessizce .htaccess yazıyor bir PHP komut dosyası hakkında? –