上传文件 CakePHP 致命错误

Upload file CakePHP Fatal Error

感谢 Josegonzalez/Upload,我尝试在我的蛋糕 php 应用程序上上传文件。我有以下错误。 在本地一切正常,但在我的服务器上不行。 顺便说一句,使用 wordpress 或简单的 PHP 表单上传文件可以在我的服务器上运行。 我必须指定

upload_tmp_dir = /tmp

使其在我的 php.ini 中适用于 Wordpress。我也试过了

open_basedir = /tmp

但它仍然不适用于蛋糕php。

致命错误:[InvalidArgumentException] 提供的流引用无效 #0 /home/rom1/public_html/cakephp/vendor/zendframework/zend-diactoros/src/Stream.php(58): Zend\Diactoros\Stream->setStream('/tmp/phpKu6O1j', 'r') #1 /home/rom1/public_html/cakephp/vendor/zendframework/zend-diactoros/src/UploadedFile.php(164): Zend\Diactoros\Stream->__construct('/tmp/phpKu6O1j') #2 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequest.php(460): Zend\Diactoros\UploadedFile->getStream() #3 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequest.php(361): Cake\Http\ServerRequest->_processFiles(数组, 数组) #4 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequest.php(300): Cake\Http\ServerRequest->_setConfig(数组) #5 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequestFactory.php(56): Cake\Http\ServerRequest->__construct(Array) #6 /home/rom1/public_html/cakephp/vendor/cakephp/c in /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Error/ErrorHandler.php on line 180</p> <p>警告:file_exists():open_basedir 限制生效。文件(/home/rom1/public_html/cakephp/logs/error.log)不在允许的路径内:(..)在线 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Log/Engine/FileLog.php 188</p> <p>警告:file_put_contents():open_basedir 限制生效。文件(/home/rom1/public_html/cakephp/logs/error.log)不在允许的路径内:(..)在线 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Log/Engine/FileLog.php 133</p> <p>警告:file_put_contents(/home/rom1/public_html/cakephp/logs/error.log):无法打开流:在 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Log/Engine/[ 中不允许操作=74=] 第 133 行 </p> <p>致命错误:[InvalidArgumentException] 提供的流引用无效 #0 /home/rom1/public_html/cakephp/vendor/zendframework/zend-diactoros/src/Stream.php(58): Zend\Diactoros\Stream->setStream('/tmp/phpKu6O1j', 'r') #1 /home/rom1/public_html/cakephp/vendor/zendframework/zend-diactoros/src/UploadedFile.php(164): Zend\Diactoros\Stream->__construct('/tmp/phpKu6O1j') #2 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequest .php(460): Zend\Diactoros\UploadedFile->getStream() #3 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequest.php(361): Cake\Http\ServerRequest->_processFiles(数组, 数组) #4 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequest.php(300): Cake\Http\ServerRequest->_setConfig(数组) #5 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequestFactory.php(56): Cake\Http\ServerRequest- >__construct(Array) #6 /home/rom1/public_html/cakephp/vendor/cakephp/c in /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Error/ErrorHandler.php on line 180

我终于明白问题不在我的php.ini。

因为我在使用 userdir,所以我不得不去 /etc/apache2/mods-available/userdir.conf

并改变

php_admin_value open_basedir ".."

php_admin_value open_basedir ..:/tmp

但我不明白为什么它使用 Wordpress 而不是 CakePHP...