2013-04-30 54 views
1

我是一个PHP的n00b,但按照说明按本优秀的啧啧:PHP错误:未能打开流:没有这样的文件或目录

PHP Tizag file upload tutorial

然而,尽管这在我运行默认的内置Apache的Mac(OSX 10.8)上完美运行,它失败并且不能在CentOS 6机器上运行。翻翻Apache日志我得到这个:

failed to open stream: No such file or directory 

权限已被设置为的“上传”文件夹位于的/ var/www/html等根(在Mac上它的/ Library/Webserver/Documents)

[Tue Apr 30 13:05:11 2013] [error] [client (My IP Address)] PHP Warning: move_uploaded_file(uploads/Today notes.txt): failed to open stream: No such file or directory in /var/www/html/test/uploads3.php on line 8, referer: ht*p://serverip.myserver.com/test/form4.html 

[Tue Apr 30 13:05:11 2013] [error] [client (my IP address)] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpc8AGo8' to 'uploads/Today notes.txt' in /var/www/html/test/uploads3.php on line 8, referer: ht*p://serverip.myserver.com/test/form4.html 

我是否缺少PHP或Apache中的一些设置以使其正常工作?

非常感谢提前。

+3

您可以显示PHP代码中使用 – fullybaked 2013-04-30 12:26:19

+0

如果你有问题了Tizag教程,请联系Tizag寻求支持。是的,只要你得到错误,你就错过了一些东西。要了解什么,请阅读错误消息并尝试理解它们。 – 2013-04-30 12:31:57

+0

传递文件路径时请记住区分大小写,容易忘记mac是不区分大小写的,其中cent os将区分大小写。 – AlexP 2013-04-30 12:41:04

回答

1

根据您的问题uploads文件夹是在/var/www/html,但是通过它试图上传错误消息进入/var/www/html/test/uploads不存在

要么你需要修复的代码上传到正确的路径,或者您需要在测试目录中创建一个上传目录

+0

谢谢,你在这里,虽然问题比这更深,因为它仍然是通过卷曲工作,这是我实际上正在尝试。在排除故障时,我已将事情移到临时目录中。我可能需要发布一个新问题以避免混淆。 – BSUK 2013-04-30 17:32:41

+1

现在,此处有一个常见错误的故障排除清单:stackoverflow.com/a/36577021/2873507 – 2016-04-12 16:41:13

0

请查阅您操作系统的文档。 CentOS 6有额外的安全配置,可能会阻止PHP访问tmp文件夹。

允许该文件夹访问Apache HTTPD(或将临时上载路径更改为允许通过SELinux配置访问Apache HTTPD的文件夹)。同时审核SELinux日志以找出准确阻止访问目录的设置。

E.g.如果您没有将PHP作为Apache模块运行,则可能需要允许其他进程(例如PHP(F)CGI二进制文件)受保护的文件系统资源。

0

希望这将解决您的问题

首先检查文件夹中,如果不将其创建为波纹管

if(!is_dir('uploads/Today')){ 
    mkdir("uploads/Today", 0755); 
} 
相关问题