【OpenPNE】実鯖で動かそうとして思いっきり苦労した (2)

サクッと動いて簡単だったー というネタにしたかったのに、真逆の更に斜め上を行くという事態に。

 

【OpenPNE】実鯖で動かそうとして思いっきり苦労した (1)

移行はちょっと置いといて、3.6を真っ新な状態からセットアップしたらどうだろうか。

 

 

 

 

同じようにプラグインを入れるところで  Failed install  。(←ホントにこういう表示

なんでだー(暴

 

 

・・・・・・!!

 

 

突如 脳内に何か降臨。

 

 

・・・やっぱりPHPのバージョンじゃね?

調べてみるとPHP7では動かない情報がゴロゴロ出てくる。

 

っつーか、実質PHP5.2じゃないと綺麗に動かないってどういうことよ。

※綺麗に動かない=エラーやワーニングなしで動くって意味で。

 

OpenPNE3の開発タスクとしてチケットが切られているけど、何も進んでいないように見えるw

 

新安定版だったら対応してるっぽいけど、そもそも2.14から3.6に移行ができないので

そのバージョンまでたどり着かない。

 

答えに限りなく近いけど面倒で目を背けていた方法を採るしかない。

 

 

複数のPHPバージョンを共存させてみる

 

普通にyum install php~でインストールするのはモジュール版と呼ばれるもの。

もう1つ、CGI版というのがある。

レンタルサーバなんかでPHPのバージョンを選べるようにしてあるのはCGI版。

CGI版であればアプリごとに好きなPHPバージョンで動かすことができる。

動作が遅いというのがデメリットの1つだけど、多分気にならないはず。・・・だと良いな。

 

CGI版はここからダウンロードできる。

 

今動いているサーバとバージョンを揃えるために、ターミナルで繋いでバージョン確認。

 

さくらのPHPバージョン

5.2.17らしい。

 

らしい というか、今のレンタルサーバに引っ越ししたときに俺が設定したんだけどw

 

 

このバージョンを探してダウンロード。

サーバの適当な所に配置して解凍。

んで、コピー。俺は/usr/local/src/php-5.2.17に置いた。

 

5.2.17はエラーになるのでパッチを当てる必要がある。

ここから落としてサーバの適当な所に配置して解凍。

名前が長いので変更。mv libxml29_compat.patch php-5.2.17.patch

これまた適当な所に移動。やっぱり/usr/local/src/php-5.2.17.patchに置いた。

 

開発用のライブラリとかが入っていないので入れる。

俺はこの3つで済んだ。

  • mysql-devel
  • patch.x86_64
  • libxml2-devel

 

まずはパッチ当て

cd /usr/local/src/php-5.2.17

patch -p1 < ../php-5.2.17.patch

どのファイルか聞かれるので

  • ext/dom/node.c
  • ext/dom/documenttype.c
  • ext/simplexml/simplexml.c

を指定。

 

そしていざ、configuremakemake installだ!

こんな作業何年ぶりだ?w

./configure \
 --prefix=/usr/local/lib/php-5.2.17 \
 --with-config-file-path=/usr/local/lib/php-5.2.17/ini \
 --with-libdir=lib64 \
 --with-mysql \
 --with-pdo-mysql \
 --enable-mbstring \
 --program-suffix=52

configureやmakeなんかでエラーが出たら逐次直して再度実行する。

(無事に通過したとしても割と時間かかります)

 

 

続いてhttpdに設定追加&変更。

vi /etc/httpd/conf/httpd.conf

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

<Directory "/var/www/cgi-bin/">
 Options +FollowSymlinks +IncludesNoExec
 AllowOverride All
 Require all granted
</Directory>

を設定。

 

上記で設定したcgi-binにPHP 5.2.17のシンボリックリンクを張る。

ln -s /usr/local/lib/php-5.2.17/bin/php-cgi52 /var/www/cgi-bin/php52-cgi

 

 

実際に動かす資材のルート(例:/var/www/htmo/OpenPNE3.6/web)に .htaccess を設置する。

中身はこんな感じ。

Action php52 /cgi-bin/php52-cgi
<filesMatch "\.php$">
 SetHandler php52
</filesMatch>

 

これでPHP5.2.17で実行されるはず!

 

試しに

<?php
 var_dump( phpinfo() );
?>

だけが書かれたPHPファイルをルートに設置して、ブラウザで開こう。

 

色々な情報が記載されたページが表示されればOK(・∀・)

 

 

ここに到達するまで3日かかってる(ノ∀`)

 

 

で、終わった感が出ているけど、OpenPNEを動かしていないので

ようやくスタート地点に戻ってきた状態だったりする。

 

カテゴリー: PC, ソフトウェア, 技術的 タグ: , , , , ,  [パーマリンク]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です