Не могу импортировать файл в prod (Symfony 3.4) - PullRequest
0 голосов
/ 19 февраля 2020

Я настраиваю веб-сайт на Prod, и есть часть, где мне нужно импортировать файл.

Итак, у меня есть страница с формой, которая просит меня импортировать файл, и в dev это работает. Теперь проблема в том, что в среде prod, когда я отправляю форму, я получаю ошибку 500, например: The said error

Как я могу решить эту проблему?

Редактировать:

Вот строка, которую я нашел в файле журнала:

[2020-02-19 13:26:53] request.CRITICAL: Uncaught PHP Exception Symfony\Component\HttpFoundation\File\Exception\FileException: "Unable to write in the "csv/" directory" at /var/www/html/******/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/File/File.php line 115 {"exception":"[object] (Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException(code: 0): Unable to write in the \"csv/\" directory at /var/www/html/******/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/File/File.php:115)"} []
[2020-02-19 13:26:53] cache.WARNING: Failed to save key "%5BSymfony%5CBundle%5CTwigBundle%5CController%5CExceptionController%5D%5B1%5D" (array) {"key":"%5BSymfony%5CBundle%5CTwigBundle%5CController%5CExceptionController%5D%5B1%5D","type":"array","exception":"[object] (ErrorException(code: 0): file_put_contents(/var/www/html/******/var/cache/prod/pools/kdBlscBHv1/5e4d379d6cc116.53694267): failed to open stream: Permission denied at /var/www/html/******/vendor/symfony/symfony/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php:87)"} []

Вот функция, которую я использую, когда файл был отправлен и утвержден (несколько проверок достоверности):

private function uploadCsvFile($file)
    {
        $ext = "csv";
        $originalFilename = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);

        $safeFilename = transliterator_transliterate('Any-Latin; Latin-ASCII; [^A-Za-z0-9_] remove; Lower()', $originalFilename);
        $newFilename = $safeFilename.'-'.uniqid().'.'.$ext;
        // Move the file to the directory where csv files are stored
        try 
        {
            $directory = 'csv/';
            $file->move($directory, $newFilename);
            return $directory.$newFilename;
        } 
        catch (FileException $e) 
        {
            return false;
        }
    }

РЕДАКТИРОВАТЬ 2:

Мне удалось решить это. Я должен был дать права на запись всем в папке (я использовал эту команду: chmod 777 my_folder )

1 Ответ

0 голосов
/ 22 февраля 2020

Моя единственная идея состоит в том, что вы должны убедиться, что у сервера есть права на запись в каталог csv, если среда DEV работает, проверьте, является ли владелец csv www-data или пользователь по умолчанию apache На вашем сервере называется ОС. Обязательно установите права на чтение / запись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...