Windows下:
1、開啟安全模式,可以禁用exec()、system()等函數
2、在httpd.conf中用php_admin_value open_basedir限制PHP的存取目錄
3、在php_admin_value open_basedir別忘了加上php.ini中指定的PHP臨時上傳目錄和session儲存目錄,不然會無法上傳檔案、存取session
php.ini中按如下配置:
upload_tmp_dir = "E:/APMServ5.2.0/PHP/uploadtemp/"
session.save_path = "E:/APMServ5.2.0/PHP/sessiondata/"
4、更多內容參考我的APMServ軟體的配置 http://apmserv.s135.com
httpd.conf配置(假如將PHP讀寫權限限制在E:/smis目錄下)
Apache2.0配置樣本:
<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot "E:/smis"
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php
AllowOverride None
Order Deny,Allow
Allow from all
php_admin_value open_basedir "E:/smis/;E:/APMServ5.2.0/PHP/uploadtemp/;E:/APMServ5.2.0/PHP/sessiondata/"
php_admin_value safe_mode On
</VirtualHost>
Apache2.2配置樣本:
<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot "E:/smis"
</VirtualHost>
<Directory "E:/smis">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php
AllowOverride None
Order Deny,Allow
Allow from all
php_admin_value open_basedir "E:/smis/;E:/APMServ5.2.0/PHP/uploadtemp/;E:/APMServ5.2.0/PHP/sessiondata/"
php_admin_value safe_mode On
</Directory>
主要是apache的配置:
php_admin_value open_basedir限制PHP的存取目錄,沒有包含php.ini中的配置upload_tmp_dir = "E:/APMServ5.2.0/PHP/uploadtemp/",就會出現本地檔案上傳失敗的問題.