環境
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();
ここに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グッ!
とりあえず最低限の動きは確保できたようです。