5月25日任务

课程内容:

11.10/11.11/11.12 安装PHP5
11.13 安装PHP7
php中mysql,mysqli,mysqlnd,pdo到底是什么http://blog.csdn.net/u013785951/article/details/60876816
查看编译参数 http://ask.apelearn.com/question/1295

11.10/11.11/11.12 安装PHP5

PHP官网www.php.net 当前主流版本为5.6/7.1

操作实例步骤如下:

①[root@jimmylinux-002 ~]# cd /usr/local/src/  进入到下载软件包目录

②[root@jimmylinux-002 src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz  下载软件包

③[root@jimmylinux-002 src]# tar zxf php-5.6.30.tar.gz  解压软件包

④[root@jimmylinux-002 src]# cd php-5.6.30  进入到PHP目录

⑤[root@jimmylinux-002 php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

编译PHP,prefix指定安装目录,--with-apxs2比较关键的,是Apache的一个工具,可以自动的把扩展模块放到Apache的modules目录下,并且在配置文件里加上一行load modules,自动的配置上,可以让httpd -M的时候把模块加载出来,正常情况下这个模块虽然能够把.so的文件编译出来,但是如果没有去改写配置文件的话,是没有办法加载出来的,这个工具就可以自动的帮你去配置,为什么要把PHP放到最后,原因就在这,首先要安装好Apache,然后在指定工具的地址,否则无法自动安装它的扩展模块,config-file-path=/usr/local/php/etc指定配置文件所在的路径。

--with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config  指相互关联的函数或驱动,老版本使用mysql,新版本使用mysqli。

编译过程中如果出现报错,可以根据提示排查,如下图。

通过ls /usr/local/ 可以看出目录名称是Apache2,并非Apache2.4 ↑↑↑ 修改正确的名称后再编译,如果出现如下报错,说明缺少库文件。

[root@jimmylinux-002 php-5.6.30]# yum list |grep xml2  通过模糊搜索来安装正确的库文件,一般都是安装-devel的库。

[root@jimmylinux-002 php-5.6.30]# yum install -y libxml2-devel  安装缺少的库

安装好之后再执行命令编译一次

[root@jimmylinux-002 php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

如果出现报错mcrypt,如果之前没有安装过这个epel-release扩展源,需要先安装epel-release,因为安装的mcrypt这个库就在epel-release扩展源里面的。

再执行编译,如果再次出现报错,继续安装缺少的库。

⑥[root@jimmylinux-002 php-5.6.30]# make  执行make命令

⑦[root@jimmylinux-002 php-5.6.30]# make install

[root@jimmylinux-002 php-5.6.30]# ls /usr/local/php/  查看PHP目录

核心文件在这个目录下面 ls /usr/local/php/bin

/usr/local/apache2/modules/libphp5.so  这个就是我们需要的那个扩展模块,也就是说PHP和Apache结合起来是通过这个.so文件实现的,如果这个时候把PHP目录删除也没有问题。

[root@jimmylinux-002 php-5.6.30]# /usr/local/php/bin/php -m  查看PHP加载的模块,这些模块都是静态的,当然也可以扩展安装其他模块。

[root@jimmylinux-002 php-5.6.30]# /usr/local/apache2/bin/httpd -M  查看Apache加载的模块

在LAMP的架构中,PHP作为Apache的模块存在的,如果Apache想要执行PHP的脚本,必须依赖php5_module,需要这个模块,需要.so的文件,如果把.so文件删除,那么Apache就不支持PHP了,作为一个论坛站点,时时刻刻都在和PHP和mysql打交道,所以说这个模块非常的重要。

[root@jimmylinux-002 php-5.6.30]# ls -l /usr/local/apache2/modules/libphp5.so  这个就是模块文件

[root@jimmylinux-002 php-5.6.30]# vim /usr/local/apache2/conf/httpd.conf  这个就是Apache的配置文件

自动增加了一行loadmodule,其他的都用#注释掉,都不会被加载,这叫随用随取,需要使用的就把#取消掉,如果不想要直接在前面加一个#就可以了。

⑧[root@jimmylinux-002 php-5.6.30]# cp php.ini-production  /usr/local/php/etc/php.ini  拷贝生产环境下的PHP配置文件到指定的目录

[root@jimmylinux-002 php-5.6.30]# /usr/local/php/bin/php -i |less  再去查看配置文件就已经有被加载了

11.13 安装PHP7

操作实例步骤如下:

①[root@jimmylinux-002 src]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2  下载PHP7软件包

②[root@jimmylinux-002 src]# tar jxfv php-7.1.6.tar.bz2  解压软件包

③[root@jimmylinux-002 src]# cd php-7.1.6  进入到php目录

④[root@jimmylinux-002 php-7.1.6]# ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php7/etc  --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif  (执行./configure)

⑤[root@jimmylinux-002 php-7.1.6]# make  执行make命令

⑥[root@jimmylinux-002 php-7.1.6]# make install

在一台机器上面也可以同时安装2个PHP版本,但是Apache调用PHP的时候需要指定好对应的版本。

⑦[root@jimmylinux-002 php-7.1.6]# ls /usr/local/apache2/modules/libphp7.so  查看libphp

[root@jimmylinux-002 php-7.1.6]# du -sh /usr/local/apache2/modules/libphp7.so  查看一下文件大小

[root@jimmylinux-002 php-7.1.6]# /usr/local/php7/bin/php -m  查看php7加载的模块,和php5模块基本一样的。

[root@jimmylinux-002 php-7.1.6]# /usr/local/apache2/bin/apachectl -M  查看Apache加载了几个php

[root@jimmylinux-002 php-7.1.6]# vim /usr/local/apache2/conf/httpd.conf  至于使用哪个,可以根据自己的需求去修改配置文件即可。

有2行,有一个php5,有一个php7,如果不想用5就加#注释掉,如果不想用7也同样加#注释掉就可以了。

安装PHP5和PHP7的更多相关文章

  1. 在Apache中安装php5.6 & php7.3

    1.下载 httpd-2.4.41-win64-VC15.zip.php5.6 +  vc11.  php7.3  + vc14-16 2.配置httpd,在 httpd.conf L180 添加如下 ...

  2. 记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程

    买 Mac Pro 的时候,系统为 OS X 10.11.5,编译 PHP-5.6.21 的时候,也遇到一些坑,安装过程记录如下: Mac Pro 编译安装 PHP 5.6.21 及 问题汇总 后来, ...

  3. [macOS] macOS下,VirtualBox安装CentOS7.4, 搭建nginx, mysql, PHP5.6&PHP7.1

    准备工作 网络设置 相关教程:http://www.jianshu.com/p/e6ba699b5992 ifcfg-enp0s3配置 TYPE=Ethernet BOOTPROTO=dhcp DEF ...

  4. PHP5和PHP7的安装、PHP和apache的整合!

    1.PHP5的安装: 下载: wget -c http://cn2.php.net/distributions/php-5.6.36.tar.gz  (php5) wget -c http://cn2 ...

  5. 安装PHP5 PHP7

    安装 PHP5 PHP官网www.php.net • 当前主流版本为5./7.1 • cd /usr/local/src/ • wget http://cn2.php.net/distribution ...

  6. yum安装php5.5,php5.6和php7.0

    本文主要介绍在CentOS系统下的php多个版本的安装使用 1.清理系统上的旧版本php 1)查询已安装的php软件 rpm -qa|grep php* yum list installed | gr ...

  7. Ubuntu14.04下使用PPA安装php5.6,php7

    1.为了使用ppa(Personal Package Archives) 选安装依赖: # apt-get install python-software-properties 2.添加不同版本php ...

  8. 安装最新版的wampserver,可以兼容php5和php7

    本文介绍的wamp是Windows+Apache+MySQL+PHP+phpMyAdmin,主要应用于开发环境[一键安装包,简单好用]. 这是运行在Windows系统下的官方安装包,可以快速的搭建属于 ...

  9. ubuntu16.04 卸载 php7并安装php5.6记录

    ubuntu16.04版本从默认源安装的php版本为7.x版本,我们都知道php7.0已经舍弃了很多旧版本的函数等内容,这对旧系统来说是致命的,那么,我们就有了安装旧版php的需求,而同一主机安装两个 ...

随机推荐

  1. generator和promise配合解决js异步地狱问题

    为何要使用generator函数和promise? js的异步地狱一直是困扰前端程序员的一个头疼的问题 比如说我要获取还有列表,一般来说会使用ajax来获取 $.ajax(...等等,function ...

  2. day 2 上午 消失之物 背包

    #include<iostream> using namespace std; long long n,m; ]; ]; ]; int main() { cin>>n>& ...

  3. 从BIO到Netty的演变

    从BIO到Netty的演变 前言 计算机网络可以说是每个学计算机的都绕不过去的一道坎.计算机网络到底有多么重要,你走到大学图书馆的计算机部分,翻开那些什么<从零开始:黑客XXX>,< ...

  4. CSP-S 46 题解

    改完题了,就稍写一下题解,顺便反思一下! 其实这次考试挺水的,然而我也挺水的,看了考试结束后的成绩,就吃-*了! T1 set 这个我考试的时候实在是没有想到如何去判断-1,然后我就觉得这神仙题没法解 ...

  5. MapReduce任务提交源码分析

    为了测试MapReduce提交的详细流程.需要在提交这一步打上断点: F7进入方法: 进入submit方法: 注意这个connect方法,它在连接谁呢?我们知道,Driver是作为客户端存在的,那么客 ...

  6. Go 基础学习笔记 (5)| 数据类型说明与使用

    在 Go 编程语言中,数据类型用于声明函数和变量. 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存. Go 语言按类别有以下几种 ...

  7. 如何处理消息队列消费过程中的重复消息&如何实现幂等性

    什么是幂等 幂等本来是数学上的概念,它的定义是这样的: 如果一个函数 f(x) 满足:f(f(x)) = f(x),则函数 f(x) 满足幂等性. 在计算机领域用来描述一个操作.方法或者服务.一个幂等 ...

  8. GPIO硬件资源的申请,内核空间和用户空间的数据交换,ioctl(.....),设备文件的自动创建

    1.通过GPIO库函数控制LED   open("/dev/myleds",...)       close(fd)   ----------------------------- ...

  9. element - ui tree

    一行代码两行泪,没有外网真可怕!好久没写博客了,更新一把. <template> <div> <el-tree :data="data" :props ...

  10. containerd 与安全沙箱的 Kubernetes 初体验

    作者 | 易立  阿里云资深技术专家 containerd 是一个开源的行业标准容器运行时,关注于简单.稳定和可移植,同时支持 Linux 和 Windows. 2016 年 12 月 14 日,Do ...