将Symfony 4项目部署到数字海洋

按照symfony在其部署页面(https://symfony.com/doc/4.2/deployment.html)上的说明,我创建了在部署后运行的SSH命令:

*(a + i)

我的a文件具有用于生产的以下变量:cd /var/www/upr/ <-- move into project folder composer install --no-dev --optimize-autoloader <-- install dependencies on a prod env bin/console doctrine:migrations:migrate <-- migrate any new DB updates bin/console cache:clear <-- clear cache

这是我得到的错误:

.env

据我了解,我得到的错误来自制造商捆绑包,但我认为在作曲家安装上使用APP_ENV=prod APP_DEBUG=0可以消除该问题。那为什么我会收到这些错误?

还有另一个部署问题:我是否删除了所有内容,但是否删除了build文件夹,因为这就是该站点正在使用的内容?我是否需要特别用于生产服务器的任何东西?

lxg1201 回答:将Symfony 4项目部署到数字海洋

这在具有ansible的云服务器上为我工作:

a)设置环境变量:

export APP_DEBUG= 0
export APP_ENV=prod
export DATABASE_URL="mysql://username:pwd@host:port/dbname"

b)安装依赖项

cd /var/www/upr/     
composer install --no-dev --optimize-autoloader

sudo -u www-data composer install --no-dev --optimize-autoloader

c)运行迁移

./bin/console doctrine:migrations:migrate

d)清除缓存

 ./bin/console cache:clear

e)安装所需的扩展程序:

我不确定您在生产中使用什么操作系统。注释中的第一个错误表示您尚未正确设置生产环境,例如安装所需的扩展名和库。如果您使用的是ubuntu linux,则可以尝试:

sudo apt-get install php-mysql
sudo service apache2 restart

第二个错误表示您的开发环境比生产环境具有最新的php。您可以根据自己的设置将生产服务器升级到风险更高的最新php,也可以将开发服务器降级。 一个快速的解决方法是,在生产服务器上删除composer.lock并再次运行composer,如果您没有需要php 7.3的库,它将很好地工作,否则必须升级php。

确保项目根目录中没有不需要的.env文件。

,

您可以尝试做些什么,所以您可以在脚本中添加git pull以首先获取新更改。然后,您应该尝试运行composer install来从get存储库安装新的依赖关系,这些依赖关系在composer update之后添加到composer.lock文件中。

使用Webpack时,必须运行yarn encore production来生成CSS和Javascript文件。如果无法在服务器端运行该文件,则可以在计算机上运行命令并上载生成的文件。我有一些项目无法在服务器上运行节点和纱线。

某些用户使用Jenkins进行部署,并在部署服务器上运行该脚本。

,

DoctrineBundle已过时,您可以将此行(23)删除到内核类(src / Kernel.php)中。

加里

本文链接:https://www.f2er.com/2932779.html

大家都在问