Cloud Run 未捕获信号:升级 Laravel 9 后为 11
P粉739886290
P粉739886290 2023-08-31 09:23:32
0
1
445
<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粉739886290
P粉739886290

全部回复(1)
P粉434996845

我解决了我的问题。这与 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 配置的单元测试。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!