LoginSignup
5
5

More than 5 years have passed since last update.

PHP5.2.4で動いているサーバーにcgi版PHP5.6.28をインストールした

Last updated at Posted at 2016-11-29

環境

OS: Turbolinux Appliance Server 3.0
PHP:5.2.4
MySQL:5.0.45
Apache:2.2.6

経緯

このOSが曲者で、サーバー管理を管理画面から行えるようBlueQuartzを搭載しているのだけど、このせいでPHPがアップデートできない…。
しかもユーザーが少ないので情報もほとんどない。
かといって実稼働してるし、ホスティング事業もやっているので色々冒険はできない。。。

以前サポートに『cgi版ならご自由にどうぞ!』って言われていて、今回試行錯誤して何とか動くようになったので備忘録など。

実際の流れ

せっかくだからPHP7入れたい!

結論から言えばmysql使えないので怖くて断念。
cgi版のインストールとか.htaccessで特定フォルダで利用できるところまではおk。
phpinfo();
して 7.0.13 ってのをみて(ノ・ω・)ノオオオォォォ-ってなったのも束の間。
既存のDBにつないでデータを読みだそうとしたらエラー。

いろいろ調べた結果
./configure --with-mysql
出来ないので断念。
もっと方法はあるのかもしれませんが、動いてるサイトたちに何かあったら大事なので(;´・ω・)

気を取り直して5.6.28だ!!

PHP5系ならmysqlは廃止されていないので行けるはず!
ってことでこちらは手順を詳細に。

まずはDL

DL先は/home/src/にします。

# cd  /home/src
# wget http://jp2.php.net/get/php-5.6.28.tar.gz/from/this/mirror
# tar zxvf php-5.6.28.tar.gz

cgi版でインストール

モジュール版でインストールするときにつける
↓コレを入れないのがポイント
–with-apxs2=/usr/local/apache2/bin/apxs

# cd php-5.6.28
# ./configure  --prefix=/home/src/php-5.6.28 \
--with-config-file-path=/home/src/php-5.6.28 \
--enable-cgi \
--enable-mbstring \
--enable-mysqlnd \
--enable-exif \
--enable-ftp \
--with-gd \
--with-mysqli \
--with-pdo-mysql \
--with-mysql \
--with-jpeg-dir=/home/include \
--with-png-dir=/home/include \
--without-pear \
--program-suffix=56

# make
# make test
# make install

--program-suffix=56 を付けることでインストールされるプログラムの末尾に数字が付きます。
複数のバージョンを使い分けるときには便利。

確認してみる

# cd bin
# ls -lha
lrwxrwxrwx  1 root root      9 Nov 29 17:24 phar -> phar.phar*
-rwxr-xr-x  1 root root    53K Nov 29 17:24 phar.phar*
-rwxr-xr-x  1 root root    29M Nov 29 17:24 php-cgi56*
-rwxr-xr-x  1 root root   2.6K Nov 29 17:24 php-config56*
-rwxr-xr-x  1 root root    29M Nov 29 17:24 php56*
-rwxr-xr-x  1 root root   4.5K Nov 29 17:24 phpize56*

56がくっついてインストールされています

cgiとして動くように設定

httpd.confを確認

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
     AllowOverride None
     Options FollowSymLinks
     Order allow,deny
     Allow from all
 </Directory>

シンボリックリンクの作成

Options FollowSymLinksの記述があればそのまま、なければ追加してシンボリックリンクを作成

# cd /var/www/cgi-bin
# ln -s /home/src/php-5.6.28/bin/php-cgi56 php56

PHP5.6.28で動かしたいディレクトリに.htaccessを設置

Action php56-script /cgi-bin/php56
AddHandler php56-script .php .html

phpinfo();

PHP7を入れようとしたときは
2016-11-29_18h55_27.png

ここにmysqlを表示させることができなかったのですが…
今回は無事にmysqlが!!

データを読み込んでみる

エラー:mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication

冒頭にこのエラーが出て、その下にはdatetimeセットしてよ!というアラート。
datetimeはさくっと解決して、google先生に質問です。

要するにパスワードの形が古いから繋げないよ?ということらしい。
PHP5.3でMySQL接続エラー(old_passwords=1)
こちらを参考にパスワードの再設定。
無事にデータを読み込めました。

5.2.4でできなかったことやって確認してみる

一番手っ取り早そうだったので

$color_set = [
           "black"  => "黒",
           "red"    => "赤",
           "blue"   => "青",
           "yellow" => "黄",
           "green"  => "緑",
           "gray"   => "灰"
         ];

var_dump($color_set);
/*
  ["color_set"]=>
  array(6) {
    ["black"]=>
    string(3) "黒"
    ["red"]=>
    string(3) "赤"
    ["blue"]=>
    string(3) "青"
    ["yellow"]=>
    string(3) "黄"
    ["green"]=>
    string(3) "緑"
    ["gray"]=>
    string(3) "灰"
  }
  */

( ´∀`)bグッ!

とりあえず最低限の動きは確保できたようです。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5