我知道我不是第一个面临这个问题的人,但所有答案都没有帮助我。
我正在使用Xampp 7.1.9-0运行OS X Siera 10.12.6并尝试从远程ftp服务器获取文件列表,如下所示:
$this->log('Changing to destination folder '.$config->folder.' on ftp server.',2);
ftp_chdir($ftpConnection, $config->folder);
这是返回的错误消息: 警告:ftp_nlist():无法创建临时文件。检查临时文件目录中的权限。在/Users/foobar/Websites/local/foobar/class.importCsv.php第158行
Warning: Invalid argument supplied for foreach() in /Users/foobar/Websites/local/foobar/class.importCsv.php on line 160
检查phpinfo()的输出时;并寻找任何给定的tmp设置我得到那些可能感兴趣的路径/参数:
upload_tmp_dir: /Applications/XAMPP/xamppfiles/temp/
soap.wsdl_cache_dir /tmp
TMPDIR: /var/folders/qq/912038129312390812903812093/T/
SSH_AUTH_SOCK: /private/tmp/com.apple.launchd.f0uSENezH9/Listeners
upload_tmp_dir: /Applications/XAMPP/xamppfiles/temp/
Apple_PubSub_Socket_Render: /private/tmp/com.apple.launchd.aOzrWGVthG/Render
所以我要更改所有这些文件夹的文件夹权限:
chmod a+w /Applications/XAMPP/xamppfiles/temp
chmod a+w /private/tmp/
chmod a+w /tmp
最后一个不起作用,它返回“不允许操作”(是的,我使用了sudo -i):
chmod a+w /var/folders/qq/9qwrj72x6sz73v2tgf7qddnh0000gn/T/
仅供参考:我刚从OSX内置的Apache-PHP-System切换到Xampp,所以肯定是与Xampp的配置错误。