Paylaşılan bir bilgisayar üzerinde bir derlenmiş php-cgi ile bir. Htaccess içinde php getenv () ve SetEnv nasıl kullanılır

3 Cevap php

Sadece ana soruya açıklık bağlamında koyarak:

Benim geliştirme makinede, PHP5.3.1 bir modül olarak Apache yüklü, benim uygulamanın kök. Htaccess dosyasında SetEnv APPLICATION_ENVIRONMENT gelişimi kullanabilirsiniz. Bu getenv ('APPLICATION_ENVIRONMENT') ile herhangi bir php komut dosyası daha sonra kolayca geri alınabilir olduğunu.

Doğrudan desteklenmiyor beri üretim sunucusunda, bir sharedhost üzerine (dreamhost), kendimi php5.3.1 derlenmiş. Her şey false döndüren getenv ('APPLICATION_ENVIRONMENT') dışında çalışıyor.

Alanım için sharedhost kök. Htaccess, ben bu. Htaccess dosyasını kullanabilirsiniz

Options +ExecCGI
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php.cgi

<FilesMatch "^php5?\.(ini|cgi)$">
    Order Deny,Allow
    Deny from All
    Allow from env=REDIRECT_STATUS
</FilesMatch>

Options -indexes

php5.cgi resides in /cgi-bin and works very well. Of course in my application's root folder I have another .htaccess defining:

SetEnv APPLICATION_ENVIRONMENT production

Getenv ('APPLICATION_ENVIRONMENT') kullanırken Ama, bu sorunu çözmek için nasıl bir fikir verir false?

3 Cevap

Tamam nihayet aldım. Dreamhost üzerinde, fastcgi kullanabilir ve bu nedenle onunla ortam değişkenleri bildirmek mümkündür. Sadece bu basit bir komut dosyası ekleyerek oluşur

#!/bin/sh
export PHP_FCGI_CHILDREN=2
exec /home/USERNAME/YOURDOMAIN/cgi-bin/php.cgi

Which is where my compiled PHP5.3.1 was located. chmod 744 on that file called dispatch.fcgi which will be allowed more memory by dreamhost's watchdog.

. Bundan sonra benim alanınızın htaccess şu eklendi:

Options +ExecCGI
AddHandler fastcgi-script fcg fcgi fpl
AddHandler php5-fastcgi .php
Action php5-fastcgi /dispatch.fcgi

. şimdi uygulamanın kök ben başka htaccess var:

SetEnv APPLICATION_ENVIRONMENT staging

Bir php komut dosyası getenv ('REDIRECT_APPLICATION_ENVIRONMENT') aracılığıyla alınabilir olduğunu;