在虚拟机上安装了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 之坑的更多相关文章

  1. linux python3.5.0安装并替代centos自带的python

    CentOS自带2.7.3版本的Python,旧版本无法及时支持新功能,所以要安装更高版本的Python3.5.0. 1.下载#wget https://www.python.org/ftp/pyth ...

  2. 华为CloudIDE免费公测,带你出坑带你飞

    你的代码仓库上线了吗?是不是有时候遇到这样的问题? 只想浏览一下代码,却发现线上浏览效果不佳,高亮显示什么的都没有.而在桌面端浏览要需要先同步代码,再用桌面端的IDE打开.尤其是使用git的时候,先要 ...

  3. 3-STM32带你入坑系列(自己封装点亮一个灯的库--Keil)

    2-STM32带你入坑系列(点亮一个灯--Keil) 首先建一个stm32f103x.h的文件,然后 #include "stm32f103x.h" 还记得上一节 现在呢就是做一个 ...

  4. 2-STM32带你入坑系列(点亮一个灯--Keil)

    1-STM32带你入坑系列(STM32介绍) 首先是安装软件 这一节用Kei来实现,需要安装MDK4.7这个软件,怎么安装,自己百度哈.都学习32的人了,不会连个软件都不会安装吧....还是那句话 没 ...

  5. 1-STM32带你入坑系列(STM32介绍)

    由于自己的物联网开发板上的单片机是用的STM32,但是有些朋友没有用过,所以我将用这块开发板,带着大家入门STM32 先介绍一下STM32,我是在大三下学期的时候开始接触STM32,当时是想做一个小车 ...

  6. 跳过 centos部署 webpy的各种坑

    用centos部署webpy发现的各种坑: 1.python 版本: 2.中文编码: 3.web模块路径: 在命令行里输入python,能import web,但是网站错误报告一直报告没有找到web模 ...

  7. 如何卸载CentOS自带的apache

    查看安装的组件: rpm -qa | grep httpd 如果预装有apache,那么会显示像httpd-2.2.3-22.el5.centos这种的组件名. 卸载组件: rpm -e httpd- ...

  8. 在centos使用redis几个坑

    问题来源 最近公司的平台需要做一些分布式的规划,其中会话我们打算用redis来存储,因为之前也有了解过redis,但都是在windows上使用,为了发挥redis的优势,这次我们打算直接在Linux上 ...

  9. 解决在linux下安装centos自带的mysql后,出现navicat远程连接失败的问题

    最近在学习关于数据库相关的东西,所以下午尝试在linux下自己搭建了myql,我的mysql是直接安装centos系统自带的,安装过程不再赘述 安装完成后,从linux后台登录也显示成功,但是就是从n ...

随机推荐

  1. MFC Edit控件的使用~~

    EditBox,一般用于显示数字文本,或者与用户沟通获取数字文本. 这里介绍一种将EditBox与一个变量关联起来的方法: 快捷键:Shift + Ctrl + X,进入类导向,选择成员变量属性页: ...

  2. Grid布局20行代码快速生成瀑布流

    网格布局 Grid 布局,好用又简单,至少比 Flex 要人性化一点,美中不足就是浏览器支持度差点. DOM结构 中间夹层为了后续拓展. CSS .grid { display: grid; grid ...

  3. 设计模式 笔记 工厂方法 Factory Methon

    //---------------------------15/04/09---------------------------- //factory method 工厂方法-------对象创建型模 ...

  4. Mac 上flink的安装与启动

    在Mac 上安装flink,需要通过Homebrew安装的 1.howmebrew的安装方式,在终端粘贴以下命令,或者去官网https://brew.sh/index_zh-cn 找到此代码复制粘贴到 ...

  5. 萌新程序媛的首个作品,基于NoSQL的内容管理及低码开发平台

    尽管入行有一段时间了,但之前还从来没想过要开发一款完整的软件产品.这个我跟朋友开发的第一款软件,希望大家帮我们多宣传推广.首个版本肯定有很多的不足,大家也给我们多提意见,还有很多规划中的功能要在之后的 ...

  6. C++学习 内存模型和名称空间

    1.单独编译 C++鼓励程序员将组件函数放在独立的文件中,如果只修改了一个文件,则可以只重新编译该文件,然后将它与其他文件的编译版本链接. 一般非常有用的组织程序的策略是把程序分成三部分: 头文件:包 ...

  7. SqlHelper DBHelper

    根据自己项目的开发需要,整理了一个SqlHelper类 相比较网上通用的SqlHelper类方法主要有一下几点的不同: 1.因为要操作多个数据库,所以数据库连接字符串没有写死到方法里,作为参数提供出来 ...

  8. mac 安装 tomcat 配置

    前面的话:记录下 Mac 安装配置 Tomcat 过程 1. 下载安装 Tomcat 下载 Tomcat 地址(官方地址):https://tomcat.apache.org/download-80. ...

  9. 《linux内核分析》第一周(2.22~2.28)

    潘恒   原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机是如何工作的? ...

  10. 《Linux内核》课本读书笔记 第一章、第二章