我正在使用 Symfony 5.0.7我的实时部署 ansibleafter-symlink-shared.yaml文件:---- name: Set up infrastructure-related parameters template: src: '{{ playbook_dir }}/templates/.env_live.dist' dest: '{{ ansistrano_release_path.stdout }}/.env'- name: Install Composer dependencies composer: command: install arguments: --classmap-authoritative no_dev: no optimize_autoloader: yes working_dir: '{{ ansistrano_release_path.stdout }}'- name: Clear the cache command: 'php {{ release_console_path }} cache:clear --no-warmup --env=prod'- name: Warm up the cache command: 'php {{ release_console_path }} cache:warmup --env=prod'- name: Create DB if not exists command: 'php {{ release_console_path }} doctrine:database:create --if-not-exists --env=prod' register: create_db_output changed_when: create_db_output.stdout is not search('already exists. Skipped')- name: Run migrations command: 'php {{ release_console_path }} doctrine:migrations:migrate --no-interaction --env=prod' register: run_migrations_output changed_when: run_migrations_output.stdout is not search('No migrations to execute')- name: Install bundle assets command: 'php {{ release_console_path }} assets:install --symlink --env=prod {{ ansistrano_release_path.stdout }}/public'- name: Copy build directory command: 'cp -a {{ ansistrano_release_path.stdout }}/public/build /var/www/project/public' tags: - deploy部署工作完美,但是每次我部署到服务器时,我的生产环境都会遇到 500 错误。我查看了我的prod.log文件以了解导致错误的原因,并得到以下信息:这看起来像是一个权限问题,因为每次我部署时,都会出现这个错误。有没有可能我可以从 NGINX 的角度做一些事情来确保这个功能正常?或者这是一个可靠的解决方案?我试图避免在每次部署时手动修复这些错误。
1 回答
![?](http://img1.sycdn.imooc.com/545869390001b87802200220-100-100.jpg)
缥缈止盈
TA贡献2041条经验 获得超4个赞
发生问题可能是因为 ansible 在root
用户上运行,但 PHP 服务器没有
尝试在剧本中添加更改目录所有权的最后一步
- name: Fix user rights command: 'chown -R www-data: /var/www/project/public' tags: - deploy
在我的示例中,所有权授予用户www-data
(默认),但在您的情况下可能会有所不同。
对于检查正确的用户,使用命令
cd /var/www/project && ls -la
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消