nginx - VPS 2GB RAM 内存和 Symfony 3 - 内存不足
问题描述
我正在尝试在 Debian 8 服务器上安装 symfony 3.4 项目。我使用 Nginx 作为网络服务器。
我的配置服务器:
- 内存 = 2 GB
- 内存 20 GB
作曲家安装工作正常(作曲家也更新)。我在同一台服务器上也有一个角前端。一切正常(npm install,ng build,..)。
但是当我请求我的 API 的任何路由时,我会收到代码 500 的错误。我什至无法获取探查器。
在 nginx 的日志文件中,我可以看到此错误消息日志消息,但我配置了 php memory_limit = -1。
我的 nginx 配置文件:
server {
listen 80;
server_name my_server_name;
root location/of/my/front;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
}
server {
server_name my_server_name_api;
root location/of/my/api/web;
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app_dev|config)\.php(/|$) {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}
你有什么主意吗 ?谢谢
解决方案
此错误可能是由于您的 PHP.ini 设置文件具有较低的内存限制,PHP 可以设置允许使用的内存限制,并且通常它不是动态设置的,这意味着它需要您将其更改为值你想使用的。
为此,请找到 php.ini 文件,并找到其中的行,memory_limit
然后将其更改为:
memory_limit = -1
这将允许 PHP 使用尽可能多的内存,这在某些情况下并不理想,并且通常您会发现大多数网站只需要大约 1gb 的内存即可运行,因此请尝试:
memory_limit = 1024
相反,如果您不打算使用它,您可以查看其他方法,例如在 Symfony 中禁用分析器,因为它是 Symfony 中最急切的组件。为此,将此代码段添加到您的代码中,它将在您想要禁用探查器的位置:
if ($this->container->has('profiler')){
$this->container->get('profiler')->disable();
}
或者如果你想禁用全局,你可以在配置中设置全局参数。
framework:
profiler:
collect: false
您还可以memory_limit
通过 PHP 设置变量,方法是放入ini_set('memory_limit', '-1');
您的主 .php 文件。
推荐阅读
- python - Discord.py rewrite 如何 DM 命令?
- excel-formula - 如何在不创建另一列的情况下对公式进行舍入?
- angular - 使用 Ngrx 触发效果时的无限循环
- python - Flask Python - int 不可调用
- c++ - 如何链接和包含 PhysX 4.0 扩展库?
- github - 有没有办法只允许分支创建者在 Github 中推送它?
- c - 如何在 C 中将整数与所需时间连接起来?
- javascript - 如何使用按钮将商品添加到页面底部的购物车?
- javascript - 什么是清理客户端表单输入的最佳方法,使用 RegExp 向谷歌 API 发出 Axios 请求
- maven - 如何安装具有包含字符串插值的 Kotlin 代码的 Maven 原型?