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
推荐阅读