首頁  >  問答  >  主體

Cloud Run 未捕獲訊號:升級 Laravel 9 後為 11

<p>我使用 PHP8 將專案升級到 Laravel 9。但由於我部署在 Cloud Run 上,我在 Cloud Run 日誌中隨機出現以下錯誤:</p> <p><code>未捕獲訊號:11,pid=17,tid=17,fault_addr=4294967296017。</代碼></p> <p>查詢因503錯誤而中止:<code>GET 503 898 octets 682 msChrome 109 https://...</code></p> <p>這是我的 php-custom.ini :</p>
max_execution_time = 500
upload_max_filesize = 40M
post_max_size = 40M
記憶體限制=800M
max_file_uploads = 100</pre>
<p>還有我的opcache.ini:</p>
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=32531
opcache.記憶體消耗=256
opcache.max_wasted_percentage=10
opcache.interned_strings_buffer=64
opcache.fast_shutdown=1
opcache.jit_buffer_size=100M
opcache.jit=1235</pre>
<p>還有我的 dockerfile:</p>
FROM php:8.2.3-apache 作為基礎

# docker-compose.yml 中定義的參數
ARG用戶
ARG液體

工作目錄/應用程式

# 安裝 PHP 依賴項
運行 apt-get update && apt-get install -y \
        libpng-dev \
        zlib1g-dev \
        libxml2-dev \
        libzip-dev \
        libonig-dev \
        壓縮 \
        解壓縮\
        語言環境 \
        pdftk\
    && sed -i -e 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen \
    &&語言環境生成 \
    && docker-php-ext-配置 gd \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-安裝 pdo_mysql \
    && docker-php-ext-安裝 mysqli \
    && docker-php-ext-install zip \
    && docker-php-source 刪除 \
    && docker-php-ext-configure intl \
    && docker-php-ext-install intl \
    && docker-php-ext-安裝 opcache \
    && docker-php-ext-安裝 bcmath

# 環境
ENV LC_ALL fr_FR.UTF-8
ENV LANG fr_FR.UTF-8
ENV 語言 fr_FR:en

# 複製專案、vhost.conf、設定 php 並安裝 Composer
複製 。 。
複製 docker/vhost.conf /etc/apache2/sites-available/000-default.conf
複製 docker/custom.ini $PHP_INI_DIR/conf.d/custom.ini
複製 --from=composer:最新 /usr/bin/composer /usr/bin/composer

運行 sed -i 's/80/${PORT}/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf

# 新增權限
運行 mkdir -p /app/vendor \
    mkdir -p /應用程式/儲存/日誌 \
    && useradd -G www-data,root -u $uid -d /home/$user $user \
    && mkdir -p /home/$user/.composer \
    && chown -R $user:$user /home/$user \
    && chown -R $user:$user /app \
    && a2enmod 重寫 \
    && chmod x docker/startup-dev.sh \
    && chmod x docker/startup-prod.sh

曝光8080

FROM 基地作為發展
運行 apt-get update && apt-get安裝-y nano
ENTRYPOINT [“docker/startup-dev.sh”]
CMD [“apache2-前景”]
用戶$用戶

FROM 基地作為生產
複製 docker/opcache.ini $PHP_INI_DIR/conf.d/opcache.ini
RUN 作曲家清除快取 &&作曲家安裝 --optimize-autoloader --no-dev
ENTRYPOINT [“docker/startup-prod.sh”]
CMD [“apache2-前景”]
USER $使用者
<p>我不知道如何修復該錯誤,因為它非常隨機,但我注意到該錯誤是在 Cloud Run 冷啟動後出現的。我不知道問題是否是由我的 opcache 配置引起的。我的雲運行服務有1個CPU和2個GO記憶體。</p> <p>我不知道該如何解決這個問題。</p> <p><strong>編</strong></p> <p>當我收到錯誤時,我添加了 2 個圖表:</p>
P粉739886290P粉739886290436 天前483

全部回覆(1)我來回復

  • P粉434996845

    P粉4349968452023-09-01 00:37:45

    我解決了我的問題。這與 Cloud Run 無關。問題在於 JIT 配置。我改變了這個:

    opcache.jit=1235

    opcache.jit=1255

    根據此: https://php.watch/versions /8.0/JIT#jit-opcache-jit-values 我也嘗試了:

    tracing: An alias to the granular configuration 1254.
    function: An alias to the granular configuration 1205.

    如果你不想使用 1255,它也可以工作。但我使用了 1255 因為在此拉取請求 我看到了很多 1255 配置的單元測試。

    回覆
    0
  • 取消回覆