Ubuntu 16.04下安装PHP 7过程详解
linux  /  管理员 发布于 4年前   449
前言 最近由于换了硬盘重装了(升级)系统到Ubuntu16.04之后,开发环境也要重新安装,其实16.04源里面默认的PHP版本就是7.x,但是有个问题就是没有OCI扩展,有项目需要使用到Oracle数据库。 准备编译环境 由于全部编译太过于繁琐,而且很多依赖会有问题,所以我们选择另外一种方案,能使用apt-get安装都使用apt-get安装。不能使用apt-get才自己编译,这样可以节省大量的时间。因为有的依赖真的是很头疼。 由于在Ubuntu16.04上,默认的PHP版本就是7.x。由于我们要使用Apache2.4+PHP,所以安装如下模块即可直接解析PHP。 这样最基本的模块就安装好了,如果还需要其他的模块,可以通过apt-get快捷安装;比如还需要MySQL和mb_string相关的模块。 这样就会自动安装好相关的模块。 安装Oracle Client 由于要编译OCI扩展,我们需要Oracle客户端,这里我们下载Oracle Instant Client,选择 另外要编译OCI必须还需要 给出的网页最后面也有安装步骤,这里简述一下 下载PHP源码 首先我们要确定已经安装的PHP的版本,由于使用apt-get安装,版本可能不是PHP官网放的最新的版本,使用下面的 命令既可查看 发现我的安装的版本是7.0.4,那么我们对应的下载PHP-7.0.4版本的源码。 两种方式可以下载到源码。 官网下载源码很简单,打开php.net的Download页面,选择要下载的版本。或者从GitHub仓库clone指定版本(或者先clone再checkout想要的版本),如 编译OCI8/PDO_OCI 经过如上的步骤我们已经进入到下载的PHP源码根目录了,那么我们开始编译。 编译oci8 进入到扩展oci8的源码目录,使用phpize 执行完上面的步骤,应该会生成一个modules文件夹,里面就有我们想要的extension。 编译pdo_oci 步骤和编译oci8是一样的,但是configure参数不一样,所以还是写一下。 结果也和上面一样。 使用我们编译的扩展 首先我们要知道现行PHP的ext目录在哪里 我这里显示的是 然后我们还要在php.ini中添加相关配置项,首先也要知道php.ini的位置 打印出了如下信息 这样我们就知道了php.ini的位置,但是这个是CLI(命令行接口)的配置文件,我们需要使用Apache的(CGI)。我们到目录/etc/php/7.0/下发现还有一个名为apache2的目录,里面也有php.ini文件,那么我们编辑apache2目录下的php.ini 在里面加入 最后重启Apache 查看一下 Linux小技巧 在安装和查资料的过程中发现了一下很实用的命令,也把它们记录下来。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家的支持。sudo apt-get install php-dev libapache2-mod-php
sudo apt-get install php-mysql php-mbstring
Instant Client for Linux x86-64 basic
版本下载。instant client SDK
包,下载解压之后合并到Base。sudo unzip instantclient-basic-linux.x64-12.1.0.2.0.zipsudo unzip instantclient-sdk-linux.x64-12.1.0.2.0.zipsudo mv instantclient_12_1/ /opt/oracle/cd /opt/oracle/instantclient_12_1/# 建立符号链接sudo ln -s libclntsh.so.12.1 libclntsh.sosudo ln -s libocci.so.12.1 libocci.so# 打开 /etc/profile 在最后面加入export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_1:$LD_LIBRARY_PATHexport PATH=/opt/oracle/instantclient_12_1:$PATH# 最后source一下,使配置生效source /etc/profile
php -v
git clone -b PHP-7.0.4 https://github.com/php/php-src && cd php-src
cd ext/oci8phpize./configure --with-oci8=instantclient,/opt/oracle/instantclient_12_1sudo make
cd ../../ext/pdo_ociphpize# 最后面要指定版本号./configure --with-pdo-oci=instantclient,/opt/oracle/instantclient_12_1,12.1sudo make
php -i | grep "extension_dir"
extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012
,那么我们先把我们编译的扩展复制到/usr/lib/php/20151012
下# 先进入对应的modules目录下cp oci8.so /usr/lib/php/20151012cp pdo_oci.so /usr/lib/php/20151012
p -i | grep "Configuration File"
Configuration File (php.ini) Path => /etc/php/7.0/cliLoaded Configuration File => /etc/php/7.0/cli/php.ini
sudo vim php.ini
extension=oci8.soextension=pdo_oci.so
systemctl restart apache2.service
phpinfo()
发现OCI和PDO_OCI均已安装。到这里安装已经全部完成了。# 重启某个服务sudo systemctl restart apache2.service# 查看某个服务的状态sudo systemctl status apache2.service# 查看php相关的模块(其他的类似)apt-cache search php- | less# 具体查看某个模块的详细信息apt-cache show package_name
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号