2015-12-02 146 views
0

我有一个关于Symfony部署的问题。我正在挣扎大约2天...将Symfony项目部署到生产服务器的问题

我在做什么错了?

sudo rsync -avCz --no-o --no-g --no-p --del --dry-run . [ PATH (private) ] --exclude 'web' --exclude '.htaccess' --exclude 'cgi-bin/' 

后,我当我运行此命令的项目部署到正确的地方,而不--dry运行

运行此命令。到现在为止还挺好。 (之后,我可以手动将webfolder复制到public_html文件夹中?) 完成此操作后,我使用ssh登录到服务器并导航到我的应用所在的文件夹。那好我运行这个命令:

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 

我还检查如果app.php

链接当我访问网络链接我看到一个空白页。有人能帮帮我吗?

+4

尝试做一个'尾巴/无功/日志/的Apache2/error.log',然后发布日志复制到Pastbin –

+0

空白页,没有输出看起来像一个内部服务器错误。看看你回来(按F12在Firefox或新的IE或Chrome) – brandelizer

回答

1

假设您已正确配置vhost,空白页最有可能是内部服务器错误。我建议你检查此项目的apache2日志和symfony2日志(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 [email protected]: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