Я пытаюсь загрузить файл в свое приложение cakephp благодаря Josegonzalez / Upload. И у меня следующая ошибка. На локальном все работает, а на моем сервере - нет. Кстати, загрузка файлов с помощью wordpress или простой формы PHP работает на моем сервере. Я должен был указать
upload_tmp_dir = /tmp
чтобы он работал для Wordpress в моем php.ini. Я тоже пробовал
open_basedir = /tmp
но для cakephp он все еще не работает.
Fatal error: [InvalidArgumentException] Invalid stream reference provided #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(Array, Array) #4 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequest.php(300): Cake\Http\ServerRequest->_setConfig(Array) #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
Предупреждение: 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
Предупреждение: действует ограничение 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
Предупреждение: file_put_contents (/home/rom1/public_html/cakephp/logs/error.log): не удалось открыть поток: операция не разрешена в / home / rom1 / public_html / cakephp / vendor / cakephp / cakephp / src / Log / Engine / FileLog.php в строке 133
Неустранимая ошибка: [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 (' / tmp1 / phpKu6 ') # 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 (Array) # 5 /home/rom1/public_html/cakephp/vendor/cakephp/cakephp/src/Http/ServerRequestFactory.php(56): Http \ ServerRequest -> __ construct (Array) # 6 / home / rom1 / public_html / cakephp / vendor / cakephp / c в / home / rom1 / public_html / cakeph p / vendor / cakephp / cakephp / src / Error / ErrorHandler.php в строке 180
Конечно, да! Конечно погуглил! Я работал над этим весь день, прежде чем писать о stackoverflow. Как я уже сказал, я попытался поместить open_basedir = / tmp в свой файл php.ini, я также попытался прокомментировать его, но это не работает
Вы перезапустили Apache после обновления php.ini?
Да, я перезапустил apache






Я наконец понял, что проблема не в моем php.ini.
Поскольку я работаю с userdir, мне пришлось перейти в /etc/apache2/mods-available/userdir.conf
И изменить
php_admin_value open_basedir ".."
К
php_admin_value open_basedir ..:/tmp
Но я не могу понять, почему он работал с Wordpress, а не с CakePHP…
Вы пытались прочитать сообщение об ошибке? Просто погуглите "действует ограничение open_basedir"