PHPExcel中open_basedir restriction in effect的解决方法
用PHPExcel做导出execl的时候发现在本地没有问题,但是把网站传到租用的服务器的时候就报错,具体如下:
Warning: realpath() [function.realpath]: open_basedir restriction <span style="color: #0000ff">in</span> effect. File(/tmp) <span style="color: #0000ff">is</span> not within the allowed path(s): (/data/home:/usr/home:/data/home/tmp:/usr/home/tmp:/<span style="color: #0000ff">var</span>/www/disablesite) <span style="color: #0000ff">in</span> /data/home/【服务器名称】/htdocs/【项目地址】/Classes/PHPExcel/Shared/File.php on line <span style="color: #800080">136</span><span style="color: #000000"> 找到对应的File.php的136行,只是sys_get_temp_dir方法的最后一行,查阅网上的方法直接把该方法给替换掉就好了。 </span>
代码如下:
<span style="color: #0000ff">public static function sys_get_temp_dir()<br />{<br />if</span> (ini_get(<span style="color: #800000">'</span><span style="color: #800000">upload_tmp_dir</span><span style="color: #800000">'</span>)!==<span style="color: #0000ff">false</span><span style="color: #000000">) { </span><span style="color: #0000ff">if</span>($temp = ini_get(<span style="color: #800000">'</span><span style="color: #800000">upload_tmp_dir</span><span style="color: #800000">'</span><span style="color: #000000">)) { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (file_exists($temp)) { </span><span style="color: #0000ff">return</span><span style="color: #000000"> realpath($temp); } } } </span><span style="color: #0000ff">if</span> ( !function_exists(<span style="color: #800000">'</span><span style="color: #800000">sys_get_temp_dir</span><span style="color: #800000">'</span><span style="color: #000000">)) { </span><span style="color: #0000ff">if</span> ($temp = getenv(<span style="color: #800000">'</span><span style="color: #800000">TMP</span><span style="color: #800000">'<i style="color:transparent">本#文来源gaodai$ma#com搞$$代**码网$</i><button>搞代gaodaima码</button></span><span style="color: #000000">)) { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (file_exists($temp)) { </span><span style="color: #0000ff">return</span><span style="color: #000000"> realpath($temp); } </span><span style="color: #0000ff">if</span> (($temp!=<span style="color: #800000">''</span>) &&<span style="color: #000000"> file_exists($temp)) { </span><span style="color: #0000ff">return</span><span style="color: #000000"> realpath($temp); } } </span><span style="color: #0000ff">if</span> ($temp = getenv(<span style="color: #800000">'</span><span style="color: #800000">TEMP</span><span style="color: #800000">'</span><span style="color: #000000">)) { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (file_exists($temp)) { </span><span style="color: #0000ff">return</span><span style="color: #000000"> realpath($temp); } } } <br />}</span>