1.源码包下载地址(官方)
wget http://cn2.php.net/get/php-7.2.3.tar.gz/from/this/mirror
2.解压php压缩包
tar -zxvf mirror
3.进入压缩后的php文件
cd php7.2.3
4.安装php需要的扩展
yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel -y
5.开始进行配置
./configure --prefix=/usr/local/php7.2.3 --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo
6.编译安装
make && make install
7.编译时出现 virtual memory exhausted:Cannot allocate memory
一、问题
当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法。
二、解决方法
在执行free -m的是时候提示Cannot allocate memory:
(swap文件可以放在自己喜欢的位置如/var/swap)
[html] view plain copy
[root@Byrd byrd]# free -m
total used free shared buffers cached
Mem: 512 108 403 0 0 28
-/+ buffers/cache: 79 432
Swap: 0 0 0
[root@Byrd ~]# mkdir /opt/images/
[root@Byrd ~]# rm -rf /opt/images/swap
[root@Byrd ~]# dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 82.7509 s, 25.3 MB/s
[root@Byrd ~]# mkswap /opt/images/swap
mkswap: /opt/images/swap: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=59daeabb-d0c5-46b6-bf52-465e6b05eb0b
[root@hz mnt]# swapon /opt/images/swap
[root@hz mnt]# free -m
total used free shared buffers cached
Mem: 488 481 7 0 6 417
-/+ buffers/cache: 57 431
Swap: 999 0 999
内存太小,增加内存可以解决。
使用完毕后可以关掉swap:
[html] view plain copy
[root@hz mnt]# swapoff swap
[root@hz mnt]# rm -f /opt/images/swap
swap文件也可以不删除,留着以后使用,关键是你的虚拟机硬盘够用。
8.清除编译缓存
make clean
9.重新编译安装
make && make install
10.启动php-fpm
cd /usr/local/php7.2.3/sbin
./php-fpm
解决方法:进入到 /usr/local/php7.2.3/etc 下 php-fpm.conf.default 重命名为 php-fpm.conf
mv php-fpm.conf.default php-fpm.conf
解决方法:进入到 /usr/local/php7.2.3/etc/php-fpm.d下的 www.conf.default 重命名为 www.conf ,然后启动php-fpm
mv www.conf.default www.conf
/usr/local/php7.2.3/sbin/php-fpm
11.导入php.ini文件
把原来位于源代码里面的php.ini-development拷贝到/usr/local/php7.2.3/lib/php.ini
cp php.ini-development /usr/local/php7.2.3/lib/php.ini
安装完毕! OK