linux学习第三十七篇:安装PHP5,安装PHP7
时间:2022-04-26
本文章向大家介绍linux学习第三十七篇:安装PHP5,安装PHP7,主要内容包括安装PHP5、安装PHP7、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
安装PHP5
- PHP官网www.php.net
- 当前主流版本为5.6/7.1
- 进入放源码包的目录: cd /usr/local/src/
- 下载php的源码包: wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
- 解压压缩包: tar zxvf php-5.6.30.tar.gz
- 进入目录: cd php-5.6.30
- 安装php:
./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
--prefix:安装路径。
--with-apxs2:Apache的工具,指定工具的地址,可以帮我们自动配置一些模块。
--with-config-file-path:指定配置文件的路径。
--with-mysql:指定mysql路径。
- PS:在这里出现了一个错误,是因为我们还没安装libxml2这个库,安装包:yum install -y libxml2-devel
PS:这里也出现了一个错误,这是少了openssl库,安装包:yum install -y openssl-devel
PS:这里需要安装bzip2,安装包yum install -y bzip2-devel
PS:安装libjpeg包,安装包yum install -y libjpeg-turbo-devel
PS:安装libpng包,安装包yum install -y libpng-devel
PS:安装freetype包,安装包yum install -y freetype-devel
PS:安装libmcrypt包,安装包yum install -y libmcrypt-devel,如果你没有安装epel-release这个扩展源,就需要先安装这个扩展源,因为libmcrypt是在这个扩展源里面,安装扩展源:yum install -y epel-release
- 编译安装: make && make install PS:Apache和php结合的通过图中的libphp5.so模块
- 查看php加载的模块(都是静态的): /usr/local/php/bin/php -m
- 这个httpd的配置文件里就多了一行php模块,被注释掉的就是没有用的模块,随用随取: vim /usr/local/apache2.4/conf/httpd.conf
- 把php的参考配置文件复制到php的配置文件目录下: cp php.ini-production /usr/local/php/etc/php.ini
- 查看php的一些配置信息: /usr/local/php/bin/php -i | less
安装PHP7
- 进入放源码包的目录: cd /usr/local/src/
- 下载源码包: wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
- 解压压缩包 tar jxvf php-7.1.6.tar.bz2
- 进入目录: cd php-7.1.6
- 安装php:
./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/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
- 编译安装: make && make install
- php7模块: ls /usr/local/apache2.4/modules/libphp7.so
- 查看php7加载的模块(都是静态的): /usr/local/php7/bin/php -m
- 把php7的参考配置文件复制到php7的配置文件目录下: cp php.ini-production /usr/local/php7/etc/php.ini
- 可以在httpd配置文件中选择使用php5或者php7模块,不要的就注释掉: vim /usr/local/apache2.4/conf/httpd.conf
- PS:在编译安装PHP时,对于小内存,比如512MB内存的VPS来说,很有可能会出现问题,因为编译过程是一个内存消耗较大的动作。会出现如下所示的警告,所以需要停掉一些服务,让腾出更多的内存供PHP编译时使用: virtual memory exhausted: 无法分配内存 make: * [ext/fileinfo/libmagic/apprentice.lo] 错误 1
扩展: php中mysql,mysqli,mysqlnd,pdo到底是什么 http://blog.csdn.net/u013785951/article/details/60876816 查看编译参数 http://ask.apelearn.com/question/1295
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- ASP.NET的路由系统:路由映射
- ASP.NET Core的配置(3): 将配置绑定为对象[上篇]
- ASP.NET的路由系统:URL与物理文件的分离
- 使用Excel分析CloudStack使用记录
- 卷积神经网络初探索
- TensorFlow 深度学习笔记 逻辑回归 实践篇
- 黑客是如何实施暴力破解的?
- Python的初学者你现在可以自己“看”到代码的运行了!
- ASP.NET Core的配置(3): 将配置绑定为对象[下篇]
- TensorFlow 深度学习笔记 从线性分类器到深度神经网络
- 微信版12306来了!用12306微信小程序买票靠谱吗
- 无需写try/catch,也能正常处理异常
- “人工智能毁灭人类”是一种末世恐惧传染病
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何取SQL结果集的第一条记录
- postman的使用技巧
- Nodejs Serialport文档翻译
- Flask-Login文档翻译
- jsp作业——简单的试卷和自动打分
- ESP8266烧入nodemcu简易教程
- 搭建简易的物联网服务端和客户端-STM32(一)
- 搭建简易的物联网服务端和客户端-Nodejs_net(二)
- 搭建简易的物联网服务端和客户端-Nodejs_mysql(三)
- 搭建简易的物联网服务端和客户端-net+mysql(四)
- 搭建简易的物联网服务端和客户端-Nodejs_express服务(六)
- TF中Placement的最后一道防线——Placer
- 搭建简易的物联网服务端和客户端-ECharts数据显示(七)
- 搭建简易的物联网服务端和客户端-整合(八)
- 搭建简易的物联网服务端和客户端-Maibu显示(九)