Ubuntuの端末エディター(vi/vim)の使い方

Ubuntuの端末(vi/vim)を使いこなすと、ほ〜んと快適に作業がはかどる。そこで最低限知っておきたいコマンドを並べてみた。端末エディターは「管理者権限」でオープン、コマンドモードか挿入モードを注意しながら作業を進める。

 1.開始・終了

:vi又はvim ファイル名(xxxx.txt) 開始
  *例:vi /etc/apache2/xxxx.conf
:Esc+wq! 保存して終了
:Esc+q! 単に終了、困ったら時の操作、Esc+:q!
:sh  操作中に一時的にシェルに戻る。
    再び、操作に戻るにはexitと入力(コマンドモード)

 2. 文字入力

「i」 入力モードキー
「a」 カーソルの後ろに文字列を挿入「a (add)」
「o」 カーソルの下に新しい行を作成
 *「ESC」 テキストモードを終了してコマンドモードに戻る。

 3.削除・コピー・貼り付け

「x」 カーソル位置の文字を削除(「X」手前の文字)
「dd」 カーソルのある行を削除or切り取り
 *5行削除したい場合は、”5dd”と入力
「D」 カーソル位置から行末まで削除
「yy」 カーソルのある行をコピー
「p」 次の行に貼り付け

 4.アンドゥ操作(繰り返し/やり直し)

「Ctrl+f」 1画面下に移動する
「Ctrl+b」 1画面上に移動する
「Ctrl+d」 半画面下に移動する
 *各種コマンドは揃っているが、試してみて面倒!

端末でファイルの新規、修正、追加などで最低限覚えておきたいコマンド、なれが一番!!


UbuntuにXampp for Linuxをインストールしたけど大丈夫!だったかな?

XubuntuはUbuntuよりも快適なのでUbuntu用のWeb-Server(LAMP)をインストールする前に試験的に「Xampp for Linux」を試してから判断することにした。WindowsのVMWareで結果を出していたのでインストールから設定までなんのトラブルもなくXamppでも良いかな?と思いながらwrdpressもインストール。Windowsでは「OSBLOG.OSSHINET.COM」だったのを心機一転「WWW.OSSHINET.COM」に変更、面倒だったページ内も修正して公開できた。

1.Xampp for Linuxのダウンロード・インストール

2.ファイルの修正・訂正後の再起動

3.Xamppのパネルの起動

4.自動起動の登録

5.パーミッション(権限)の変更

6.セキュリティーの設定

7.Xamppのコマンド

8.ローカル用のSSLが準備されてる証明書とKeyのオン/オフ:

WordPressのインストールと設定は、Windowsで経験した段取りとほぼ同じだったので、難なく公開。。。まぁ、このまま公開しても良かったように思うけどXamppのセキュリティ面に不安があったのでwordpressとmariaDBのデータをバックアップしてXamppのディレクトリー「lampp」を完全削除した。

次はUbuntuのWeb-server、Postfix、ProFTPDのインストールと設定!!!大変だった〜素人には敷居が高いと実感した。


Xubuntuのインストール後すぐに行う作業(初期設定など)

Xubuntuのインストールが終えたら、サーバーを構築する前に、最低限の修正とかほしいバッケージを用意する。

1.上部のパネルに表示されてる時計の表示を変更
見づらいパネルの時計表示を「年/月/日(曜日) 時間(24H)」に変更、パネルの時計を右クリック → プロパティ → 時計のオプション → カスタム から、「%Y年%B%d日(%a)%H:%M」、オプションの上部空欄を「Asia/Tokyo」とする。

2.ユーザーディレクトリ名を英語名に変更
端末でenv LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-updateと入力して変更する。画面したの「Don’t ask me this again」にチェックして、「Update Names」を選択して終了。

3.最低限のパッケージをインストール

a) Synapticパッケージインストーラ
標準の「ソフトウェア」より軽量、ソフトウェアで探せないパッケージのため
端末の場合:sudo apt-get install synaptic

b) キャッシュやクッキーや履歴など、不要なファイルを削除してディスクスペースを確保するため標準の「ソフトウエア」からBleachBit のインストール
端末の場合:sudo apt-get install bleachbit

c) 秀丸エディタ、DiCEなどWindowsアプリが使うので「ソフトウエア」からWINEのインストール
端末の場合:

使い方:
wine プログラム名.拡張子 と入力してインストーラを実行
例]ダウンロードしたファイルが”hm879_x64_signed.exe”であれば、wine hm879_x64_signed.exeと入力して「Enter」キーを押す。これでWindows同様にプログラムを実行できる。

d) sambaとsystem-config-samba
Synapticパッケージインストーラからインストール
使い方:system-config-sambaをGUIで使えるように。。。

注)exitでsuの解除、忘れるとシステムに影響する。

e) iPhoneにRemote File Managerをインストール
iPhoneで撮った写真などをXubuntuのPicturesへ転送できるようになる。
・iPhone側の設定はPrivateIPとポート445を登録
・xubuntu側は指定したディレクトリの権限「書き込み」に変更

f) ubuntu-restricted-extrasをインストール
端末でFlashプラグイン他コーデック等をまとめてインストール
sudo apt-get install ubuntu-restricted-extras

その他必要に応じてパッケージをインストール、例えばBleachbit(デスククリーン)、clipit(クリップボード)、Dconf(レジストリー?)、ufw(ポート開閉)、等のパッケージ。標準で用意されてるものもあり、systemに支障が出ないようにインストールされてるか確認する。 次のステップは端末(vi)の必要最低限の操作コマンドについて記事にする予定。


急遽Windows10サーバからUbuntuのサーバへ移行

何が起きたのか今でも原因不明な出来事が起きた。ある朝、サイトを見るとナナナなんと「Cloudflare」のエラーメッセージが。。。
名前すら知らないところから何故?、HTTPS証明書を調べると全く見に覚えのないところからの証明書で「早く申請しろ!」とでも言わんばかりの状態になっていた。Letsencryptをチェックすると5月18日のはずが3月8日の期限になっているので、更新手続きをすると「申請も更新も不可!!!!!!!!」何なんだ〜。そんなこんなで無駄な日が過ぎて行くだけなので、Windows10サーバを閉めて、Ubuntuでサーバを構築することにした。

作業は簡単ではなかったが、取り合えずは何とか「http://www.osshinet.com」で公開、次のステップはメールサーバ、FTPサーバとまだまだ続くけどサイトからの情報が少ないので何時になるやら。


Logicoolのマウスとキーボードをxubuntuでも

予備のPCで使っていた無線のマウスとキーボードをサーバPCでも使えるようにSolaar(Linux用Unifying Reciever)をインストールして試す。あまり知識がないところでの使い方なので一つのUnifying Recieverを2つのPCへと使い回しをしてるうちにサーバPCでは使用できなくなったので急いでUnifying RecieverをAmazonで購入したがペアリングが出来ない。まさかWindowsでまず先にペアリングしてDeviceを入れてからサーバPCでベアリングするとは!気がつくのに相当な時間を要したが何とか2つのPCをこの無線のマウスとキーボードで使えるようになったので嬉しいね。

SolaarはXubuntuのソフトウエアの検索からインストールできる。次にUnifying RecieverをUSBに差し込んでペアリングする。


Windows10の自宅サーバをLinuxのXubuntuへ

騙し騙し使っていたPowerEdge SC440が壊れたので、替わりに中古のPCを購入、サイトは今までどおりWordpressをそっくり移行、メールサーバはPostfix&Dovecotを導入して細かい設定など面倒が多かったけど何とか公開きる感じになったので試みた。

実験的に公開したサイトを見るとまだまだ十分な設定やら修正ができてない部分が多く見受けられるので、本格的に公開するのはまだ先になりそう。


Let’s EncyptのACME APIがv1からv2へ移行とDNS認証

Letsencryptの証明書がACME v1からv2に移行することが決まっていて本来ならば2月末から正式発効の予定 だったけど遅れたようだ。今のところTEST期間中と言うことなので、ACME v2でLet’s Encryptのワイルドカード証明書の発行を試みた。

1.v1 APIのACMEアカウントは、v2 APIで動作するけどv2 APIでは使用できない。
2.v2 APIを使用する前にドメインを再認証する必要がある。
3.V2 APIでは、ワイルドカード証明書の発行がサポートされている。
4.ワイルドカード証明書は、DNS-01チャレンジによってのみ許可される。

Let’s Encryptの情報サイトからTEST用に「ACME.sh」と言うソフトをインストールして試した。ところが証明書発行過程でDNS認証の失敗!!原因が分からないので、MyDNS.jpへログインして追加したDNS認証のTXTレコードの登録を変更して試みたが。。。(: Non-existent domain」!?最後にはModeを変えてトライしろ!だって)

結局のところ認証要求の前にDNS TXTレコードが正しく加えられているか?「nslookup -q=txt hostname」でチェックしなかったのが原因だった。

1.TXTレコードに加える「_acme-challenge.osshinet.com」は、ただ単にサブドメインで登録して「TXT」で「value」に認証用「xxxxxxxxxxxxxxxxxxxxxx」をコピー。
2.CMD.exeを開いて「nslookup -q=txt _acme-challenge.osshinet.com」で結果を得る。「_acme-challenge.osshinet.com text = “xxxxxxxxxxxxxxxxxxxxxx”」

、結局「MyDNS.jp側かACME.sh側」にエラーの記録が残ってDNS認証が出来なかった感じだ。いずれにしても公式発表まで時間的にも余裕があるので、1週間程度あけて再度試すことにした。


Let’s Encrypt 証明書の更新方法をApacheのmod_mdに変更

Apache HTTP Server Project(httpd)が提供するACMEプロトコル(Let’s Encryptが使用してるプロトコル)によるTLS証明書の取得と管理のサポートを始めたと言った内容の“ACME Support in Apache HTTP Server Project” の記事が目に止まった。

とにかくwindows版にビルドした「mod_md-VC15.zip」 をApache Lounge (Author:Steffen) からダウンロードして展開、 binフォルダー の中身は apache/bin に、modulesフォルダー の中身は apache/modules にコピー。 curl.exeとパッチ済みのmod_ssl.so(apache用) だけが上書となる。作業開始前にReadme.txtを読んだところ設定は簡単で、前もって準備をすることもなくconfファイルを修正・追記してサーバーの再起動で終了する程度、なのでこれは試すしかない。

1)[httpd.conf]
LoadModuleのコメントアウトと追加

・LoadModule watchdog_module modules/mod_watchdog.so ➡ (#)外す
・LoadModule md_module modules/mod_md.so ➡ 追加

2)[httpd-ssl.conf]

1.<VirtualHost *:443>~</VirtualHost>の上部に追記
・MDCertificateAgreement https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
・ManagedDomain osblog.osshinet.com
・MDRenewWindow 80d
*詳しくはhttps://github.com/icing/mod_md/wiki と https://httpd.apache.org/docs/trunk/mod/mod_md.html を参照

2.「SSLCertificateFile(crt)」、「SSLCertificateKeyFile(key)」と「SSLCertificateChainFile」ディレクティブは必要なくなるので(#)を付ける。

3)Apache を再起動すると「mod_md」が「ServerRoot」に「MD」というフォルダと空のサブフォルダーを作る。
「account」「archive」「challenges」「domains」「staging」

Apacheのログを見ると、Let’s Encryptへ送信?した形跡があってconnectしたが(yet)だという返事が返って公開サイト上には、その旨の表示が現れてHPが見れなくなる。なので1~2時間ほど間をおいて2)の(#)を外したり付けたりの繰り返しを3回ほど行ったところ接続できたのか?サイトに表示が無くなりHTTPSでHPを見る事ができるようになった。

その後、Apacheのログをみると通常の再起動でのエラー的な項目が無くなったので、MDフォルダーをチェックすると、staging(マルチドメイン用?)以外に証明書等が入ったドメイン名のフォルダーが設置されていた。

md-+–
+- accounts # ACME account information, one subdir/account
+- archive # copies of older domain data
+- challenges # temporary files for answering ACME challenges
+- domains # one subdir per MD, contains keys and certificates
+- fallback-privkey.pem # key used when no valid certificate is available
+- fallback-cert.pem # certificate used as long as no other is available
+- httpd.json # properties of the server, e.g. which ports it listens on
+- md_store.json # SECRET for private key protection, store version info
+- staging # MD information during certificate process
+- tmp # temporary holding place when activating staging info
(*)はMDに「crtとkey」が含まれた時点で自動削除される。

mod_md がどの様に証明書の更新をするのか分からないけど、「MDRenewWindow 80d」が毎10日に自動で試みるようで、更新がなされるとarchiveに「ドメイン名+数字」で確認できるようだ。


Xampp7.2.2の内容はPHPのみv7.2.2へバージョンアップ

Apache Friends でXamppがv7.2.2にアップグレードしてたので内容をチェック、Apacheやその他サーバーソフトのバージョンアップ無し、PHPのみ「bug-fix」したものだったので、PHPのサイトから VC15 x86 Thread Safe (2018-Jan-31 23:18:57)」をインストールしてバージョンアップを試みたが失敗、すぐにXampp7.2.2をダウンロードしてインストールしなおした。

以前のバージョンアップの時は問題なくできたので準備無しの作業だったから少し焦ったが、他のソフトが以前のバージョンと同じなのでインストール後、PHPとApache以外のソフトを入れ替えて事なきを得た。次回からはXamppのアップグレードする際は前もって下記のファイルやフォルダーを保存することだね。

Apache ➡ httpd.conf,httpd-vhost.conf,httpd-ssl.conf
PHP ➡ php.ini
MariaDB(MySQL) ➡ my.ini, data
phpMyAdmin ➡ config.inc.php
*その他ソフト(FileZilla、Mercury)は、ディレクトリーごと保存する。

PHP7.2.2のiniファイルが内容的に少し変わっていたので、v7.2.1で修正した箇所 のみをチェックして修正した。


Letsencryptの自動更新.batを用意してタスクスケジューラに登録

先日Letsencryptの更新が無事完了したようなので、早速Windows10のタスクスケジューラに自動更新用の.batを用意して試験的に「実行」したが問題なしなので次回の更新日に合わせて登録した。

【作成方法】 Windowsの場合は、至って簡単に作れるようだ。先ずは新規作成のためエディターで手動更新する時の手順を書き終えたら拡張子を.batに変換して任意のフォルダーへ保存。 例)C:\Letsencrypt-Win-Simple\SSL_UPDATER.bat

rem SSL更新コマンド
cd c:\WINDOWS\system32\cmd.exe
cd /
c:\letsencrypt-win-simple\letsencrypt.exe –renew –baseuri “https://acme-v01.api.letsencrypt.org/”
rem SSL更新コマンドの終了
(exit/B の代わりに更新確認の為。。。)
cmd.exe /K “c:\letsencrypt-win-simple\ssl_updater.bat”.

【タスクスケジューラへ登録】 コントロールパネル⇒システムセキュリティ⇒管理ツールからタスクスケジューラを開いてタクスの作成をクリックして順次記入。

・全般:名前と説明欄
 例)SSL_UPDATER、SSL証明書の自動更新
・トリガー:予定日 例)毎月、日時を記入
・操作:スクリプトを指定 その他はデフォルトの設定。

コマンドに関してサイトを巡って再確認していたところ、「Apache2.4.27 VC15 の mod_md でLetsencryptの自動更新」と言う記事を目にした。既にApache2.4.29(Xampp7.2.1 VC15)なので、 試したい気持ちがあるけどタスクスケジューラでの自動更新の最終確認やら、クライアント認証の件などが解決していないので今のところ保留。