最近将自己的博客上传到阿里云服务器,结果在下载vendor包的时候,需要PHP的fileinfo的拓展,本想安装拓展是一件非常简单的事情,然而麻烦的事情还是有的,make 的时候总是编译通不过,想着或许是PHP(7.2)版本太高了,所以就把PHP重新编译安装了(PHP版本7.0.2),但是在make的时候,还是不能通过,网上看了大致的解决办法都是在编译的时候加上--disable-fileinfo,安装完之后在从PHP源码包里安装拓展,但无论如何,都是要通过编译,只要编译,就是通不过,这个办法可能会让我们暂时编译通过,把PHP安装上,但是我们最终还是要安装这个拓展的。
编译fileinfo拓展不能通过,不能通过,网上说是 系统内存的原因,我想应该是的吧,因为的我的linux系统内存是1G,去掉其他服务使用,最后只剩半个G,貌似要想安装这个拓展,系统剩余内存可能要1G以上,个人解决办法,
既然内存不足,有点坑 ,那就临时使用交换分区来解决吧,交换分区即将磁盘分区当做虚拟内存来使用,使用完之后,再把虚拟分区删除掉就好了
(1)指定PHP相关配置目录和拓展,进入已经解压好的源码包里,检查安装环境
- ./configure --prefix=/usr/local/php \
- --exec-prefix=/usr/local/php \
- --bindir=/usr/local/php/bin \
- --sbindir=/usr/local/php/sbin \
- --includedir=/usr/local/php/include \
- --libdir=/usr/local/php/lib/php \
- --mandir=/usr/local/php/php/man \
- --with-config-file-path=/usr/local/php/etc \
- --with-mysql-sock=/tmp/mysql.sock \
- --with-mysqli \
- --with-pdo-mysql \
- --with-mcrypt=/usr/include \
- --with-mhash \
- --with-openssl \
- --with-gd \
- --with-iconv \
- --with-zlib \
- --enable-zip \
- --enable-inline-optimization \
- --disable-debug \
- --disable-rpath \
- --enable-shared \
- --enable-xml \
- --enable-bcmath \
- --enable-shmop \
- --enable-sysvsem \
- --enable-mbregex \
- --enable-mbstring \
- --enable-ftp \
- --enable-gd-native-ttf \
- --enable-pcntl \
- --enable-sockets \
- --with-xmlrpc \
- --enable-soap \
- --without-pear \
- --with-gettext \
- --enable-session \
- --with-curl \
- --with-jpeg-dir \
- --with-freetype-dir \
- --enable-opcache \
- --enable-fpm \
- --without-gdbm \
- --enable-fileinfo
(2)创建 swap 交换分区
dd if=/dev/zero of=/swapfile bs=64M count=16
mkswap /swapfile
swapon /swapfile
make & make install
// 结束后关闭交换分区
swapoff /swapfile
// 删除交换分区 rm /swapfile
(3)编译完成后的其他操作