PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP以其开发源代码,免费,快捷,跨平台,高效,面向对象,强大的动态图像创建等功能深受广大开发者的喜爱。本文描述基于CentOS 6.7下编译安装PHP 5.6.9,同样也适用于CentOS 7下安装。
一、相关依赖包安装
?
|
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 |
1、演示环境
# more /etc/redhat-release
CentOS release 6.7 (Final)
2、扩展支持(mcrypt、mhash扩展和libevent)
如果想让编译的php支持mcrypt、mhash扩展和libevent,需要安装以下包
libmcrypt
libmcrypt-devel
mhash
mhash-devel
说明:
mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。
mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。
mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。
centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包
可以使用第三方源,这样还可以使用yum来安装
安装第三方yum源
# wget http://www.atomicorp.com/installers/atomic
# sh ./atomic
使用yum命令安装
# yum install php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel
3、libevent相关包
可以根据需要安装libevent,系统一般会自带libevent,但版本有些低。因此可以升级安装如下两个rpm包。
# yum install libevent libevent-devel
说明:
libevent是一个异步事件通知库文件,其API提供了在某文件描述上发生某事件时或其超时时执行回调函数的机制
它主要用来替换事件驱动的网络服务器上的event loop机制。
目前来说, libevent支持/dev/poll、kqueue、select、poll、epoll及Solaris的event ports。
4、支持xml的相关包
支持xml的rpm包
bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件能够高效的完成文件数据的压缩
libcurl主要功能就是用不同的协议连接和沟通不同的服务器,也就是相当封装了的sockPHP
libcurl允许你用不同的协议连接和沟通不同的服务器
# yum install libxml2 libxml2-devel bzip2-devel libcurl-devel
5、图形相关的rpm包
通常对应的错误提示:JIS-mapped Japanese font support in GD
# yum install libjpeg-devel libpng-devel freetype-devel |
?
|
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 |
首先下载源码包至本地目录,下载位置http://mirrors.sohu.com/php/
# pwd
/usr/local/src
# tar -xf php-5.6.9.tar.gz
# cd ..
# ~ln -sv ./src/php-5.6.9 php~ ###说明:考虑编译后的简洁,此命令移除@20160729
# cd php/
# ./configure \\ ###说明:编译的内容被调整@20160729
--prefix=/usr/local/php \\
--with-config-file-path=/usr/local/php/etc \\
--enable-inline-optimization \\
--disable-debug \\
--disable-rpath \\
--enable-shared \\
--enable-opcache \\
--enable-fpm \\
--with-mysql=/usr/local/mysql \\
--with-mysqli=/usr/local/mysql/bin/mysql_config \\
--with-pdo-mysql=/usr/local/mysql \\
--with-gettext \\
--enable-mbstring \\
--with-iconv \\
--with-mcrypt \\
--with-mhash \\
--with-openssl \\
--enable-bcmath \\
--enable-soap \\
--with-libxml-dir \\
--enable-pcntl \\
--enable-shmop \\
--enable-sysvmsg \\
--enable-sysvsem \\
--enable-sysvshm \\
--enable-sockets \\
--with-curl \\
--with-zlib \\
--enable-zip \\
--with-bz2 \\
--with-gd \\
--with-freetype-dir \\
--with-jpeg-dir \\
--with-png-dir
###有关编译配置项的详细描述:https://segmentfault.com/a/1190000002717262
# make && make install
###以下为安装完毕之后的提示信息
Installing shared extensions:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
Installing PHP CLI binary: /usr/local/php/bin/
Installing PHP CLI man page: /usr/local/php/php/man/man1/
Installing PHP FPM binary: /usr/local/php/sbin/
Installing PHP FPM config: /usr/local/php/etc/
Installing PHP FPM man page: /usr/local/php/php/man/man8/
Installing PHP FPM status page: /usr/local/php/php/php/fpm/
Installing PHP CGI binary: /usr/local/php/bin/
Installing PHP CGI man page: /usr/local/php/php/man/man1/
Installing build environment: /usr/local/php/lib/php/build/
Installing header files: /usr/local/php/include/php/
Installing helper programs: /usr/local/php/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/php/man/man1/
page: phpize.1 ### Author : Leshami
page: php-config.1 ### Blog : http://blog.csdn.net/leshami
Installing PEAR environment: /usr/local/php/lib/php/
[PEAR] Archive_Tar - installed: 1.3.12
[PEAR] Console_Getopt - installed: 1.3.1
[PEAR] Structures_Graph- installed: 1.0.4
[PEAR] XML_Util - installed: 1.2.3
[PEAR] PEAR - installed: 1.9.5
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/usr/local/php/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
Installing PDO headers: /usr/local/php/include/php/ext/pdo/
###php配置
php.ini是php运行核心配置文件
php-fpm.conf是php-fpm进程服务的配置文件
# cp php.ini-production /usr/local/php/etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
###fpm测试php配置
# /usr/local/php/sbin/php-fpm -t
[23-May-2016 20:03:52] NOTICE:
configuration file /usr/local/php/etc/php-fpm.conf test is successful
# chkconfig --add php-fpm
# chkconfig php-fpm on
# service php-fpm start
Starting php-fpm done
# ps -ef|grep php
root 45690 1 0 20:07 ? 00:00:00 php-fpm: master process(/usr/local/php/etc/php-fpm.conf)
nobody 45691 45690 0 20:07 ? 00:00:00 php-fpm: pool www
nobody 45692 45690 0 20:07 ? 00:00:00 php-fpm: pool www
root 45694 3441 0 20:07 pts/4 00:00:00 grep php
# netstat -nltp|grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 45690/php-fpm |
三、配置apache访问PHP
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
###开启以下模块
# vim /etc/httpd24/httpd.conf ###注意此处,我这里是单独编译安装的httpd2.4版本,所以路径有所不同
LoadModule proxy_module modeles/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off ###关闭正向代理,开启下行的反向代理
ProxyPassMatch ^/(.*\\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1
# service httpd24 restart
Stopping httpd24: [ OK ]
Starting httpd24: [ OK ] |
四、验证PHP
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
###编写一个php页面测试
# echo "
> <html>
> <h1>This is a php test page.</h1>
> <?php
> phpinfo();
> ?>
> </html>">>/usr/local/apache/htdocs/index.php
###测试PHP
# curl -I http://localhost:90/index.php
HTTP/1.1 200 OK
Date: Fri, 15 Jul 2016 03:16:50 GMT
Server: Apache/2.4.9 (Unix)
X-Powered-By: PHP/5.6.9
Content-Type: text/html; charset=UTF-8 |
五、对于本机未安装mysql数据库的情形(补充@20160718)
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13 |
PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包。
mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖)。
从PHP 5.4开始,对于未明确指定--with-mysql的情形,mysql本地驱动将会被安装。
可以参考如下配置:
./configure \\ ###修改@20160729
.......... \\ ###参数同上,仅仅是mysql相关参数值设置为mysqlnd
--with-mysql \\ ###相当于该参数值为mysqlnd
--with-mysqli \\ ###相当于该参数值为mysqlnd
--with-pdo-mysql \\ ###相当于该参数值为mysqlnd
有关mysqlnd可以参考:
http://php.net/manual/zh/mysqli.overview.php#mysqli.overview.mysqlnd |
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/leshami/article/details/51916175
相关文章
猜你喜欢
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-27 90
-
2025-06-05 62
-
2025-05-29 33
-
2025-05-25 81
-
2025-05-29 95
热门评论

