CentOs 自带 PHP 之坑
在虚拟机上安装了CentOs6.5在上面安装了lnmp开发集成包(php7.1),对于之前没有任何开发经验的我来说,正常且安详滴在集成环境上开发着优雅的小bug.
然而我今天在Composer拉取代码的时候,出现了问题:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/pdo/pdo_mysql.so' - /usr/local/php/lib/php/extensions/pdo/pdo_mysql.so: undefined symbol: pdo_parse_params in Unknown on line 0
Using version ^3.4 for sonata-project/admin-bundle
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages. Problem 1 The requested package doctrine/orm (installed at v2.4.8, required as ^2.5) is satisfiable by doctrine/orm[v2.4.8] but these conflict with your requirements or minimum-stability.
Problem 2 doctrine/orm v2.5.4 requires ext-pdo * -> the requested PHP extension pdo is missing from your system. doctrine/orm v2.5.3 requires ext-pdo * -> the requested PHP extension pdo is missing from your system. doctrine/orm v2.5.2 requires ext-pdo * -> the requested PHP extension pdo is missing from your system. doctrine/orm v2.5.1 requires ext-pdo * -> the requested PHP extension pdo is missing from your system. doctrine/orm v2.5.0 requires ext-pdo * -> the requested PHP extension pdo is missing from your system. Installation request for doctrine/orm ^2.5 -> satisfiable by doctrine/orm[v2.5.0, v2.5.1, v2.5.2, v2.5.3, v2.5.4]. To enable extensions, verify that they are enabled in those .ini files: /etc/php.ini /etc/php.d/curl.ini /etc/php.d/fileinfo.ini /etc/php.d/json.ini /etc/php.d/phar.ini /etc/php.d/zip.ini
You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.
这里的问题好像在告诉我,PHP 没有安装 PDO扩展,然而我 通过 phpinfo() 阅览了一下,PDO 是真实存在的,我很是懵逼。
(关于扩展的小提示:通常在windows 上开发,通过 WAMP下直接在php.ini中启用PDO就行(去掉;extension=php_pdo.dll前面的分号“;”),而linux上添加扩展 是以 .so 结尾的扩展名参考如下:https://blog.csdn.net/leedaning/article/details/46314521 通过上面的小提示,我发现我执行不了 phpize , 然后发现我并没有openssl 我差点去执行了 php 的 openssl 源码安装 相关扩展,我这样的行为是愚蠢的,因为扩展是有的,而我现在发现我竟然也没有openssl 这个C源码扩展。原因是我不是编译安装的而是通过集成安装的环境;若真的这么做了我可能会发现新的问题,也甚者会越走越远....)
于是 通过 php -m 我发现php的扩展并没有 pdo mysqli ..., 而我执行 /usr/local/php/bin/php -m 发现竟然有PDO MYSQLI 扩展,我很是懵逼!原来问题是这样的 CentOs 其实安装完成后 会自带了一个php5.3的版本,我一直没有发现。而我通过 Composer install 的时候其实走的是默认PHP版本,那默认PHP版本就是CentOs自带的 5.3的版本,我的天呐!!!
通过如下命令才真正的使用了PHP7.1的版本,果然没有任何问题!
/usr/local/php/bin/php composer install
删掉默认CentOs 自带PHP5.3版本
通过如下命令:匹配php,移除php
[root@localhost MerchantAdmin]# rpm -qa|grep php
php-mbstring-5.3.3-49.el6.x86_64
php-cli-5.3.3-49.el6.x86_64
php-devel-5.3.3-49.el6.x86_64
php-common-5.3.3-49.el6.x86_64
php-5.3.3-49.el6.x86_64
php-bcmath-5.3.3-49.el6.x86_64
[root@localhost MerchantAdmin]# yum uninstall php-common
Loaded plugins: fastestmirror, refresh-packagekit, security
No such command: uninstall. Please use /usr/bin/yum --help
[root@localhost MerchantAdmin]# yum remove php-common
删除完之后执行了 php -v
[root@localhost MerchantAdmin]# php -v
-bash: /usr/bin/php: No such file or director
由此可见 php 并没有全局使用的权限,继续修改添加全局目录
[root@localhost bin]# vim /etc/profile
添加如下后两句即可
#set for nodejs
export NODE_HOME=/usr/local/src/node-v8.9.4
export PATH=$NODE_HOME/bin:$PATH
export PHP_HOME=/usr/local/php
export PATH=$PATH:$PHP_HOME/bin
然后重启 profile
source /etc/profile
[root@localhost bin]# source /etc/profile
[root@localhost bin]#
[root@localhost bin]#
[root@localhost bin]# php -v
PHP 7.1.7 (cli) (built: Jan 23 2018 19:32:07) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
终于大功告成,坑太深!
CentOs 自带 PHP 之坑的更多相关文章
- linux python3.5.0安装并替代centos自带的python
CentOS自带2.7.3版本的Python,旧版本无法及时支持新功能,所以要安装更高版本的Python3.5.0. 1.下载#wget https://www.python.org/ftp/pyth ...
- 华为CloudIDE免费公测,带你出坑带你飞
你的代码仓库上线了吗?是不是有时候遇到这样的问题? 只想浏览一下代码,却发现线上浏览效果不佳,高亮显示什么的都没有.而在桌面端浏览要需要先同步代码,再用桌面端的IDE打开.尤其是使用git的时候,先要 ...
- 3-STM32带你入坑系列(自己封装点亮一个灯的库--Keil)
2-STM32带你入坑系列(点亮一个灯--Keil) 首先建一个stm32f103x.h的文件,然后 #include "stm32f103x.h" 还记得上一节 现在呢就是做一个 ...
- 2-STM32带你入坑系列(点亮一个灯--Keil)
1-STM32带你入坑系列(STM32介绍) 首先是安装软件 这一节用Kei来实现,需要安装MDK4.7这个软件,怎么安装,自己百度哈.都学习32的人了,不会连个软件都不会安装吧....还是那句话 没 ...
- 1-STM32带你入坑系列(STM32介绍)
由于自己的物联网开发板上的单片机是用的STM32,但是有些朋友没有用过,所以我将用这块开发板,带着大家入门STM32 先介绍一下STM32,我是在大三下学期的时候开始接触STM32,当时是想做一个小车 ...
- 跳过 centos部署 webpy的各种坑
用centos部署webpy发现的各种坑: 1.python 版本: 2.中文编码: 3.web模块路径: 在命令行里输入python,能import web,但是网站错误报告一直报告没有找到web模 ...
- 如何卸载CentOS自带的apache
查看安装的组件: rpm -qa | grep httpd 如果预装有apache,那么会显示像httpd-2.2.3-22.el5.centos这种的组件名. 卸载组件: rpm -e httpd- ...
- 在centos使用redis几个坑
问题来源 最近公司的平台需要做一些分布式的规划,其中会话我们打算用redis来存储,因为之前也有了解过redis,但都是在windows上使用,为了发挥redis的优势,这次我们打算直接在Linux上 ...
- 解决在linux下安装centos自带的mysql后,出现navicat远程连接失败的问题
最近在学习关于数据库相关的东西,所以下午尝试在linux下自己搭建了myql,我的mysql是直接安装centos系统自带的,安装过程不再赘述 安装完成后,从linux后台登录也显示成功,但是就是从n ...
随机推荐
- 【转】基于Ubuntu Server16.04 安装Odoo11
使用 非 root 用户 进行下面的测试: 本文使用 有sudo 权限的 odoo 用户进行测试()如果是 阿里云,可以先创建 odoo 用户 sudo adduser odoo 2:给root 权限 ...
- python 回溯法 子集树模板 系列 —— 8、图的遍历
问题 一个图: A --> B A --> C B --> C B --> D B --> E C --> A C --> D D --> C E -- ...
- [C#源代码]使用SCPI指令对通信端口(RS232/USB/GPIB/LAN)进行仪器编程
本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 本软件是基于NI-VISA/VISA32(Virtual Instrument Softwar ...
- vs2013 std::sort 分析
由于之前在debug模式下发现stl的sort简直慢到不能忍,所以自己写了一个sgi的sort,后来发现在release模式下,vs自带的sort快的不行,就研究了下. 这里有些和sgi-stl相通的 ...
- 最简单的iOS网络请求
做iOS开发,说到网络请求,大家可能都不约而同的提到AFN,可以说大家的网络请求都是用AFN封装而成,AFN的强大易用的确很好. 但是版本升级就会出现一些问题,所以就自己基于iOS原生封装了一个网络请 ...
- 巧用cheerio重构grunt-inline
grunt-inline是楼主之前写的一个插件,主要作用是把页面带了__inline标记的资源内嵌到html页面去.比如下面的这个script标签. <script src="main ...
- 阿里云CentOS 7.4 64位,jdk1.6、mysql5.7、tomcat6部署步骤(个人记录)
jdk1.6.mysql5.7.tomcat6部署步骤 一.安装jdk1.6 查看当前系统jdk的版本:java -version 方法一:利用yum源来安装jdk(此方法不需要配置环境变量) 查看y ...
- Ubuntu侧边任务栏自动隐藏
设置>>Dock>>{自动隐藏Dock}选项打开
- 红黑树插入与删除完整代码(dart语言实现)
之前分析了红黑树的删除,这里附上红黑树的完整版代码,包括查找.插入.删除等.删除后修复实现了两种算法,均比之前的更为简洁.一种是我自己的实现,代码非常简洁,行数更少:一种是Linux.Java等源码版 ...
- SCRUM 12.09 软件工程第二周计划
第二轮迭代的第二周开始了,上一周我们进行了对代码优化的探索与自我审查. 本周,我们有以下两点目标要实现: 1.对客户端进行优化. 2.网络爬虫爬取美团外卖. 客户端优化主要开发人员:高雅智.牛强.彭林 ...