Symfony 4.3 на сервере OVH, ошибка возврата из-за сброса кэша 255 (при обновлении композитора / развертывании heroku из github) - PullRequest
2 голосов
/ 03 июня 2019

Я создал приложение Symfony 4.3 и хотел бы разместить его на своем OVH-сервере.Я сохранил свое приложение на github и проигнорировал файл .env, а также все файлы и папки, уже проигнорированные в .gitignore.Затем в SSH на своем OVH-сервере я сделал клон git, чтобы загрузить на него свое приложение.Затем я сделал обновление композитора, чтобы получить все отсутствующие файлы и папки (var, vendor, .env).Это дало мне ошибку:

Executing script cache:clear [KO]
[KO]
script cache:clear returned with error 255
!!
script @auto-scripts was called via post-update-cmd

И поставщик присутствовал на моем сервере, но ни var, ни .env.Поэтому я вручную передал .env в FTP через filezilla, изменил его с помощью APP_ENV = prod, затем создал вручную (все еще с filezilla) папку var с папками cache и log в ней (я не перенес мою, чтобы она была пустой)так уже очистили).Затем я проверил: мой сайт работал в Интернете (с моего сервера, а не на локальном).

Итак, проблема решена?... И да и нет.Сайт работает, но моя цель не публиковать сайт в интернете, а учиться (я следую уроку Symfony по Udemy).Я научился делать автоматические развертывания с помощью heroku.

Поэтому я создаю учетную запись heroku, привязываю ее к своей учетной записи на github и к своему приложению.Но когда я пытаюсь выполнить развертывание вручную из heroku (чтобы проверить, работает ли это перед выполнением автоматического развертывания), у меня все еще возникает ошибка очистки кеша 255 ([изменено: некоторые цифры и буквы] - это то, что я скрыл в сообщении об ошибке, потому что мне было интересно,это может быть чувствительно):

Executing script cache:clear [KO]
        [KO]
       Script cache:clear returned with error code 255
       !!  PHP Fatal error:  Uncaught Symfony\Component\Dotenv\Exception\PathException: Unable to read the "/tmp/build_[modified : some numbers and letters]/.env" environment file. in /tmp/build_[modified : some numbers and letters]/vendor/symfony/dotenv/Dotenv.php:484
       !!  Stack trace:
       !!  #0 /tmp/build_[modified : some numbers and letters]/vendor/symfony/dotenv/Dotenv.php(65): Symfony\Component\Dotenv\Dotenv->doLoad(false, Array)
       !!  #1 /tmp/build_[modified : some numbers and letters]/vendor/symfony/dotenv/Dotenv.php(85): Symfony\Component\Dotenv\Dotenv->load('/tmp/build_a7cc...')
       !!  #2 /tmp/build_[modified : some numbers and letters]/config/bootstrap.php(15): Symfony\Component\Dotenv\Dotenv->loadEnv('/tmp/build_a7cc...')
       !!  #3 /tmp/build_[modified : some numbers and letters]/bin/console(30): require('/tmp/build_a7cc...')
       !!  #4 {main}
       !!    thrown in /tmp/build_[modified : some numbers and letters]/vendor/symfony/dotenv/Dotenv.php on line 484
       !!  
       Script @auto-scripts was called via post-install-cmd
 !     ERROR: Dependency installation failed!
 !     
 !     The 'composer install' process failed with an error. The cause
 !     may be the download or installation of packages, or a pre- or
 !     post-install hook (e.g. a 'post-install-cmd' item in 'scripts')
 !     in your 'composer.json'.
 !     
 !     Typical error cases are out-of-date or missing parts of code,
 !     timeouts when making external connections, or memory limits.
 !     
 !     Check the above error output closely to determine the cause of
 !     the problem, ensure the code you're pushing is functioning
 !     properly, and that all local changes are committed correctly.
 !     
 !     For more information on builds for PHP on Heroku, refer to
 !     https://devcenter.heroku.com/articles/php-support
 !     Push rejected, failed to compile PHP app.
 !     Push failed

Из-за сообщения об ошибке, я посмотрел в своем файле composer.json, у меня есть это:

"scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install %PUBLIC_DIR%": "symfony-cmd"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },

Что-то не так с этим?Я не вижу, что я мог бы изменить в нем.

Я перепробовал много вещей, которые нашел в Интернете:

https://github.com/symfony/flex/issues/406 обновление композитора symfony / flex --no-plugins--no-скрипты.composer install

, выполненный в ssh, не создавал никаких ошибок сам по себе, но не решал проблему при повторной попытке развертывания на heroku

Я также пробовал то, что предложил учитель в моем урокев этом случае:

composer config disable-tls true
composer install

То же самое: никаких ошибок при этом не было, но не удалось решить проблему при попытке развернуть на героку

И многие вещи со вчерашнего дня, я незапомнить все, что я пытался: - / но ничего не получалось.

1 Ответ

1 голос
/ 12 июня 2019

Убедитесь, что вы задали переменную среды SYMFONY_ENV = prod в Heroku и APP_ENV = prod в своем файле .env.

...