所有常见的大型 PHP 项目执行它的方式只是为它保留一个文件夹,并在安装时检查它的权限。
您可以轻松地在您的 webroot 中创建一个/gen
或/data
文件夹,并在安装/更新时检查它:
- 包含一个
.htaccess
文件,说明deny from all
网络服务器是否为 Apache,或其他网络服务器上的等效保护方法(仅file_get_contents
通过公共 URL 进行测试)
is_writable
(您也可以写入、读取和删除一个小样本文件来确保这一点)
将您的文件放在那里,它在每个平台上都是安全且便携的。
一些示例代码:
$docroot = $_SERVER['DOCUMENT_ROOT'];
$dataroot = $docroot.'/data';
$testfile = $dataroot.'/test.txt';
$publicURL = $youHaveThisSomewhere.'/data/test.txt';
if(!is_dir($dataroot))
die("The required data folder is not present at $dataroot");
if(!is_writable($dataroot) || file_put_contents($testfile, 'test') === FALSE)
die("Data path ($dataroot) is not writable, make it so!");
if(file_get_contents($publicURL) !== FALSE)
die("Data path is publicly accessible, go fix it!");
if(!unlink($testfile))
die("I also need delete rights in the data folder!");
die("Installation successful!");