Ste*_*ato 15 php apache .htaccess shared-hosting
只是在上下文中阐明主要问题:
在我的开发机器上,PHP5.3.1作为模块安装在Apache上,我在应用程序的根.htaccess文件中使用SetEnv APPLICATION_ENVIRONMENT开发.然后可以使用getenv('APPLICATION_ENVIRONMENT')从任何php脚本轻松检索它.
在生产服务器上,在sharedhost(dreamhost)上,我自己编译了php5.3.1,因为它没有直接支持.除了getenv('APPLICATION_ENVIRONMENT')返回false之外,一切正常.
在我的域的sharedhost root .htaccess中,我使用此.htaccess文件
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
Run Code Online (Sandbox Code Playgroud)
php5.cgi驻留在/ cgi-bin中并且运行良好.当然在我的应用程序的根文件夹中,我有另一个.htaccess定义:
SetEnv APPLICATION_ENVIRONMENT production
Run Code Online (Sandbox Code Playgroud)
但是当使用getenv('APPLICATION_ENVIRONMENT')时它返回false,任何想法如何解决这个问题?
Ste*_*ato 14
好的,我终于明白了.在dreamhost上,可以使用fastcgi,因此可以使用它来声明环境变量.它只包括添加这个简单的脚本
#!/bin/sh
export PHP_FCGI_CHILDREN=2
exec /home/USERNAME/YOURDOMAIN/cgi-bin/php.cgi
Run Code Online (Sandbox Code Playgroud)
这是我编译的PHP5.3.1所在的位置.chmod 744在该文件上调用dispatch.fcgi,这将允许dreamhost的看门狗获得更多内存.
之后我添加到我的域名.htaccess中:
Options +ExecCGI
AddHandler fastcgi-script fcg fcgi fpl
AddHandler php5-fastcgi .php
Action php5-fastcgi /dispatch.fcgi
Run Code Online (Sandbox Code Playgroud)
现在在应用程序的根目录中我有另一个.htaccess:
SetEnv APPLICATION_ENVIRONMENT staging
Run Code Online (Sandbox Code Playgroud)
在PHP脚本中可以通过getenv('REDIRECT_APPLICATION_ENVIRONMENT')检索;
归档时间: |
|
查看次数: |
54499 次 |
最近记录: |