新服务器上的PHPExcel错误

时间:2011-05-21 16:22:32

标签: phpexcel

刚刚将我的安装转移到新服务器。我在调试时遇到问题,据我所知,在服务器创建/读取文件的文件夹中,所有权限仍然比我的旧服务器相同或更开放...

从我可以说,只是临时文件无法在某处创建,但我不知道在哪里......

  

警告:tempnam()[function.tempnam]:open_basedir限制生效。 File()不在允许的路径中:(/:/ usr / lib / php:/ usr / local / lib / php:/ tmp)在/ home / myacnt / public_html / users / internal / PHPExcel / Writer中第346行的/Excel5/Worksheet.php

     

警告:fopen()[function.fopen]:第347行的/home/myacnt/public_html/users/internal/PHPExcel/Writer/Excel5/Worksheet.php中的文件名不能为空

     

警告:tempnam()[function.tempnam]:open_basedir限制生效。 File()不在允许的路径中:(/:/ usr / lib / php:/ usr / local / lib / php:/ tmp)在/ home / myacnt / public_html / users / internal / PHPExcel / Writer中第346行的/Excel5/Worksheet.php

     

警告:fopen()[function.fopen]:第347行的/home/myacnt/public_html/users/internal/PHPExcel/Writer/Excel5/Worksheet.php中的文件名不能为空

     

警告:tempnam()[function.tempnam]:open_basedir限制生效。 File()不在允许的路径中:(/:/ usr / lib / php:/ usr / local / lib / php:/ tmp)在/ home / myacnt / public_html / users / internal / PHPExcel / Writer中第346行的/Excel5/Worksheet.php

     

警告:fopen()[function.fopen]:第347行的/home/myacnt/public_html/users/internal/PHPExcel/Writer/Excel5/Worksheet.php中的文件名不能为空

     

警告:tempnam()[function.tempnam]:open_basedir限制生效。 File()不在允许的路径中:(/:/ usr / lib / php:/ usr / local / lib / php:/ tmp)/ home / myacnt / public_html / users / internal / PHPExcel / Shared第95行/OLE/OLE_File.php

     

警告:fopen()[function.fopen]:第96行的/home/myacnt/public_html/users/internal/PHPExcel/Shared/OLE/OLE_File.php中的文件名不能为空

     

致命错误:/home/myacnt/public_html/users/internal/PHPExcel/Shared/OLE/OLE_File.php:98消息“无法创建临时文件”的未捕获异常“异常”堆栈跟踪:#0 / home / myacnt / public_html / users / internal / PHPExcel / Writer / Excel5.php(190):PHPExcel_Shared_OLE_PPS_File-> init()#1 /home/myacnt/public_html/users/functions/export.php(58):PHPExcel_Writer_Excel5- > save('/ home / myacnt / ...')#2 /home/myacnt/public_html/users/manager/functions/export.php(196):multiCSVToExcel(Array,'1305481112_Nick ...')#3 /home/myacnt/public_html/users/manager/viewInvoice.php(13):在/home/myacnt/public_html/users/internal/PHPExcel/Shared/OLE/OLE_File.php中引发的exportInvoiceLog(Array)#main {main}第98行

2 个答案:

答案 0 :(得分:2)

您正在处理错误消息所指示的名为open_basedir的限制。您必须检查php.ini中的值(您可以使用phpinfo()快速检查)并将文件放在指定的目录中,修改该值,或者完全禁用它。如果您禁用它,则需要确保对文件名进行完整性检查,例如使用basename删除潜在的“../../”遍历。

答案 1 :(得分:2)

此修复程序对我有用:

http://phpexcel.codeplex.com/workitem/17840

必须将更改应用于Shared / File.php