首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xinlai
V2EX  ›  Linux

PHP 升级过程中遇到问题,各种 google 都没解决办法,求助

  •  
  •   xinlai · 2018-02-10 16:53:15 +08:00 · 3418 次点击
    这是一个创建于 717 天前的主题,其中的信息可能已经有所发展或是发生改变。

    php 从 5.1 升级 5.6.33 ,php 成功安装,phpversion 显示的 5.6,但是页面使用调用数据库时显示 Fatal error: Call to undefined function oci_connect(),有大神知道怎么搞吗...

    25 回复  |  直到 2018-02-20 13:12:48 +08:00
    mafeifan
        1
    mafeifan   2018-02-10 17:00:42 +08:00 via Android
    翻译成中文不是 php 不认识这个函数,扩展没开吧。这么简单的问题我都不知道说啥了。
    xinlai
        2
    xinlai   2018-02-10 17:06:43 +08:00
    @mafeifan 知道扩展没展开,按照找到的方法试了安装成功,然后重启 apache 问题还是出现,然后呢?
    chaegumi
        3
    chaegumi   2018-02-10 17:07:03 +08:00
    安装 oci8 扩展
    chaegumi
        4
    chaegumi   2018-02-10 17:07:21 +08:00
    php.ini 有加吗
    chaegumi
        5
    chaegumi   2018-02-10 17:08:18 +08:00
    php -m
    xinlai
        6
    xinlai   2018-02-10 17:16:50 +08:00
    function007
        7
    function007   2018-02-10 17:19:14 +08:00
    PHP Warning: PHP Startup: oci8: Unable to initialize module
    Module compiled with module API=20050922
    PHP compiled with module API=20131226
    These options need to match

    模块是不是太旧了。。
    xinlai
        8
    xinlai   2018-02-10 17:29:04 +08:00
    @function007 好像是,所以我需要先更新一下 module api 吗
    caola
        9
    caola   2018-02-10 17:34:25 +08:00
    既然更新了,为毛不上最新版本的 php7,
    php5 及以下版本,官方已经不再维护了
    xinlai
        10
    xinlai   2018-02-10 17:38:01 +08:00
    @caola 现有版本 5.1,昨天先试了 php7,问题很多,然后试了 php5.6,以为问题会少些...
    caola
        11
    caola   2018-02-10 17:59:49 +08:00
    连接数据建议使用 PDO,修改一些过时的函数和方法
    然后直接上 php latest 版本,再上标配的 https
    如果项目不大,并有时间的话,建议使用 laravel 框架重写一次
    widdy
        12
    widdy   2018-02-10 18:09:04 +08:00
    升级个鸡脖啊,有这世间干点啥不好!
    humpy
        13
    humpy   2018-02-10 18:10:39 +08:00   ♥ 1
    @function007 编译扩展时指定的 php 环境不对,估计你系统里 phpize 和 php-config 默认是指向 php51 版本

    进到扩展源码目录里,执行下面的命令:
    (把 php56 替换为你安装的 php56 的绝对路径,假如 php56=/usr/local/bin/php56,php56/bin/phpize=/usr/local/bin/php56/bin/phpize )

    php56/bin/phpize
    ./configure --with-php-config=php56/bin/php-config
    make
    sudo make install
    skyjerry
        14
    skyjerry   2018-02-10 21:48:06 +08:00 via iPhone
    为什么要选择升级呢
    likuku
        15
    likuku   2018-02-11 00:54:04 +08:00
    不如在完全新环境下开发一套新的,功能上完全兼容旧版的,测试 OK 后,再把旧的上的业务慢慢切到新版应用来。
    gouchaoer
        16
    gouchaoer   2018-02-11 06:03:00 +08:00 via Android
    @caola 人家原生 oci 怎么改 pdo 啊,这种老项目为了安全和提高一点性能升级到 5.6 没任何问题,升级到 7 成本太大了,HTTPS 好但是麻烦啊,升级个 php 版本都能改成 laravel,那 laravel 刷版本那么快你怎么不去升级啊
    gouchaoer
        17
    gouchaoer   2018-02-11 06:06:10 +08:00 via Android
    升级个蛋啊,5.1 就 5.1 理他干嘛,安全问题怕的话上 docker,性能提升那么一点你又不稀罕
    gouchaoer
        18
    gouchaoer   2018-02-11 06:08:50 +08:00 via Android
    人工编译 php 的都是勇者,php 的扩展安装都一个个把依赖下好编译? remi 源那么好不用
    xinlai
        19
    xinlai   2018-02-11 08:47:16 +08:00
    @gouchaoer 好像是 gd 存在安全隐患,所以要求升级新版 php
    msg7086
        20
    msg7086   2018-02-11 09:00:58 +08:00   ♥ 1
    gd 存在隐患又怎么样,如果你的系统一定要 5.1 才能跑,然后 5.1 没维护了,那就是没维护了,没辙。

    PHP 5.3 5.4 5.5 5.6 7.0 7.1 7.2,都是不同的版本,跨版本升级都可能会崩,不要想太多了。

    你要升级,也应该先从 5.3 5.4 开始试,一次升五六个版本是不是太激进了?

    关于 OCI8,我帮你去官网查了资料(为什么不自己查下呢?)
    http://php.net/manual/zh/oci8.requirements.php

    The OCI8 1.4 extension is included with PHP 5.3, PHP 5.4 and PHP 5.5.

    A newer OCI8 2.0 version is available only from » PECL.

    够清楚了吧,如果你的程序依赖 1.4,那就只能用 5.5,再高是不支持的。如果 2.x 能用,那就去 PECL 下扩展包来装。
    predator
        21
    predator   2018-02-11 09:12:10 +08:00
    这样的求助也 TMD 能扯到用 XXX 重写……麻痹这个世道真的没法活了
    msg7086
        22
    msg7086   2018-02-11 09:14:31 +08:00
    @predator 但是也没办法,没了维护那就是淘汰。
    银行电信里几十年的设备还在跑,都是花大钱雇人来运维,强行续命。
    普通企业的系统就只能淘汰,能小改升级还好,改不了真的就只能重写了。
    predator
        23
    predator   2018-02-11 09:24:20 +08:00
    @msg7086
    我只是看不惯某楼回复里面叫人用 XXXX 重写,这种逻辑的人还是不要做程序员害人的好
    你这样的解决思路是值得给个赞的
    xinlai
        24
    xinlai   2018-02-11 09:34:13 +08:00
    @msg7086 非常感谢,oci8 昨天经过一通操作也已经解决,现在安装之类的已经做完,已经在测试系统了
    lolizeppelin
        25
    lolizeppelin   2018-02-20 13:12:48 +08:00 via Android
    要编译 拿别人弄好的 src rpm 改好了再编译
    直接拿源码 make 只能呵呵
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1557 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 01:27 · PVG 09:27 · LAX 17:27 · JFK 20:27
    ♥ Do have faith in what you're doing.