PC設定覚書と雑記

 前回のメンテナンス作業は、サポート期限が切れていた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のコマンドを実行した時に、ディレクトリが作られる?

 

ここら辺のことは、試験的に実際にコマンドを動かしてみながら勉強した方が良さそうです。

それでも上手くはいかないでしょうから、その時点でメール質問しようと思っています。

 

※ MariaDBでデータベース作成は済ませておく。

 

①install ディレクトリ作成

 # mkdir -p /var/www/test

  

②GitHubからソースをクローン、安定版へ切り替え

 # cd /var/www/test

 # git clone https://github.com/opensource-workshop/connect-cms.git

 # cd /var/www/test/connect-cms

 # git checkout $(git describe --tags --abbrev=0)

 

③composerをインストールし、利用ライブラリをダウンロード

 # php -d allow_url_fopen=1 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

 # php -r "if (hash_file('SHA384', 'composer-setup.php') === 'ハッシュ値は、https://getcomposer.org/download/を参照') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

 # php -d allow_url_fopen=1 composer-setup.php

 # php -r "unlink('composer-setup.php');"

 

 # php -d allow_url_fopen=1 composer.phar install --no-dev

 

④apache conf設定

 DocumentRoot /var/www/test/connect-cms/public

 

 <Directory "/var/www/test/connect-cms/public">

     AllowOverride All

     Require all granted

 </Directory>

 

⑤.envファイル作成(Laravel)

 # cd /var/www/test/connect-cms/

 # cp .env.example .env

 

⑥.envファイル編集

 APP_NAME="Connect-CMS"

 APP_ENV=production

 APP_KEY=               ←適当な文字列を入力、ダブルクオートで囲まない

 APP_DEBUG=false

 APP_URL=https://xxx.mydns.jp/ (DNS設定、ssl設定は済ませておく)

 

 LOG_CHANNEL=daily

 

 DB_CONNECTION=mysql

 DB_HOST=127.0.0.1      localhostに変更

 DB_PORT=3306

 DB_DATABASE=          ←DB名

 DB_USERNAME=            ←DBユーザ名

 DB_PASSWORD=            ←Dパスワード名

 

⑦アプリケーションキーの初期化

 # php artisan key:generate

 **************************************

 *     Application In Production!     *

 **************************************

  Do you really wish to run this command? (yes/no) [no]:

  > yes        ← yes を入力

 

⑧DBマイグレーション

 # php artisan migrate

 **************************************

 *     Application In Production!     *

 **************************************

  Do you really wish to run this command? (yes/no) [no]:

  > yes        ← yes を入力

 

⑨seederで初期データインポート

 # php artisan db:seed

 **************************************

 *     Application In Production!     *

 **************************************

 Do you really wish to run this command? (yes/no) [no]:

  > yes        ← yes を入力

 

⑩ディレクトリパーミッション、他の設定

 # cd /var/www/test/connect-cms/

 

 # chown -R www-data:www-data storage

 # chown -R www-data:www-data bootstrap/cache

 # chown -R www-data:www-data vendor/tecnickcom/tcpdf/fonts

 # chown -R www-data:www-data public/themes/Users

 

 # chmod -R u+wr storage

 # chmod -R u+wr bootstrap/cache

 # chmod -R u+wr vendor/tecnickcom/tcpdf/fonts

 # chmod -R u+wr public/themes/Users

 

⑪完成サイト初期アカウント

 user:admin

 pwd :C-admin

 

 昨日、NetCommons3 の update 作業を行いましたが、

「NetCommons3 の配布は、2025年3月までで終了する」と発表されていることは以前書きました。

NetCommons3サイトは、

オープンソース・ワークショップ社の Connect-CMS サイトに移行出来そうなんです。

サーバーに Connect-CMS をインストールして、ここに現サイトの情報をインポートする流れです。

今、色々と情報を集めているところなんですが、

まずは自分の webサーバーに、試しに Connect-CMS をインストールしてみようと思っています。

 

git コマンドで github からソースをクローンし、

php ライブラリを composer でダウンロードしてくるように書かれていました。

これは自分には未経験の作業なので、不安と期待が入り混じった気分です!

3~4日くらいまとまった日にちが取れた時にやってみたいと思います!