从以下三点考虑:

1.apache服务的降权限

默认为系统权限 参考数据库降权的方法进行设置为低权限账户运行apache

设置后注意临时目录的读取写入权限。

2.php函数禁用

disable_functions =exec,system,passthru,popen,pclose,shell_exec,proc_open,dl,chmod

3.虚拟主机目录限制。php_admin_value open_basedir的使用。

windows下一个配置实例:

<VirtualHost *>
    <Directory "D:/vhosts/www.test.com">
        Options -Indexes FollowSymLinks
    </Directory>
    ServerAdmin admin@www.test.com
    DocumentRoot "D:/vhosts/www.test.com"
    ServerName www.test.com
    ServerAlias test12355.com www123.com
    ErrorLog logs/www.test.com-error_log
    php_admin_value open_basedir "D:\vhosts\www.test.com;C:\Windows\Temp;"
</VirtualHost>

linux下一个配置实例:

<VirtualHost *:88>
ServerAdmin webmaster@example.com
php_admin_value open_basedir "/home/wwwroot/jk.exp-db.com:/tmp/:/var/tmp/:/proc/"
DocumentRoot "/home/wwwroot/jk.exp-db.com"
ServerName jk.exp-db.com
ErrorLog "logs/jk.exp-db.com-error_log"
CustomLog "logs/jk.exp-db.com-access_log" common
</VirtualHost>