在CentOS7上源码安装php7–Install php7 from source on CentOS7

首先下载php源码包并解压:

1
2
3
wget http://cn2.php.net/get/php-7.0.9.tar.gz/from/this/mirror
tar -xvf php-7.0.9.tar.gz
cd php-7.0.9

然后开始./configrue

1
./configure --enable-fpm --with-mysql

这里我只包含了 PHP-FPM 和 MySQL 支持的简单配置, 可以通过运行 ./configure –help 命令来获得完整的可用选项清单

configure过程中可能会出现的问题:
1. configure: error: xml2-config not found. Please check your libxml2 installation.
解决办法:

1
2
3
rpm -qa|grep libxml2
libxml2-python-2.9.1-5.el7_1.2.x86_64
libxml2-2.9.1-5.el7_1.2.x86_64

没有libxml2-devel

1
yum install libxml2-devel

问题解决!

configure完成后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
+--------------------------------------------------------------------+
| License:                                   |
| This software is subject to the PHP License, available in this    |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.    |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                           |
+--------------------------------------------------------------------+
config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands

继续安装

1
make && make install

经过“漫长”的等待后,编译完成

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
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20151012/
Installing PHP CLI binary: /usr/local/bin/
Installing PHP CLI man page: /usr/local/php/man/man1/
Installing phpdbg binary: /usr/local/bin/
Installing phpdbg man page: /usr/local/php/man/man1/
Installing PHP CGI binary: /usr/local/bin/
Installing PHP CGI man page: /usr/local/php/man/man1/
Installing build environment: /usr/local/lib/php/build/
Installing header files: /usr/local/include/php/
Installing helper programs: /usr/local/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/lib/php/
[PEAR] Archive_Tar - installed: 1.4.0
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util - installed: 1.3.0
[PEAR] PEAR - installed: 1.10.1
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/lib/php to your php.ini include_path
/root/php-7.0.9/build/shtool install -c ext/phar/phar.phar /usr/local/bin
ln -s -f phar.phar /usr/local/bin/phar
Installing PDO headers: /usr/local/include/php/ext/pdo/

到这里,PHP已经安装成功了。

关于如何配置PHP,请参考PHP的官方文档。

Nginx+PHP: http://php.net/manual/zh/install.unix.nginx.php

Nginx和PHP配置完成之后,创建测试文件:

1
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php

访问http://localhost/index.php,如果可以将phpinfo打印到屏幕上,就证明 Nginx 和 PHP 配置正确。

Apache
如果出现不能解析 php 脚本的情况, 要检查一下 Apache 的配置文件有没有加载 php 扩展

1
LoadModule php7_module        /usr/lib/apache2/modules/libphp7.so