Centos6.6编译安装PHP7.0.13详解

1: Yum源更改为阿里的镜像源

#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

#wget -O /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos- 6.repo

#yum clean all

#yum makecache


2: 安装PHP所必要的依赖包

#yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y

#yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y

libiconv-devel 默认的yum源中没有需要编译安装

#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

#cd libiconv-1.14

#./configure --prefix=/usr/local/libiconv

#make && make install


3:安装mhash和mcrypt算法

一:下载相应的软件包

1:下载libmcrypt安装mcrypt需要此软件包

#wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

2:下载mhash

#wget https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

3:下载mcrypt

#wget https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

二、安装软件包

1、安装libmcrypt

cd /usr/local/src#进入软件包存放目录

tar zxvf libmcrypt-2.5.8.tar.gz#解压

cd libmcrypt-2.5.8#进入安装目录

./configure#配置

make#编译

make install#安装

2、安装mhash

cd /usr/local/src

tar zxvf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9

./configure

make

make install

3、安装mcrypt

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

ln -s /usr/local/bin/libmcrypt_config /usr/bin/libmcrypt_config#添加软连接

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH#添加环境变量


4:安装编译PHP7.0.13

#wget http://cn2.php.net/distributions/php-7.0.13.tar.gz

#cd PHP-7.0.13

#./configure --prefix=/application/PHP-7.0.13/ --with-MysqLi=MysqLnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --disable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-signals --enable-static --with-xsl --with-fpm-user=Nginx --with-fpm-group=Nginx --enable-ftp --with-pdo-MysqL=MysqLnd --with-MysqLi=MysqLnd

#make

#make install

到源码包目录把PHP的配置文件copy到PHP的安装目录

#cd /home/ntw1990/tools/PHP-7.0.13

#cp PHP.ini-production /application/PHP-7.0.13/etc/

将 PHP 的 bin 和 sbin 加入环境变量:

#echo "export PATH=$PATH:/application/PHP-7.0.13/bin:/application/PHP-7.0.13/sbin" >> /etc/profile

#source /etc/profile

#cd /application/PHP-7.0.13/etc/

#cp PHP-fpm.conf.default PHP-fpm.conf

#/application/PHP-7.0.13/sbin/PHP-fpm ( 启动PHP进程)

#ps -ef | grep PHP-fpm (检测下PHP-fpm进程)


5:测试PHP与Nginx和MysqL的通信正常与否

1:测试和Nginx的通信是否正常 (随意编辑一个虚拟主机,本人的如下配置)

# vim/application/Nginx/conf/extra/blog.conf

server{
listen80;
server_nameblog.niutianwen.org;
root/application/Nginx/html/blog;
indexindex.PHPindex.htmlindex.htm;
location/{
}
location~\.(PHP|PHP5)?${
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.PHP;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi.conf;
}
}


# 在测试虚拟主机的网站首页写一个PHP的测试脚本

#mkdir /application//Nginx/html/blog -p 创建网站根目录

# cd/application//Nginx/html/blog

# echo "<?PHP PHPinfo(); ?>" >test_info.PHP


打开firefox测试效果:

1:首先做好主机名和ip的对应

#vim /etc/hosts

本机IP地址 blog.niutianwen.org

2:在浏览器中打开http://blog.niutianwen.org/test_info.php

如出现以下界面表示PHP和Nginx的通信是正常的!

wKioL1gzDq3wwe_nAAF4ASpMWh4663.png-wh_50


2:测试和MysqL的通信是否正常

#cd/application//Nginx/html/blog

# vimMysqL_connect.PHP

<?PHP
$link=MysqLi_connect('127.0.0.1','root','niutianwen');
if(!$link){
echo"Error:UnabletoconnecttoMysqL.".PHP_EOL;
echo"Debuggingerrno:".MysqLi_connect_errno().PHP_EOL;
echo"Debuggingerror:".MysqLi_connect_error().PHP_EOL;
exit;
}
echo"Success:AproperconnectiontoMysqLwasmade!Themy_dbdatabaseisgreat.".PHP_EOL;
echo"Hostinformation:".MysqLi_get_host_info($link).PHP_EOL;
MysqLi_close($link);
?>


2:在浏览器中打开http://blog.niutianwen.org/mysql_connect.php

如出现下面红线标的那一行表示PHP连接MysqL是正常的!

wKioL1gzEqaBI15xAACfj1891nk046.png-wh_50


6:使用centos6.6系统默认的进程管理方式启动PHP-fpm

#vim /etc/init.d/PHP-fpm

#!/bin/sh
#CommentstosupportchkconfigonCentOS
#chkconfig:23456537
#
set-e

#PATH=/application/PHP-7.0.13/sbin:/application/PHP-7.0.13/bin
DESC="PHP-fpmdaemon"
NAME=PHP-fpm

#PHP-fpm命令的路径
DAEMON=/application/PHP-7.0.13/sbin/$NAME

#PHP-fpm的配置文件
CONfigFILE=/application/PHP-7.0.13/etc/PHP-fpm.conf

#PHP-fpm的pid文件
PIDFILE=/application/PHP-7.0.13/var/run/$NAME.pid

SCRIPTNAME=/etc/init.d/$NAME

#Gracefullyexitifthepackagehasbeenremoved.
test-x$DAEMON||exit0

function_start(){
[-f$PIDFILE]&&rm-rf$PIDFILE
$DAEMON-y$CONfigFILE-g$PIDFILE&&echo"PHP-fpmisstarted"
}

function_stop(){
netstat-tunlp|grep$NAME|grep-v-egrep-evim|awk-F'/''{print$1}'|awk'{print$NF}'|xargs-I{}kill-QUIT{}2>/dev/null
[$?-eq0]&&echo"PHP-fpmisstopped"
}

function_reload()
{
[`netstat-tunlp|grep9000|wc-l`-eq0]&&echo"$DESCisnotstartup!"&&exit0
PID=`ps-ef|grep$NAME|grep-v-egrep-evim|grepmaster|awk'{print$2}'`
echo$PID
kill-USR2$PID&&echo"PHP-fpmisreloaded!"
}

case"$1"in
start)
echo-n"Starting$DESC....----->>>>"
function_start

;;
stop)
echo-n"Stopping$DESC....---->>>>"
function_stop
;;
reload)
echo-n"Reloading$DESCconfiguration....---->>>>"
function_reload
echo"reloaded."
;;
restart)
echo-n"Restarting$DESC....---->>>>"
function_stop
sleep3
function_start
;;
*)
echo"Usage:$SCRIPTNAME{start|stop|restart|force-reload}">&2
exit3
;;
esac

至此。centos6.6编译安装PHP7.0.12就OK了!

Centos6.6编译安装PHP7.0详解的更多相关文章

  1. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  2. swift学习2 元组 tuples

    swift中出现了一种新的数据结构,非常牛掰的元组tuples如果懂PHP的猿,会发现这个元组和PHP的数组非常类似,同样是可以默认不指定key,也可以指定key目前的学习疑问是,如何进行元组的遍历?

  3. 尝试使用swift mailer,gmail smtp,php发送邮件

    这里是我的代码:在运行时出现此错误…

  4. 离子运行android似乎工作,但该应用程序没有在手机上启动,为什么?

    我的手机处于打开状态,处于调试模式,我已通过adbdevices-l确认了这一点.当我运行离子运行android时,我得到Ionic声称应用程序启动时的输出,但手机上没有任何反应.我使用Android4.4.4的Nexus5.androidapp中的index.html:解决方法键入离子信息并检查已安装的Cordova版本.如果你有v5.0.0现在需要一个新的插件,否则所有的http请求都被阻止.

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. jQuery的Cookie封装,与PHP交互的简单实现

    下面小编就为大家带来一篇jQuery的Cookie封装,与PHP交互的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  8. 如何在PHP环境中使用ProtoBuf数据格式

    这篇文章主要介绍了如何在PHP环境中使用ProtoBuf数据格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  9. PHP rsa加密解密算法原理解析

    这篇文章主要介绍了PHP rsa加密解密算法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  10. PHP cookie与session会话基本用法实例分析

    这篇文章主要介绍了PHP cookie与session会话基本用法,结合实例形式分析了PHP cookie与session会话基本存储、设置、删除等相关使用方式,需要的朋友可以参考下

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部