欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

CentOS编译安装php时遇到virtual memory exhausted: Cannot allocate memory

程序员文章站 2022-02-10 21:23:28
...

很多哥们在购买服务器的时候、前期都会买配置比较低的服务器以节省成本、内存往往会购买一个GB的服务器、那么这个时候在搭建PHP环境的时候可能会出现内存不够的情况、因为编译过程是一个内存消耗较大的动作


问题描述

由于我个人也从以前BAE迁往自己的云主机、近期就遇到一个这样的问题、在1GB内存centos操作系统中、在编译安装php时日志中有如下错误记录

virtual memory exhausted: Cannot allocate memory
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1


解决方案

开始时的解决方法是先将很多的进程关闭、比如httpd、ftpd、sendmail等等、释放出了一部分内存后、再进行编译、仍然得到同样的编译错误

后来百度谷歌了很久才找到解决问题的方法、而且是在php.net上找到的解决方法、原文链接是 https://bugs.php.net/bug.php?id=48809


根据上方中提到的方法将php安装配置文件中加了引号中的配置(不包括引号)“--disable-fileinfo” 后终于编译通过、这里分享出来供参考、希望一些朋友在遇到这个问题的时候不会只想到加内存、最后的命令如下(注意回车)


./configure --prefix=/usr/local/php705 --with-curl --with-freetype-dir --with-gd --with-gettext 
--with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl 
--with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc 
--with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization 
--enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl 
--enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip 
--disable-fileinfo
make && make install