php - 如何将 PHP 应用程序限制在它们自己的目录和它们自己的 php.ini 中?

标签 php apache include subdomain server-side-includes

我在我的 Mac 上运行多个 PHP 应用程序,运行 OS X 10.5.6、Apache 2、PHP 5。我为每个项目设置了子域,为每个子域设置了一个主机文件条目,并在 Apache 配置中设置了虚拟目录 block .所以

project1.localhost 转到/Library/WebServer/Documents/Project1
project2.localhost 转到/Library/WebServer/Documents/Project2
等等……

但是,此方法并不能真正“隔离”网络应用程序。例如,如果我包含这样的脚本:

<?php
include("/includes/include.php");
?>

它引用了我计算机基本目录中的脚本。所以它访问
C:/includes/include.php

有没有办法让我引用
C:/Library/WebServer/Documents/Project2/includes/include.php

基本上,让它不知道自己目录之外的任何东西。另外,有没有办法在每个子域的基础上使用 php.ini?

最佳答案

我相信可以为每个虚拟主机设置一个 php.ini

<VirtualHost *:80>
    ...

    PHPINIDir /full/path/to/php/ini/

</VirtualHost>

这样你就可以自定义open_basedir和其他

关于php - 如何将 PHP 应用程序限制在它们自己的目录和它们自己的 php.ini 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/639666/

相关文章:

PHP在一页中多次包含文件

php - 使用 javascript 和 jquery 动态包含一个 php 文件

ruby-on-rails - helper 和包含在 Controller 中的区别是什么?

php - Aviary jquery 将表单变量传递给发布 url

PHP 命名空间和包含

apc - 如何在 CLI 和 Web Server 实例之间共享 APC 用户缓存?

apache - 根据 SSL 证书查看服务器名称

linux - 需要进行哪些配置设置来修复由 SE Linux 引起的 Apache - MongoDB 连接问题?

PHP将数据库结果添加到多维数组

apache - 如何重置 Apache Archiva 密码