Linux 6 下编译安装 PHP 5.6实例详解

2025-05-27 0 60

Linux 6 下编译安装 PHP 5.6实例详解

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

二、编译安装php-5.6.9

?

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Linux 6 下编译安装 PHP 5.6实例详解 https://www.kuaiidc.com/60601.html

相关文章

发表评论
暂无评论