提问三步曲: 提问先看教程/FAQ索引(wdcp,wdcp_v3,一键包)及搜索,会让你更快解决问题
1 提供详细,如系统版本,wdcp版本,软件版本等及错误的详细信息,贴上论坛或截图发论坛
2 做过哪些操作或改动设置等
温馨提示:信息不详,很可能会没人理你!论坛有教程说明的,也可能没人理!因为,你懂的
[BUG反馈] wdcp nginx php5.2.17存在跨站,以及解决方法。
nginx php5.2.17存在跨站,没有像apache那样可以限制open_base_dir限制目录的功能。
但是可以通过修改源码解决跨站问题。
tar zxvf php-5.2.17.tar.gz 解压
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -fd php-5.2.17 -p1 php5.2.17打上php-fpm补丁,5.2不支持!
cd php-5.2.17
vim main/fopen_wrappers.c
找到234行,添加如下代码:
code
//nginx 5.2.17防止跨站
///*添加开始, add by 黄云建 QQ:22327635*/
char *env_doc_root;
env_doc_root = sapi_getenv("DOCUMENT_ROOT", sizeof("DOCUMENT_ROOT")-1 TSRMLS_CC);
if(env_doc_root){
int res_root = php_check_specific_open_basedir(env_doc_root, path TSRMLS_CC);
efree(env_doc_root);
if (res_root == 0) {
return 0;
}
}
// 添加的内容结束
如图一所示
编译
./configure --prefix=/www/wdlinux/nginx_php-5.2.17 \--with-config-file-path=/www/wdlinux/nginx_php-5.2.17/etc \
--with-mysql=/www/wdlinux/mysql --with-mysqli=/www/wdlinux/mysql/bin/mysql_config \
--with-iconv=/usr \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-bz2 \
--with-libxml-dir=/usr \
--enable-xml --disable-rpath \
--enable-discard-path \
--enable-inline-optimization \
--with-curl --enable-mbregex \
--enable-mbstring \
--with-mcrypt=/usr \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-ftp \
--enable-sockets \
--enable-zip \
--enable-fastcgi \
--enable-fpm \
--with-fpm-conf=/www/wdlinux/etc/php-fpm.conf
make
make install
修改php.ini
open_basedir = "/tmp;/var/tmp;/proc"
重启service php-fpm restart |