这两天大伟哥在Drupal中导入大量的中国省市县分类术语(大概5000多条)之后,在后台查看相应的分类术语表时遭遇了好久不见的白屏。
于是使用SSH连接阿里云ECS服务器,运行sudo tail /var/log/apache2/error.log查看日志,发现了这么一条:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/asdfghjk.com/core/lib/Drupal/Core/Render/Markup.php on line 22\n', referer: https://www.asdfghjk.com/admin/structure/taxonomy/manage/location
很明显是内存不够用了。这台阿里云ECS服务器的配置是1核CPU,1 GB内存,运行的是Ubuntu Server + Apache 2.4.38 + PHP 7.2.16 + MySQL 5.5.62 。这些配置都是使用apt命令从官方源直接安装的,默认最多可以使用128 MB内存(134217728 bytes)。
要加大PHP的运行内存限制,需要修改PHP的配置文件php.ini并重启PHP服务。
通过locate命令,在服务器上可以找到很多php.ini文件,但真正起作用的php.ini位于这个路径:
/etc/php/7.2/fpm/php.ini
使用编辑器打开文件,找到 “memory_limit = 128 M” 一行(大约在第406行),把相应的128M改成256M就可以了:
Memory_limit = 256M
然后运行 sudo service php7.2-fpm restart 重启PHP7.2服务就可以了。再进入Drupal的后台去查看相应的分类术语列表,就发现一切正常了,5500多条数据分了56页,全部显示正常。
提醒:各位在使用VPS服务器遇到问题搜索解决方法的时候,一定要搞清楚自己和别人在服务器操作系统以及相关应用服务的名称和版本存在的差异。我们要的是通过理解别人解决问题的思路,而找到适合自己的运行环境的方法,切不可生搬硬套直接复制粘贴别人贴出的命令。
- 415 阅读
添加新评论