Linux 6 下编译安装 PHP 5.6实例详解
Linux6下编译安装PHP5.6实例详解
PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP以其开发源代码,免费,快捷,跨平台,高效,面向对象,强大的动态图像创建等功能深受广大开发者的喜爱。本文描述基于CentOS6.7下编译安装PHP5.6.9,同样也适用于CentOS7下安装。
一、相关依赖包安装
1、演示环境 #more/etc/redhat-release CentOSrelease6.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源 #wgethttp://www.atomicorp.com/installers/atomic #sh./atomic 使用yum命令安装 #yuminstallphp-mcryptlibmcryptlibmcrypt-develmhashmhash-devel 3、libevent相关包 可以根据需要安装libevent,系统一般会自带libevent,但版本有些低。因此可以升级安装如下两个rpm包。 #yuminstalllibeventlibevent-devel 说明: libevent是一个异步事件通知库文件,其API提供了在某文件描述上发生某事件时或其超时时执行回调函数的机制 它主要用来替换事件驱动的网络服务器上的eventloop机制。 目前来说,libevent支持/dev/poll、kqueue、select、poll、epoll及Solaris的eventports。 4、支持xml的相关包 支持xml的rpm包 bzip2是一个基于Burrows-Wheeler变换的无损压缩软件能够高效的完成文件数据的压缩 libcurl主要功能就是用不同的协议连接和沟通不同的服务器,也就是相当封装了的sockPHP libcurl允许你用不同的协议连接和沟通不同的服务器 #yuminstalllibxml2libxml2-develbzip2-devellibcurl-devel 5、图形相关的rpm包 通常对应的错误提示:JIS-mappedJapanesefontsupportinGD #yuminstalllibjpeg-devellibpng-develfreetype-devel
二、编译安装php-5.6.9
首先下载源码包至本地目录,下载位置http://mirrors.sohu.com/php/ #pwd /usr/local/src #tar-xfphp-5.6.9.tar.gz #cd.. #~ln-sv./src/php-5.6.9php~###说明:考虑编译后的简洁,此命令移除@20160729 #cdphp/ #./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&&makeinstall ###以下为安装完毕之后的提示信息 Installingsharedextensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ InstallingPHPCLIbinary:/usr/local/php/bin/ InstallingPHPCLImanpage:/usr/local/php/php/man/man1/ InstallingPHPFPMbinary:/usr/local/php/sbin/ InstallingPHPFPMconfig:/usr/local/php/etc/ InstallingPHPFPMmanpage:/usr/local/php/php/man/man8/ InstallingPHPFPMstatuspage:/usr/local/php/php/php/fpm/ InstallingPHPCGIbinary:/usr/local/php/bin/ InstallingPHPCGImanpage:/usr/local/php/php/man/man1/ Installingbuildenvironment:/usr/local/php/lib/php/build/ Installingheaderfiles:/usr/local/php/include/php/ Installinghelperprograms:/usr/local/php/bin/ program:phpize program:php-config Installingmanpages:/usr/local/php/php/man/man1/ page:phpize.1###Author:Leshami page:php-config.1###Blog:http://blog.csdn.net/leshami InstallingPEARenvironment:/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 WrotePEARsystemconfigfileat:/usr/local/php/etc/pear.conf Youmaywanttoadd:/usr/local/php/lib/phptoyourphp.iniinclude_path /usr/local/php/build/shtoolinstall-cext/phar/phar.phar/usr/local/php/bin ln-s-f/usr/local/php/bin/phar.phar/usr/local/php/bin/phar InstallingPDOheaders:/usr/local/php/include/php/ext/pdo/ ###php配置 php.ini是php运行核心配置文件 php-fpm.conf是php-fpm进程服务的配置文件 #cpphp.ini-production/usr/local/php/etc/php.ini #cp/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf #cpsapi/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-201620:03:52]NOTICE: configurationfile/usr/local/php/etc/php-fpm.conftestissuccessful #chkconfig--addphp-fpm #chkconfigphp-fpmon #servicephp-fpmstart Startingphp-fpmdone #ps-ef|grepphp root456901020:07?00:00:00php-fpm:masterprocess(/usr/local/php/etc/php-fpm.conf) nobody4569145690020:07?00:00:00php-fpm:poolwww nobody4569245690020:07?00:00:00php-fpm:poolwww root456943441020:07pts/400:00:00grepphp #netstat-nltp|grep9000 tcp00127.0.0.1:90000.0.0.0:*LISTEN45690/php-fpm
三、配置apache访问PHP
###开启以下模块 #vim/etc/httpd24/httpd.conf###注意此处,我这里是单独编译安装的httpd2.4版本,所以路径有所不同 LoadModuleproxy_modulemodeles/mod_proxy.so LoadModuleproxy_fcgi_modulemodules/mod_proxy_fcgi.so AddTypeapplication/x-httpd-php.php AddTypeapplication/x-httpd-php-source.phps ProxyRequestsOff###关闭正向代理,开启下行的反向代理 ProxyPassMatch^/(.*\.php)$fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1 #servicehttpd24restart Stoppinghttpd24:[OK] Startinghttpd24:[OK]
四、验证PHP
###编写一个php页面测试 #echo" > >Thisisaphptestpage.
>phpinfo(); >?> >">>/usr/local/apache/htdocs/index.php ###测试PHP #curl-Ihttp://localhost:90/index.php HTTP/1.1200OK Date:Fri,15Jul201603:16:50GMT Server:Apache/2.4.9(Unix) X-Powered-By:PHP/5.6.9 Content-Type:text/html;charset=UTF-8
五、对于本机未安装mysql数据库的情形(补充@20160718)
PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包。 mysqlnd从php5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖)。 从PHP5.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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!