将symfony项目部署到生产服务器的问题

时间:2015-12-02 15:40:13

标签: php symfony deployment ssh production-environment

我对Symfony部署有疑问。我已经挣扎了大约2天......

我做错了什么?

php app/console doctrine:schema:update --force   <-- to update my database
sudo php app/console assets:install ../public_html --symlink  <-- install assets
sudo php app/console assetic:dump --env=prod --no-debug --force <-- dump assets
php -d memory_limit=256M app/console cache:clear --env=prod --no-debug <-- clear cache

之后我运行此命令而不使用--dry-run

当我运行此命令时,项目将部署到正确的位置。到现在为止还挺好。 (之后我可以手动复制public_html文件夹中的web文件夹吗?) 完成后,我使用ssh登录服务器并导航到我的应用程序所在的文件夹。那么我运行这个命令:

minWidth

我还检查了app.php中的链接

当我访问网站时,我看到一个空白页面。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

假设您已正确配置vhost,空白页很可能是内部服务器错误。我建议你检查这个项目的apache2日志和symfony2 log(app / logs)以获取更多细节。

根据您提供的信息,您似乎有权限问题。您正在以sudo用户身份运行控制台命令,因此除非您自动为新创建的文件设置权限,否则所有生成的文件都将需要root访问权限。

尝试设置:sudo chown -R www-data:www-data project/

如果您为此环境配置了正确的数据库,请检查parameters.yml文件。

这是一个简单的shell部署脚本,我偶尔会在PHPCI(持续集成)不可用时使用它。它不会执行数据库更新,只需从git存储库复制项目并运行基本命令。我希望你会发现它很有用。

rm -rf /var/www/project.com
git clone --depth 1 git@bitbucket.org:sample/repo.git /var/www/project.com
cd /var/www/project.com
php /usr/local/bin/composer.phar install --optimize-autoloader --no-interaction
cp /home/user/deployment/parameters.yml /var/www/project.com/app/config/parameters.yml
cp -r /home/user/deployment/media /var/www/project.com/web/media
php /var/www/project.com/app/console cache:clear --env=prod --no-debug
php /var/www/project.com/app/console assetic:dump --env=prod --no-debug
sudo chmod -R 775 /var/www/project.com/app/cache
sudo chmod -R 775 /var/www/project.com/app/logs
sudo chown -R www-data:www-data /var/www/project.com