NetCommons3のインストール

NetCommons3がリリースされて1年、Ver2からVer3 への移行ツールも間もなくリリースされます。

NetCommonsユーザーカンファレンス2017に参加し、いよいよNetCommons3をインストールして試してみる時が来たと思いました。(2017年9月10日記)

さくらインターネットとロリポップにインストールを試みたところ、さくらインターネットは成功しました。ロリポップは一見成功したように見えましたが、お知らせやブログへの画像の表示ができない問題が発生しました。これを自力で突破できる程の知識は無いので未解決状態でストップしています。

さくらインターネット・スタンダードへのインストール

このレンタルサーバではNetCommons2をインストールして使用しています。最終的にはVer2からVer3に移行させることを狙ってのことです。

ダウンロードしたNetCommons3.1.4のzipを指示通り解凍し、ルートディレクトリhome/xxxx/wwwではなくその下にnc3というディレクトリを作ってhome/xxxx/www/nc3にWinSCPを用いてアップロードしました。PHPは5.6(CGI版)、MySQLは5.5です。

URLのhttp://xxxx.sakura.ne.jp/nc3をブラウザで開くと、利用規約の文章が現れます。末尾の「次へ」をクリックするとチェック項目に2つの警告が現れました。

  • imagickが見つかりません。一部機能が使えません。
  • /home/xxxx/www/nc3/app/Console/cake に実行権限がありません。パーミッションを確認してください。

imagickについては、php.ini に extension = imagick.so を一行追加すると解決しました。

cakeの実行権限については、nc3/app/Console/にある cake の実行権限を644から755に変えると解決しました。

php.ini に max_input_vars = 20000 の追加が必要という2016/09/03の情報がありましたが、不要でした。

これは、app/webroot/ にある.htaccessに下記の指定がある(追加された?)ため、不要になったのでしょう。

<IfModule mod_php5.c>
php_value max_input_vars 21000
</IfModule>

サブドメインでアクセスする場合は下記3箇所の.htaccessに対し、RewriteBase / を追加する変更が必要という情報もありましたが、今回はサブドメインではないので不要でした。

/nc3
/nc3/app
/nc3/app/webroot

★追加情報:2018年6月にドメインxxxx.netのサブドメイン nc3s.xxxx.net を登録し、対応するディレクトリ nc3s への NetCommons3.1.9のインストールを試しましたが、http://nc3s.xxxx.net でアクセスでき、上記 .htaccess の変更は不要でした。

なお、インストールをこの先に進めるためにはデータベースのMySQLを先に用意することが必要でした。

ロリポップ・スタンダードへのインストール

このレンタルサーバには私自身のHP(WordPress使用)を置いています。これをNetCommonsに変更する意図はなく、NetCommons3のインストールはさくらと比較するためです。PHPは5.6、MySQLも5.6です。

実験用の独自ドメインxxxx.xyzを年100円程度で取得したので、ルートディレクトリの直下に/xxxxを作りそこにアップロードしました。ブラウザで http://xxxx.xyz を開くと、利用規約の文章が現れます。末尾の「次へ」をクリックすると設定のチェックのページが表示され、バージョンチェック(CLI)の部分で警告が出ました。

/home/users/1/yyyy/web/xxxx/app/Console/cake に実行権限がありません。パーミッションを確認してください。

さくらより、問題が少ないようにみえましたが、パーミッション以外に対策が2つ必要との情報を見つけました。

  • /xxxx/app/console/にあるcakeのパーミッションを644から755に変える。(さくらではこれだけで十分でしたが、ロリポップの場合はだめでした。)
  • cakeの40行目を
    exec php -q “$CONSOLE”/cake.php -working “$APP” “$@”

    exec /usr/local/php/5.6/bin/php -q “$CONSOLE”/cake.php -working “$APP” “$@”
  • /xxxx/app/Plugin/Install/Utility の InstallValidatorUtil.php を開き、そのdatabaseに関する部分116行目を
    ‘rule’ => array(‘custom’, ‘/^[\w]+$/’),
    ⇒ ‘rule’ => array(‘custom’, ‘/^[\w|\-]+$/’),

これで、チェックに引っかかること無く、インストールができました。

しかし、インストール後、お知らせやブログのプラグインを試用したところ、文字は書き込めますが画像を挿入することができない現象を生じました。画像ファイルを挿入するためにPCからファイルをアップロードし、表示させようとすると何も表示されません。PHPは5.6(CGI版)でも5.6(モジュール版)でも同じでした。

WinSCPで見ると /xxxx/app/webroot/files/upload_file/real_file_name/1/1 などに画像ファイルはアップロードされていました。 imagick がこのファイルを処理できないようです。ロリポップの場合 imagick のパスは /usr/bin/convert とのことで、このパスをどこかに追加すると解決するのかもしれませんが、今はここまでで作業を止めています。

追記:2018年5月にNetCommons3.18にアップデートしてみましたが、ロリポップでの状況は同じでした。またPHPを7.1(CGI版)に変えても同じでした。