PC設定覚書と雑記
NetCommons3サイトを Connect-CMS に移行させることが出来ました!
2つのサイトの移行が完了しています。
現サイトの移行は、来年春の予定です。
移行手順の概略は以下の通りです。
①新Connect-CMSサイトのバーチャルホスト設定ファイルを作っておく。
アクセスURLは、NetCommons3サイトと同一にしておく。
②NetCommons3サイトと同一サーバー内にConnect-CMSをインストールする。
③バーチャルホスト設定で、NetCommons3サイトをdisableに、Connect-CMSサイトをenableにする。
インストール後にサイトにアクセスして正常動作を確認しておく
④バーチャルホスト設定で、Connect-CMSサイトをdisableに、NetCommons3サイトはenableに戻す。
⑤Connect-CMSインストールディレクトリ ・・・/connect-cms 直下の.envファイルを編集
# migration option (Common)
MIGRATION_CONFIG_PATH=/var/www/○○○/connect-cms/app/Traits/Migration/sample/migration_config/migration_config_nc3.sample.ini
# migration option (NetCommons3)
NC3_EXPORT_UPLOADS_PATH=/var/www/△△△/app/Uploads/
NC3_APPLICATION_YML_PATH=/var/www/△△△/app/Config/application.yml
バーチャルホスト設定は、NetCommons3サイト、Connect-CMSサイト共にdisableに。
⑥Connect-CMSインストールディレクトリ ・・・/connect-cms 直下で、Exportコマンド、Importコマンドを実行させる
$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 all {redo}
$ php artisan command:ImportSite all {redo}
⑦バーチャルホスト設定でConnect-CMSサイトをenableにし、移行後の新サイトにアクセスし、正常動作を確認する!
昨夜は、PHPの openssl 関連のエラーを解消しようと四苦八苦していました。
openssl をソースコンパイルして再インストールしたりしましたが、エラーは解消されず・・・
サーバー環境から新しく作り直そうかとあきらめかけていたところ、Web上の新情報を見つけました。
どうも、openssl は enable になっているのに、必要のないところに openssl.so を読みに行こうとしているのがエラーの原因だったようなんです。
そこで、php.ini を編集して、「 -dextension=openssl 」を書き加えました。
これで、PHPの openssl のエラーは解消されました!
この後、connect-CMS のインストールと設定を無事完了させるところまで行けました。
今回は深夜2時までの作業で何とか寝れましたね!
さあ、いよいよキモのNetCommonsサイトの移行作業に取り掛かれます!
現在、3つの NetCommons サイトを動かしていますが、このうちの2つは早速移行させてしまおうと思います。
残りの1つ(このサイト)は、受験での化学資料の利用者が戸惑わないよう、来年の4月まで移行作業を延期しようと思っています。
前回のメンテナンス作業は、サポート期限が切れていたOS環境を新しくすることでした。
しかし、OSをいじり過ぎていてdist-upgrade コマンドは使えない状況になってしまっていました。
そこで、別サーバーに新OS環境を作っておき、そこへサイトを引っ越しさせる方法で作業しました。
サイト引っ越しの基本は、インストールディレクトリのコピーと、データベースmysqlのダンプとリストアです。
この方法で新環境に引っ越ししたサイトが現在動いています。
このあと、現新環境にConnect-CMSをインストールして、NetCommonsサイトをそこに移行させる手順だったんですが・・・
新環境でPHP拡張モジュールをインストールする時に色々といじり過ぎて、Connect-CMSのインストールが出来なくなってしまっていて、そこでつまづいて止まってしまっているんです・・・
今夜は、このトラブルを何とか解決出来ないかトライしてみます!
何日も費やし、たくさんの失敗を重ねて、どうすればいいのかがやっと見えてきました。
NetcommonsサイトをConnect-CMSに移行する時、同一サーバー内での作業になります。
Netcommonsの最終バージョンはPHP7.4までで動かさないといけません。
一方のConnect-CMSはPHP8以上で動かすようになってきていますが、まだPHP7.4でも動かせます。
そこで、OS内のデフォルトがPHP7.4で、OSがまだEOLを迎えていないものを選択することになりました。
すると、OSはDebian11に決まります。
この前、最初に行った作業は、Debian9の中で動かしていた複数のWebサイトを、Debian11環境の別サーバー機に移植したんです。
そして、さらに別のサーバー機で、コピーした現行サイトをConnectーCMSに移行テストしました。
これまで、作業内容を細かく記録してきましたが、特に最近は、数年経つと作業方法が大きく変わってしまうようになってきました。
なので、大筋について記録していこうと思っています。
昨夜から、またまた徹夜になりました!
今朝になって、移行テストに関する不具合をようやく見つけることが出来ました!
その1つは、mysql の database prefix が間違っていたことでした。
これを修正して、祈るような気持ちで、EXPORTコマンドを入力したら・・・
エラーなしで最後まで実行してくれました!!
IMPORTコマンドも同じく!
移行したサイトをざっとブラウジングしてみましたが、もうこれで充分です!!
移行できるCMSと移行システムを作って下さったメーカーの方々に、もう感謝しかありません!
本当に有難うございます!
この後は、このテストを元にして、本番の移行作業を行おうと思っています。
来年の春のNetcommons3サポート終了までには作業しなければなりません。
それまで、ハードウェアの準備を考えたいと思っています。
OCSPとは、
Online Certificate Status Protocolの略だと書いてある。
この「Let's EncryptがOCSPサポート停止」の記事は今日9月30日発表で、自分にはまだ内容が分かりません・・・
証明書の期限は90日間ですが、期限後の自動延長が出来なくなるってこと?
移行先の新サーバーは順調に動いているように見えます。
旧サーバーの、Let’s Encrypt で取得した「SSL/TLSサーバ証明書」ですが、
これも新サーバーに持ってこなければいけないと思い、調べてはありました。
でも、Webサイトがやっと動いたのを確認してホッとして気が抜けていたんだと思います。
今、サーバーマシンの置き場とは別の所に居るので、すぐに確認して手を加えることが出来ません・・・
証明書の期限が切れる前に作業しなければ!!
うっかりしていたんですが、myサーバーのOS、Debian9は6月にサポート終了となっていました!
大急ぎで新OSの環境を作って、そこに現アプリケーションを移行させなければなりません。
数日悩んだんですが、今後もスピーディーに確実に作業できる方法にしたいと考えていました。
そこで、まずは、旧サーバーからのデータの移動をLAN上でやることから始めました。
旧サーバーはギリギリまで止めたくないので、
旧サーバーが動いている状態で、まずは大部分のファイルをコピーしておくことにしました。
そして、変更や追加があったファイルだけを最終的にコピーする方法を選びました。
Rsyncコマンドを使ったんですが、この操作が上手くいくまでに2日費やしました。
こんな感じで、この後もハマりまくったんですが、
深夜3時、4時の日が続き、昨日は久々の徹夜になってしまいました。
ということで、続きは明日以降記録したいと思います。
.envファイル設定の
# migration option (Common)
MIGRATION_JOB_MONITOR=true
MIGRATION_JOB_LOG=true
MIGRATION_CONFIG_PATH=C:\connect-cms\_migration_config\migration_config_nc3.ini
中の、
PATH=C:\connect-cms\_migration_config\migration_config_nc3.ini
の記述で引っかかっていたんですが、
考えてみると、
webサイトはWAN上にあり、このサイトを動かしているwebサーバーに対するコマンド操作は、
SSHを使ったリモートアクセスによっていると思います。
このSSHコンソールは、手もとのクライアントにあり、
クライアントは一般的にはWindowsが多いと思われます。
また、移行準備の際に生成されるconfigファイル、サイト内のコンテンツ等の沢山のファイルも一時的な保管場所が必要になります。
この一時的な保管場所は、WAN上のサーバー内ではなく、手もとのクライアント内にしてある、ということではないでしょうか?
ということで、
export した際に、storage\app\migration\import 以下にデータが作成される。
という記述も確認出来ました。
このパスも、クライアントのWindows上だと思われます。
以上のことより、このNC3からConnect-CMSへの移行手順は、
クライアントのWindows上のSSHターミナル(Teraterm等の)で操作をする前提で書いてあるのではないか?
現時点ではこのように考えています。
ちょっと自信はないのですが・・・
現NC3サイトをConnect-CMSへ移行しなければなりませんが、移行の猶予はまだ1年あります。
Connect-CMSの試験installは何とか出来て、
また、Connect-CMSサイトのバックアップ、リストアの方法も教えていただきました!
そして、Netcommonsサイトの移行方法について勉強中です。
https://github.com/opensource-workshop/connect-cms/wiki/Migration-from-NC3
に記載の、
.envファイル
# migration option (Common)
MIGRATION_JOB_MONITOR=true
MIGRATION_JOB_LOG=true
MIGRATION_CONFIG_PATH=C:\connect-cms\_migration_config\migration_config_nc3.ini
# migration option (NetCommons3)
NC3_DB_CONNECTION=mysql
NC3_DB_HOST=127.0.0.1
NC3_DB_PORT=3306
NC3_DB_DATABASE=xxxxxx
NC3_DB_USERNAME=xxxxxx
NC3_DB_PASSWORD=xxxxxx
NC3_DB_PREFIX=nc3_
NC3_EXPORT_UPLOADS_PATH=/path_to_nc3/app/Uploads/
NC3_APPLICATION_YML_PATH=/path_to_nc3/app/Config/application.yml
上記のように、.env に移行元のNC2 情報を設定する。
とあるのですが、ここで引っかかっています。
# migration option (Common)
中の
MIGRATION_CONFIG_PATH=C:\connect-cms\_migration_config\migration_config_nc3.ini
ですが、
MIGRATION_CONFIG_PATH= 以下の書き方は、Windows上での書き方?
これらの操作を全てLinuxサーバー上で行うのであれば、例えば、
MIGRATION_CONFIG_PATH= /var/www/test/connect-cms/migration_config/migration_config_nc3.ini
でいいんでしょうか?
また、試験installしたconnect-cmsディレクトリ中には、migration_configディレクトリはありませんでした・・・
ということは、migrationのコマンドを実行した時に、ディレクトリが作られる?
ここら辺のことは、試験的に実際にコマンドを動かしてみながら勉強した方が良さそうです。
それでも上手くはいかないでしょうから、その時点でメール質問しようと思っています。