配置虚拟主机环境
虚拟主机环境旨在防范与多个虚拟服务器共享 PHP 引擎相关的潜在安全和性能问题。
通过使用 Web Server 7.0 环境变量,您可以分配相同的 PHP 二进制文件,并将单独的引擎绑定到每个虚拟服务器上。应确保每个虚拟服务器具有其自己的 php.ini 文件。
Service fn=responder-fastcgi
app-path=”/path/to/php/php_fcgi”
bind-path=”$(lc($urlhost))”
req-retry=5
type=”*magnus-internal/fastcgi*”
app-env=”PHPRC=/path/to/users/$(lc($urlhost))/config”
app-env=”PHP_FCGI_CHILDREN=5″
app-env=”PHP_FCGI_MAX_REQUEST=200″
min-procs=1
restart-interval=10
bucket=”php-bucket”
rlimit_cpu=60
现在,Web Server tmp 目录将显示按照处理 PHP 请求的各个虚拟服务器命名的 Unix 域套接字。通过对所有用户使用单个 PHP FastCGI 二进制文件,可以实现此操作。因此,单个二进制文件应具有使用它编译的所有必需插件。上述难题的解决方案是,确保每个用户具有各自所需的 PHP 二进制文件副本。
Service fn=responder-fastcgi
app-path=”/path/to/users/$(lc($urlhost))/php_fcgi”
bind-path=”$(lc($urlhost))”
req-retry=5
type=”*magnus-internal/fastcgi*”
app-env=”PHPRC=/path/to/users/$(lc($urlhost))/config”
app-env=”PHP_FCGI_CHILDREN=5″
app-env=”PHP_FCGI_MAX_REQUEST=200″
min-procs=1
restart-interval=10
bucket=”php-bucket”
rlimit_cpu=60
此外,也可以通过控制 URI 空间结构,以允许每个应用程序使用不同的 PHP 二进制文件。
例如:
如果 URI 空间结构如下所示:
/app/foo.php
其中 /app 是整个应用程序的名称,在以 PHP 文件结尾的 URI 结构中,它始终是第一个目录。
Service fn=responder-fastcgi
app-path=”/path/to/users/$(lc($urlhost))/$1/php_fcgi”
bind-path=”$(lc($urlhost))_$1″
req-retry=5
type=+magnus-internal/fastcgi*”
app-env=”PHPRC=/path/to/users/$(lc($urlhost))/config”
app-env=”PHP_FCGI_CHILDREN=5″
app-env=”PHP_FCGI_MAX_REQUEST=200″
min-procs=1
restart-interval=10
bucket=”php-bucket”
rlimit_cpu=60
这会调用一个专门生成的 PHP FastCGI 二进制文件,该文件绑定到唯一命名的 Unix 域套接字。因此,其他 PHP 应用程序或其他虚拟服务器将不会受到干扰。不过,此进程会占用很多内存,因为存在许多 PHP 进程。