搜尋

首頁  >  問答  >  主體

mysql版本和php版本升級問題

請問如何升級mysql版本和php版本

敬恭桑梓敬恭桑梓2338 天前1726

全部回覆(2)我來回復

  • 代码输入中...

    代码输入中...2018-08-02 21:55:26

    下載解壓縮

    去php官方下載頁面,隨便選擇一個你的伺服器所在國家的鏡像,滑鼠右鍵複製連結。

    $ wget http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror

    解壓縮下載到的壓縮套件

    $ tar xf php-7.0.0.tar.gz$cd php-7.0.0

    安裝前配置

    解決依賴套件

    yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel

    利用linux的make安裝方式,我們需要在make之前對軟體的編譯進行設定。這裡要留意,如果編譯之前沒有配置對應的選項,會導致不產生某些模組,後面可能會遇到問題。

    ./configure --prefix=/usr/local/php7 \--with-config-file-path=/usr/local/php7/etc \--with-config-file-scan-dir=/usr/local/php7/etc/php.d \--with-apxs2=/usr/local/apache/bin/apxs \--with-mcrypt=/usr/include \--enable-mysqlnd \--with-mysqli \--with-pdo-mysql \--with-gd \--with-iconv \--with-zlib \--enable-xml \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--enable-mbregex \--enable-mbstring \--enable-ftp \--enable-gd-native-ttf \--with-openssl \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-zip \--enable-soap \--without-pear \--with-gettext \--enable-session \--with-curl \--with-jpeg-dir \--with-freetype-dir \--enable-opcache

    上面的這段配置,藍色選項根據你的伺服器部署,修改成為你自己的實際路徑。

    編譯安裝

    原本在linux中,在configure之後,只需要make就可以進行編譯了,但是由於不同的環境,會出現不同的錯誤,例如我的伺服器上,出現了提示libiconv錯誤,我往上還看到libmcrypt錯誤。所以,在編譯的時候,我們可能需要根據編譯中出現的情況,安裝對應的一些模組或軟體環境。如果編譯錯誤後無法繼續編譯,可以使用make clean再來編譯。

    我再編譯的時候,出現了libiconv錯誤,同時,我們的伺服器是雙核的,所以,我用了下面的命令進行編譯:

    $ gmake -j2 ZEND_EXTRA_LIBS='-liconv'

    -j2表示用雙核cup去編譯,編譯速度更快。總之,編譯中出現了什麼錯誤,就到網路上去查怎麼解決。

    完成編譯之後,進行安裝即可。

    $ make install

    設定apache

    如果上面的編譯安裝正常,由於我們設定了apxs選項,所以在編譯的時候,make會對apache的apxs進行呼叫操作,結果就是在apache的安裝目錄下的modules目錄下產生libphp7.so,並在apache的設定檔httpd.conf中增加一行

    LoadModule php7_module        modules/libphp7.so

    一看就明白了,就是讓apache去載入一個新的libphp7.so模組。但我們還是要對httpd.conf進行修改,重新設定apache。找到LoadModule php,你會發現,竟然出現了兩行LoadModule,同時載入了php5和php7,如下:

    LoadModule php5_module        modules/libphp ##我們把第一行給註解掉,還要增加一個PHPIniDir的設定項,也就是修改為如下:

    #LoadModule php5_module        modules/libphp5.soLoadModule php7_module        modules/libphp7.soPHPIniDir   /usr/local/php7/etc

    重啟apache,現在可以寫一個phpinfo去試試看。

    php的設定檔

    在php預設安裝狀態下你可能發現  /usr/local/php7下沒有etc目錄,也就沒有php.ini檔。這是正常的,不過你可以自己創建php.ini,也可以從php源碼目錄中找到兩個php.ini-xxx文件,拷貝一個過去,改名為php.ini即可。

    cd ~/php-7.0.0mkdir /usr/local/php7/etccp php.ini-production /usr/local/php7/etc/php.ini

    如果你的伺服器上面還安裝了mysql,其實不用再做其他配置,我們在configure的時候,讓php7也支援mysql,如果你原本的lamp環境中已經可以正常連線mysql了,那現在php7其實也可以正常連接mysql,mysql不需要做任何設定修改。


    #

    回覆
    0
  • 敬恭桑梓

    謝謝

    敬恭桑梓 · 2018-08-02 22:04:40
  • 取消回覆