zoukankan      html  css  js  c++  java
  • [Ubuntu] ubuntu13.04 从php5.4降级到php5.3

    ubuntu12.10以后,默认的deb安装库上面的php版本已经是5.4了,公司的项目使用5.4的时候,还是会出现很多问题,所以不得不降级安装5.3

    顺便说一句,我原来的环境是nginx + php5.4 + mysql 的,现在只是把php5.4降级到php5.3,其它的不修复。

    新建一个叫做down_to_php53.sh,然后复制下面代码进去

    #!/bin/bash
    # 
    # Original for 5.3 by Ruben Barkow (rubo77) http://www.entikey.z11.de/
    # release 1 PHP5.4 to 5.3 by Emil Terziev ( foxy ) Bulgaria
    
    # Originally Posted by Bachstelze http://ubuntuforums.org/showthread.php?p=9080474#post9080474
    # OK, here's how to do the Apt magic to get PHP packages from the precise repositories:
    
    echo "Am I root?  "
    if [ "$(whoami &2>/dev/null)" != "root" ] && [ "$(id -un &2>/dev/null)" != "root" ] ; then
      echo "  NO!
    
    Error: You must be root to run this script.
    Enter
    sudo su
    "
      exit 1
    fi
    echo "  OK";
    
    
    #install aptitude before, if you don`t have it:
    apt-get update
    apt-get install aptitude
    # or if you prefer apt-get use:
    # alias aptitude='apt-get'
    
    # finish all apt-problems:
    aptitude update
    aptitude -f install
    #apt-get -f install
    
    
    # remove all your existing PHP packages. You can list them with dpkg -l| grep php
    PHPLIST=$(for i in $(dpkg -l | grep php|awk '{ print $2 }' ); do echo $i; done)
    echo these pachets will be removed: $PHPLIST 
    # you need not to purge, if you have upgraded from precise:
    aptitude remove $PHPLIST
    # on a fresh install, you need purge:
    # aptitude remove --purge $PHPLIST
    
    
    #Create a file each in /etc/apt/preferences.d like this (call it for example /etc/apt/preferences.d/php5_2);
    #
    #Package: php5
    #Pin: release a=precise
    #Pin-Priority: 991
    #
    #The big problem is that wildcards don't work, so you will need one such stanza for each PHP package you want to pull from precise:
    
    echo ''>/etc/apt/preferences.d/php5_3
    for i in $PHPLIST ; do echo "Package: $i
    Pin: release a=precise
    Pin-Priority: 991
    ">>/etc/apt/preferences.d/php5_3; done
    
    echo "# needed sources vor php5.3:
    deb http://bg.archive.ubuntu.com/ubuntu/ precise main restricted
    deb-src http://bg.archive.ubuntu.com/ubuntu/ precise main restricted
    
    deb http://bg.archive.ubuntu.com/ubuntu/ precise-updates main restricted
    deb-src http://bg.archive.ubuntu.com/ubuntu/ precise-updates main restricted
    
    deb http://bg.archive.ubuntu.com/ubuntu/ precise universe
    deb-src http://bg.archive.ubuntu.com/ubuntu/ precise universe
    deb http://bg.archive.ubuntu.com/ubuntu/ precise-updates universe
    deb-src http://bg.archive.ubuntu.com/ubuntu/ precise-updates universe
    
    deb http://bg.archive.ubuntu.com/ubuntu/ precise multiverse
    deb-src http://bg.archive.ubuntu.com/ubuntu/ precise multiverse
    deb http://bg.archive.ubuntu.com/ubuntu/ precise-updates multiverse
    deb-src http://bg.archive.ubuntu.com/ubuntu/ precise-updates multiverse
    deb-src http://bg.archive.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse
    
    deb http://security.ubuntu.com/ubuntu precise-security main restricted
    deb-src http://security.ubuntu.com/ubuntu precise-security main restricted
    deb http://security.ubuntu.com/ubuntu precise-security universe
    deb-src http://security.ubuntu.com/ubuntu precise-security universe
    deb http://security.ubuntu.com/ubuntu precise-security multiverse
    deb-src http://security.ubuntu.com/ubuntu precise-security multiverse
    
    deb-src http://archive.canonical.com/ubuntu natty partner
    
    deb http://extras.ubuntu.com/ubuntu precise main
    deb-src http://extras.ubuntu.com/ubuntu precise main
    
    deb http://bg.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
    deb-src http://bg.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
    
    
    deb http://archive.canonical.com/ubuntu precise partner
    deb-src http://archive.canonical.com/ubuntu precise partner
    
    " >> /etc/apt/sources.list.d/precise.list
    
    aptitude update
    
    #apache2ctl restart
    
    echo install new from precise:
    aptitude -t precise install $PHPLIST
    
    # at the end retry the modul libapache2-mod-php5 in case it didn't work the first time:
    #aptitude -t precise install libapache2-mod-php5
    
    #apache2ctl restart

    然后执行

    chmod +x down_to_php53.sh
    sudo ./down_to_php53.sh

    执行完之后,重启php5-fpm和ngnix

    sudo /etc/init.d/php5-fpm restart
    sudo /etc/init.d/nginx restart

    这时,访问 http://127.0.0.1/,会出现502错误,查看ngnix日志,有如下问题

    2013/08/05 20:17:10 [crit] 16107#0: *7 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /phpinfo.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "127.0.0.1"
    2013/08/05 20:17:10 [error] 16107#0: *7 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 127.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "127.0.0.1"

    这是因为原来在nginx,我是这样配置的

    location ~ .php$ {
            fastcgi_split_path_info ^(.+.php)(/.+)$;
    #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #       # With php5-cgi alone:
    #       fastcgi_pass 127.0.0.1:9000;
    #       # With php5-fpm:
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

    使用socket来连接,所以降级之后,还要修改一下新的配置文件

    vim /etc/php5/fpm/pool.d/www.conf

    找到

    listen = 127.0.0.1:9000

    加入

    listen = /var/run/php5-fpm.sock

    就可以了

    Have fun with Ubuntu!

  • 相关阅读:
    模拟行工程部署记录
    (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库
    (转)Linux下安装firefox最新版
    spring4.x源码下载网盘
    手工下发支付业务以及日志查看过程
    在java web中获取该项目的根路径
    在js代码中调用jsp的变量
    ibtais中把clob数据类型转换成string并展示到前台
    ibtais中把clob数据类型转换成string并插入到数据库中
    spring报错:Caused by: java.lang.IllegalStateException: Cannot convert value of type for property : no matching editors or conversion strategy found
  • 原文地址:https://www.cnblogs.com/davidhhuan/p/3239780.html
Copyright © 2011-2022 走看看