Cloud Run 未捕获信号:升级 Laravel 9 后为 11
P粉739886290
P粉739886290 2023-08-31 09:23:32
[PHP讨论组]
<p>我使用 PHP8 将项目升级到 Laravel 9。但由于我部署在 Cloud Run 上,我在 Cloud Run 日志中随机出现以下错误:</p> <p><code>未捕获信号:11,pid=17,tid=17,fault_addr=4294967296017。</code></p> <p>因此查询因 503 错误而中止:<code>GET 503 898 octets 682 msChrome 109 https://...</code></p> <p>这是我的 php-custom.ini :</p> <pre class="brush:php;toolbar:false;">max_execution_time = 500 upload_max_filesize = 40M post_max_size = 40M memory_limit = 800M max_file_uploads = 100</pre> <p>还有我的 opcache.ini :</p> <pre class="brush:php;toolbar:false;">[opcache] opcache.enable=1 opcache.enable_cli=1 opcache.revalidate_freq=0 opcache.validate_timestamps=0 opcache.max_accelerated_files=32531 opcache.memory_consumption=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> <pre class="brush:php;toolbar:false;">FROM php:8.2.3-apache as base # Arguments defined in docker-compose.yml ARG user ARG uid WORKDIR /app # Install PHP dependencies RUN apt-get update &amp;&amp; apt-get install -y \ libpng-dev \ zlib1g-dev \ libxml2-dev \ libzip-dev \ libonig-dev \ zip \ unzip \ locales \ pdftk \ &amp;&amp; sed -i -e 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen \ &amp;&amp; locale-gen \ &amp;&amp; docker-php-ext-configure gd \ &amp;&amp; docker-php-ext-install -j$(nproc) gd \ &amp;&amp; docker-php-ext-install pdo_mysql \ &amp;&amp; docker-php-ext-install mysqli \ &amp;&amp; docker-php-ext-install zip \ &amp;&amp; docker-php-source delete \ &amp;&amp; docker-php-ext-configure intl \ &amp;&amp; docker-php-ext-install intl \ &amp;&amp; docker-php-ext-install opcache \ &amp;&amp; docker-php-ext-install bcmath # Env ENV LC_ALL fr_FR.UTF-8 ENV LANG fr_FR.UTF-8 ENV LANGUAGE fr_FR:en # Copy project, vhost.conf, config php and install composer COPY . . COPY docker/vhost.conf /etc/apache2/sites-available/000-default.conf COPY docker/custom.ini $PHP_INI_DIR/conf.d/custom.ini COPY --from=composer:latest /usr/bin/composer /usr/bin/composer RUN sed -i 's/80/${PORT}/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf # Add permissions RUN mkdir -p /app/vendor \ mkdir -p /app/storage/logs \ &amp;&amp; useradd -G www-data,root -u $uid -d /home/$user $user \ &amp;&amp; mkdir -p /home/$user/.composer \ &amp;&amp; chown -R $user:$user /home/$user \ &amp;&amp; chown -R $user:$user /app \ &amp;&amp; a2enmod rewrite \ &amp;&amp; chmod +x docker/startup-dev.sh \ &amp;&amp; chmod +x docker/startup-prod.sh EXPOSE 8080 FROM base as development RUN apt-get update &amp;&amp; apt-get install -y nano ENTRYPOINT [&quot;docker/startup-dev.sh&quot;] CMD [&quot;apache2-foreground&quot;] USER $user FROM base as production COPY docker/opcache.ini $PHP_INI_DIR/conf.d/opcache.ini RUN composer clearcache &amp;&amp; composer install --optimize-autoloader --no-dev ENTRYPOINT [&quot;docker/startup-prod.sh&quot;] CMD [&quot;apache2-foreground&quot;] USER $user</pre> <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 配置的单元测试。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号