我做了一个 symfony 4.3 应用程序,想把它放在我的 OVH 服务器上。我将我的应用程序保存在 github 上,并忽略了 .env 文件,以及 .gitignore 中已忽略的所有文件和文件夹。然后,在 SSH 中,在我的 OVH 服务器中,我做了一个 git clone 来获取我的应用程序。然后我做了一个作曲家更新以获取所有丢失的文件和文件夹(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。所以我通过filezilla在FTP中手动传输.env,我用APP_ENV = prod更改了它,然后我手动(仍然使用filezilla)创建了一个var文件夹,其中包含缓存和日志文件夹(我没有传输我的所以它是空的,所以已经清除)。然后我检查了:我的网站正在互联网上运行(来自我的服务器,而不是本地)。
那么,问题解决了吗?......是的,没有。该网站有效,但我的目的不是在互联网上发布网站,而是学习(我在 udemy 上学习 symfony 课程)。我必须学习如何使用 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-scripts。作曲家安装
在 ssh 中执行本身并没有产生任何错误,但是在再次尝试在 heroku 上部署时没有解决问题
在这种情况下,我还尝试了我课程中老师提出的建议:
composer config disable-tls true
composer install
相同:执行此操作时没有错误,但尝试在 heroku 上部署时没有解决问题
自昨天以来的许多事情,我都不记得我尝试过的所有事情:-/但没有任何效果。