Загрузить файл CakePHP Fatal Error

Я пытаюсь загрузить файл в свое приложение 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

Вы пытались прочитать сообщение об ошибке? Просто погуглите "действует ограничение open_basedir"

floriank 07.06.2018 12:26

Конечно, да! Конечно погуглил! Я работал над этим весь день, прежде чем писать о stackoverflow. Как я уже сказал, я попытался поместить open_basedir = / tmp в свой файл php.ini, я также попытался прокомментировать его, но это не работает

Rom1 07.06.2018 14:28

Вы перезапустили Apache после обновления php.ini?

Greg Schmidt 07.06.2018 16:33

Да, я перезапустил apache

Rom1 07.06.2018 17:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
698
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я наконец понял, что проблема не в моем php.ini.

Поскольку я работаю с userdir, мне пришлось перейти в /etc/apache2/mods-available/userdir.conf

И изменить

php_admin_value open_basedir ".."

К

php_admin_value open_basedir ..:/tmp

Но я не могу понять, почему он работал с Wordpress, а не с CakePHP…

Другие вопросы по теме