安装php7.2
首先先做准备工作:
1
2
3yum install -y libpng libpng-devel
yum install -y bzip2 bzip2-devel
yum install -y curl curl-devel
编译安装步骤在此:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19cd /root/
wget http://101.96.10.64/cn2.php.net/distributions/php-7.2.7.tar.gz
tar -zxvf php-7.2.7.tar.gz
cd php-7.2.7
sudo ./configure /
--prefix=/usr/local/php727 / #PHP7安装的根目录
--with-config-file-path=/usr/local/php727/etc / #PHP7的配置目录
--with-apxs2=/usr/bin/apxs #如果用的是nginx就不要这句话
--with-gd / #PHP gd模块
--with-bz2 / #包含BZip2支持
--with-zlib / #包含ZLIB支持
--with-curl / #包含cURL支持
--enable-mbstring / #启用多字节字符串支持
--enable-zip / #包含Zip读写支持
--enable-fpm / #启用PHP-FPM进程管理
--enable-mysqlnd / #Enable mysqlnd explicitly
--with-mysqli / #包含mysql支持
--with-pdo-mysql/ #包含mysql支持
make && make install
如果出现了configure error xml2-config not found. please check your libxml2 installation
错误,要执行如下两个:
1
2yum install libxml2
yum install libxml2-devel -y
重新去执行./configure
那步和make && make install
,整个编译完成之后,再把原带的php.ini
拷贝到源码安装的文件夹里:
1
cp /root/php-7.2.7/php.ini-development /usr/local/php727/lib/php.ini
设置环境变量,修改/etc/profile
文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码:
1
2
3PATH=$PATH:/usr/local/php/bin
export PATH
source /etc/profile
设置php-fpm
开机自动启动
1
2
3
4chmod +x /etc/init.d/php-fpm
chkconfig php-fpm on
cp /usr/local/php727/etc/php-fpm.conf.default /usr/local/php727/etc/php-fpm.conf
service php-fpm start
安装gcc 8.1.0
安装node.js需要先安装gcc,但是这个gcc不能用yum install gcc-c++
装,因为centos7的gcc版本太低(4.8.5)不满足,在node.js编译的时候会报错:WARNING: C++ compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=g++)
。所以要去https://ftp.gnu.org/gnu/gcc/ 下载一个高版本的,我选择了目前最牛逼的8.1.0
。
1
2
3
4wget https://ftp.gnu.org/gnu/gcc/gcc-8.1.0/gcc-8.1.0.tar.gz
tar -zxvf gcc-8.1.0.tar.gz
cd gcc-8.1.0
./contrib/download_prerequisites
此时进入漫长的等待,一会就会出现如下的字样,代表成功安装了!
此时进行编译安装:
1
2./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make && make install
又要进行漫长的等待…这一次非常非常漫长,我当时几乎用了大约2个小时…
然后使用gcc -v
检查一下版本:
安装node.js 8.11
先去https://nodejs.org/en/download/ 下载新的版本包:
直接下载到linux里解压缩,如下:
1
2
3
4
5wget https://ftp.gnu.org/gnu/gcc/gcc-8.1.0/gcc-8.1.0.tar.gz
tar zxvf node-v8.11.3.tar.gz
cd node-v8.11.3
./configure --prefix=/usr/local/node/8.11.3
make && make install
此时在make这一步可能会有这样的错误:
这个原因是“升级gcc时,生成的动态库没有替换老版本gcc动态库”,所以要将gcc最新版本的动态库替换系统中老版本的动态库。
使用find / -name "libstdc++.so*"
查找编译gcc时生成的最新动态库,发现最近的动态库是这个:
于是就进行替换并作一个软连接:
1
2
3
4
5
6cp /root/gcc-8.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25 /usr/lib64
cd /usr/lib64
ll libstdc++.so.6
lrwxrwxrwx 1 root root 19 Jul 17 09:59 libstdc++.so.6 -> libstdc++.so.6.0.19 #把原来的记住,防止有回滚的现象
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.25 libstdc++.so.6
然后重新返回到node-v8.11.3
文件夹里去make
就OK了!
设定环境变量,vim /etc/profile
,在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
一行的上面添加如下内容:
1
2
3#set for nodejs
export NODE_HOME=/usr/local/node/8.11.3
export PATH=$NODE_HOME/bin:$PATH
保存退出之后,source /etc/profile
,再node --version
看一下版本是v8.11.3
就是OK了!