前回、ホスト側のディレクトリにコンテナのルートディレクトリをマウントして、
ホスト側のディレクトリにSOY CMSを突っ込んで動かしてみたけど、
エラーで動かなかった。
というわけで、
いろいろと頑張ってみた。
Fatal error: Uncaught Error: Call to undefined function mb_language() in /var/www/html/cms/common/config/php.config.php:5 Stack trace: #0 /var/www/html/cms/common/common.inc.php(13): include_once() #1 /var/www/html/cms/admin/index.php(2): include('/var/www/html/c...') #2 {main} thrown in /var/www/html/cms/common/config/php.config.php on line 5
これは前回表示されたエラー
これを回避するためにはmbstringが利用できなければいけないらしいので、
Dockerfileにmbstringのインストールを追加して再ビルド。
再度コンテナを作成して動かしてみたら、
新たな不具合が出てきたので、いろいろと修正した。
再度、開いてみたら、
いけた!
初期管理者を作成して、サイトまで作ってみたけど、
一応動く様だ。
更にいうと、処理は噂通りの爆速だ。
もう、PHP5系統に戻りたくない
このサイトもPHP7にしたい!
動かなかった点といえば、
ファイルマネージャとして利用しているelfinderが動かないことぐらいで、
ここはどうしようかなと…
とりあえず、今回行ったことをまとめると、
Dockerfileを開き、下記の様に修正。
#ubuntu 最新版 FROM php:apache RUN apt-get update RUN docker-php-ext-install mbstring #コンテナに入った後の編集が大変なので、emacsを入れておく RUN apt-get install -y emacs24-nox #エラーメッセージは表示できるようにしておきたい COPY php.ini /usr/local/etc/php/php.ini
Dockerfileと同階層にphp.iniを作成しておき、
error_log=/var/log/apache2/error.log error_reporting=E_ERROR | E_WARNING | E_PARSE display_errors=1 log_errors=0
エラーログあたりを表示できる様にしておく。
ここまでできたら、Dockerfileがあるディレクトリで
#コンテナイメージの再ビルド docker build -t phpapp . #phpappのイメージからコンテナを作成 ポートは8080 docker run -it -v /home/saito/workspace/docker/php7:/var/www/html -p 8080:80 phpapp
これで終わり。
あとは、http://localhost:8080/cms/adminを開き、
この表示を確認する。
今回、PHP7の表示用に修正したSOY CMSはGitHubに置きました。
https://github.com/inunosinsi/soycms
利用しやすい様にちょくちょく手を加えていく予定です。