亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AWS EB 上的 Symfony - 緩存清除后無法寫入緩存目錄

AWS EB 上的 Symfony - 緩存清除后無法寫入緩存目錄

PHP
GCT1015 2022-10-28 15:28:58
我正在將 Symfony 4.4 應用程序部署到 AWS ElasticBeanstalk 并注意到每次部署后都沒有清除緩存。該應用程序運行良好,但陳舊的緩存異常。為了解決緩存問題,我添加了以下文件:/.ebextensions/deploy.configcontainer_commands:     01-clear-cache:         command: php bin/console cache:clear --no-warmup --env=prod這似乎清除了緩存,但后來它以某種方式更改了權限,以便我在嘗試訪問應用程序時收到錯誤。致命錯誤:未捕獲的 RuntimeException:無法寫入緩存目錄 (/var/app/current/var/cache/prod)為什么運行cache:clear會更改權限,有沒有辦法避免這種情況發生,或者至少如何在之后解決,即在同一個/另一個.ebextensions文件中?
查看完整描述

2 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

這些命令由root用戶運行,如docs中所述。

指定的命令以 root 用戶身份運行,并按名稱按字母順序處理。容器命令從暫存目錄運行,您的源代碼在部署到應用程序服務器之前被提取出來。當源部署到其最終位置時,您使用容器命令對暫存目錄中的源代碼所做的任何更改都將包含在內。

(強調我的)。

重新創建緩存時,新目錄由 擁有root,如果需要,您的 PHP 進程無法在那里寫入。

執行您的命令,使其使用與 PHP 運行時相同的用戶運行。例如,如果它在www-data用戶下運行:

container_commands:
    01-clear-cache:
        command: sudo -u webapp php bin/console cache:clear --no-warmup --env=prod


查看完整回答
反對 回復 2022-10-28
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

使用 Ansible 時,您實際上可以將become: true其用作成為 root 用戶并become_user: xxx成為所需用戶的機制。


例子:


---

# roles/app/tasks/main.yml

- name: Run composer install

  become: true

  become_user: ubuntu

  composer:

    command: install

    working_dir: "{{ deploy_path }}"

請注意,您必須定義一個名為deploy_path.


查看完整回答
反對 回復 2022-10-28
  • 2 回答
  • 0 關注
  • 119 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號