Я создал приложение 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
То же самое: никаких ошибок при этом не было, но не удалось решить проблему при попытке развернуть на героку
И многие вещи со вчерашнего дня, я незапомнить все, что я пытался: - / но ничего не получалось.