首先推荐一篇文章php 7 release date arrived: will developers adopt php 7? - php classes blog。
里面说到是否会去使用php7,就个人而言,我是毫不犹豫地使用的,但是生产环境就不是我说了算,所以只能自己在自己的开发环境里更新php的版本。那么,你呢?
笔者使用的是linux的opensuse42.1发行版,yast里面还没有php7的安装包,于是乎只能自己手动编译安装了。作为一个php开发者,我是非常希望能够学会编译安装php7的,之前试过几次,但是每次安装都要上网找各种资料,于是乎,这次安装成功后就想把自己的安装过程以及遇到的问题记录下来,方便以后查阅和分享给需要的人。
下载源码并解压
进入正题,要编译安装php7,首先当然要下载php7的源码。你可以到github上clone,也可以到php官网下载。下载后解压到 /usr/local/src 目录,并将目录重命名为php7。进入目录。
配置编译参数
生成配置文件
./buildconf
配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
./configure
--prefix=/usr/local/php7
-- exec -prefix=/usr/local/php7
--bindir=/usr/local/php7/bin
--sbindir=/usr/local/php7/sbin
--includedir=/usr/local/php7/ include
--libdir=/usr/local/php7/lib/php
--mandir=/usr/local/php7/php/man
--with-config-file-path=/usr/local/php7/etc
--with-mysql-sock=/ var /run/mysql/mysql.sock
--with-mcrypt=/usr/ include
--with-mhash
--with-openssl
--with-mysqli=shared,mysqlnd
--with-pdo-mysql=shared,mysqlnd
--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
--disable-cgi
--with-fpm-user=nginx
--with-fpm-group=nginx
--without-gdbm
--disable-fileinfo
|
参数说明
prefix php7安装的根目录
with-config-file-path php7的配置文件目录
执行完上面的配置命令后的结果如下图所示:
执行上面命令的过程中会遇到一些依赖缺少的提示,下面列出我遇到的依赖问题:
错误:
configure: error: xml2-config not found. please check your libxml2 installation.
解决:
zypper install libxml2-devel
错误:
configure: warning: unrecognized options: --with-mysql
解决:
取消这个选项,这个选项是不存在的
错误:
configure: error: jpeglib.h not found.
解决:
zypper install libjpeg-devel
错误:
configure: error: mcrypt.h not found. please reinstall libmcrypt.
解决:
zypper install libmcrypt-devel
错误:
checking for recode support... yes
configure: error: can not find recode.h anywhere under /usr /usr/local /usr /opt.
解决:
zypper install librecode-devel
总的来说,在配置的时候遇到没有的就打开yast搜一下,如果有的话就安装,然后重新编译看还需要那些,如果在yast找不到,那就上网找一下google。
编译和安装php7
make && make install
其中,make之后可以选择make test。只是一个可选步骤,不执行不知道有什么问题,不过笔者暂时还没遇到。
查看安装成功后的php7目录
编译安装成功后,查看php7的安装目录`ls /usr/local/php7`:
设置php7的配置文件
cp /usr/local/src/php7/php.ini-production /usr/local/php7/etc/php.ini
cp /usr/local/src/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
设置环境变量
在/etc/profile 文件的最后一行加上
export path=/usr/local/php7/bin:/usr/local/php7/sbin:$path
然后执行 source /etc/profile
设置php日志目录和php-fpm进程文件(php-fpm.sock)目录
mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -r nginx:nginx php-fpm
将php设置为开机启动
chmod +x /etc/init.d/php-fpm
chkconfig php-fpm on
可以用chkconfig命令查看开机启动服务列表。
启动php服务
service php-fpm start
通过ps aux | grep 'php'查看php是否启动成功
至此,php7就安装成功了,你也开始使用php7吧!
以上所述给大家介绍了在opensuse42.1下编译安装php7 的方法,希望大家喜欢。