AWS CentOS7 にPHP最新版をインストールする

PHPのバージョン最新版をAWSのCentOS7にインストールしようとして試行錯誤した顛末。

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。と表示された対応 | Qiita

そもそもremiリポジトリがなく最初にインストールするところから始めました。

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

鍵がない!(NOKEY)と怒られたので、wget でとりに行きました。

# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# rpm -Uvh remi-release-7.rpm

ここでエラー: 依存性の欠如:
epel-release = 7 は remi-release-7.7-2.el7.remi.noarch に必要とされています

ん・・・epel が必要らしいことがbash のlocale をJPにして気付きました。

# yum -y install epel-release

こんなこともしばらく触れないうちに忘れてしまうものなんですね・・・で表題の件。PHPをモジュールごとまるっとインストールします。

PHP バージョン情報 | OpenStandia™ (オープンスタンディア) 最新版は7.4.7

# yum install --enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysql

# php -v
PHP 7.4.7 (cli) (built: Jun 9 2020 10:57:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

無事、Wordpress を初期設定できました。ありがとうございました。

AWS SCPオプションでつまづく

AWS にデータベース用のインスタンスをプライベートネットワーク上に作成、ローカルからSCPを使ってキーファイルを転送しようとしたところ、connection refused で弾かれました。コマンドのポート指定オプションを間違えていたようです。

$ scp -P 20022 -i /path/to/identityfile localfilename remoteuser@hostname:~/

大文字の-Pで転送できました。(ホッ

追記) 踏み台サーバーからログインするために.ssh/config のパーミッション設定は必須でした。

# chmod 700 ~/.ssh
# chmod 600 ~/.ssh/config

リムーバブルドライブのBitLockerロック解除

SATA3接続のSSDをデータドライブとしてWindows10 Proのディスク暗号化機能、BitLockerで暗号化して音楽ファイルなどを保存していたのですが、ある日突然、解除できなかったのでPowerShellのコマンドでのアンロック方法をメモ。

manage-bde のロック解除 | Microsoft Docs

PowerShell を管理者として実行プロンプトから

manage-bde -unlock F: -pw

無事、パスワードを訊かれ初期パスワードを入力するとアンロックできました。ロックするには

manage-bde -lock F:

今のところ、GUIからのロック方法は見つかりませんでした。

McAfee Endpoint Security for Linux 無料トライアル版をインストールする

McAfee Endpoint Security for Linux Threat Prevention 10.6.9 無料トライアル版ENSL1069_Eval.zip をダウンロードします。

https://www.mcafee.com/enterprise/ja-jp/downloads/trials.html?pid=endpoint-security

ファイルを解凍、作業ディレクトリ /usr/local/src/ 配下に設置します。

# cd ENSL1069_Eval/ENSL1069_Eval

キーを解凍
# tar xvf MCAFEE_LLC.PUB.TAR

本体を解凍
# tar zxvf McAfeeTP-10.6.9-121-Eval-standalone.tar.gz

解凍された圧縮ファイルを解凍
# tar zxvf McAfeeTP-10.6.9-121-standalone.linux.tar.gz
すべて解凍
# tar zxvf McAfeeESP-Basic-10.6.9-126-Full.linux.tar.gz
# tar zxvf McAfeeESP-KernelModule-10.6.9-126-Full.linux.tar.gz

キーをインポート
# rpm --import MCAFEE_LLC.PUB

署名を確認
# rpm -K McAfeeESP-10.6.9-126.x86_64.rpm
# rpm -K McAfeeRt-10.6.9-126.x86_64.rpm
# rpm -K McAfeeTP-10.6.9-121.x86_64.rpm
# rpm -K McAfeeESPFileAccess-10.6.9-126.x86_64.rpm
# rpm -K McAfeeESPAac-10.6.9-126.x86_64.rpm

# cd MA562LNX/

パッケージをインストール
# rpm -ivh MFEma.x86_64.rpm
# rpm -ivh MFErt.i686.rpm
# cd ..
# ./install-mfetp.sh usefanotify

ライセンス条項をスクロールして accept [Enter] します。

インストールが終わるまでディスプレイを眺めながらお茶でも飲みます。

コマンドから起動確認

# /opt/McAfee/ens/tp/bin/mfetpd restart
# /opt/McAfee/ens/tp/init/mfetpd-control.sh status

mfetpd start/running, process ######
お疲れさまでした。

MySQL データベースのエクスポート

OpenSSH をソースビルド時にうっかりSSLのライブラリーを上書きしてしまいSSHが起動しなくなりました。Web サーバーも起動エラーして再起不能かと思いましたがバックアップHDDが生きていてWordpressのデータを救出することができました。

MySQLのデータベースをまるっとお引越し。 (エクスポート/インポート)

mysqldumpまとめ

user_name, database_name, パスワードはwp-config.php で確認後、USBメモリにエクスポート。

# mysqldump -u user_name -p database_name > export_file_name.sql

HDDを入れ替えてOS起動、インポートも同様に、

# mysql -u user_name -p database_name < export_file_name.sql

AWS セッションマネージャーをインストールしてみた

概要
いつの日か、あなたがSSHキーを吹っ飛ばしても落ち着いて対応できる道しるべ 〜SSMの手順を添えて〜

不測の事態に備えてAWS のCentOS7のインスタンスにセッションマネージャーをインストールする手順をメモ。

まずはAmazon Linux2 などデフォルトで搭載されているSSMエージェントをインストールしてみる。

Linux 用の EC2 インスタンスに手動で SSM エージェント をインストールする

# sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
# sudo systemctl status amazon-ssm-agent 起動確認 # sudo systemctl enable amazon-ssm-agent 自動起動

AWSコンソール→IAMからロールの作成

ユースケース→EC2→次のステップ:アクセス権限でポリシー一覧からAmazonEC2RoleforSSMを選択、タグを付けてロール名を登録、作成。

AWSコンソール→EC2→アクション→インスタンスの設定→IAMロールの割り当て/置換で先ほど作成したロールを適用して関連付けしたら完了。

AWSコンソール→System Manager→セッションマネージャーから[セッションの開始]で関連付けられたインスタンスを選択して[セッションを開始する]

GUIからサーバーに入ることができました。

SSHポート変更SELinuxでつまづく

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版 でCentOS7.8 をAWS に実際にインスタンスとして起動、設定をしたのでメモ。

タイムゾーン設定
AWS EC2 Amazon Linuxインスタンス起動後、最初にやることまとめ

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# vi /etc/sysconfig/clock
ZONE="Asia/Tokyo" UTC= true
# shutdown -r now

yum ファステストミラー設定、グループインストール、アップデート
CentOS7 で yum groupinstall が出来ないんですけど。。。

# vi /etc/yum/pluginconf.d/fastestmirror.conf

include_only=.jp

# yum -y install bash-completion
# yum -y groupinstall base "Development tools" --setopt=group_package_types=mandatory,default,optional
# yum -y update

SSHポート変更
(AWSコンソールのEC2→セキュリティグループ→インバウンドルールの編集からカスタムTCPポート20022を許可)

# vi /etc/ssh/sshd_config
Port 20022
# setenforce 0 # vi /etc/selinux/config
SELINUX=permissive # semanage port -a -t ssh_port_t -p tcp 20022 # systemctl restart sshd # systemctl enable sshd

ここでSELinuxのコンテキスト変更せずにインスタンス再起動するとsshd 起動エラーを起こして通信できなくなる罠。AWSで再起動後、SSHが繋がらなくなった場合の対処法。SELinuxが原因でした。

semanage port -a -t ssh_port_t -p tcp 20022

ふしあなさん、/etc/ssh/sshd_config に英文の注意書きがありましたね・・・これに気付くまでインスタンス削除、起動を10回繰り返しましたよorz

設定の途中で一時的にPermissive にしてもセキュリティ上は最終的にSELinux は有効にすることが望ましいと思います。Amazon LinuxでSELinuxを有効にする。

AWS ではセキュリティグループでポート管理を行うのでインスタンス内でfirewalld をアクティブにしないのがベストプラクティスのようですね。

AWSコンソールからVPC→アクション→DNS解決の編集を有効化

AWSコンソールからVPC→アクション→DNSホスト名の編集を有効化

AWSコンソールからRoute53→ホストゾーン作成

AWSコンソールからRoute53→EC2のElastic IP からAレコード転記

あらかじめGodaddyで取得した独自ドメインのネームサーバーにホストゾーンで生成されたアドレスを転記

GoDaddyからRoute53によるDNS管理に変える方法

nslookup ブラウザで名前解決できることを確認して作業終了しました。

キーボード、マウス使用レビュー

以前のキーボードは、[Back Space][Del]キーを誤打鍵して[PrintScreen]してしまう配列でストレスが溜まっていたのでサーバー用途で余っていた富士通PRIMERGY  TX100S3 に付属していた純正キーボード(型番CP607162-01) をデスクトップに転用して使用していました。

今年1月、そのキーボードにコーヒーをこぼして[N] [M] [,] [.] 辺りが通電しなくなったので急遽アマゾンで再購入。現在使用しているのは富士通純正キーボード|Amazon.co.jp で調達した2代目です。

デザインは昔からのベーシックな配列を踏襲していて、打鍵の感覚はなめらかでキー押下の圧力も適度でカチャカチャ音がしない点が気に入っています 。ただ1点、[Space]キーが狭いのが難点です。

今度はコーヒーをこぼしても壊れないように、純正キーボードにおあつらえ向きなカバー サンワサプライ デスクトップ用シリコンキーボードカバー | Amazon.co.jp を購入しました。

カバーはキーボードから型取りしたフィットしたもので、最初のうちはウェットで手に吸い付くタッチでしたが使っているうちにキートップを滑るようにタイプする自分の癖に馴染むようになりました。

マウスは以前から、クリック音の静かな自動給電するUSBの有線マウスを探していました。

エレコム マウス 有線 Mサイズ 5ボタン (戻る・進むボタン搭載) 静音 BlueLED 握りやすい“手にぴた”設計 ホワイト M-BL28UBSXWH  

は広いディスプレイをBluetoothのように遅延のないキビキビとした操作をするにはうってつけな一品です。大きくもなく小さくもなく、使い慣れると存在を忘れてしまうほどフィットします。これで1,462円はお買い得です。

ベンチマーク測定

前回、Crucial の64GBメモリW4U3200CM-16G x4を増設しましたが色々調べた結果、JEDEC定格1.2V以外では動作せず、クロックも2933MHzが限界と判明し OCするならおとなしくG.skillでも買って置けばよかったと後悔しきり。増設後は、2666MHzネイティブのSamsung M378A1K43CB2 16GB から比べてスコアも格段に上がったので良しとします。

WD Black 500GB NVMe M.2 SSD 2枚をRAID0化したボリュームのCrystal Disk Markの結果はこちらです。

Cristal Disk Mark7.0 は、win32bit 版とUWP(Universal Windows Platform)版があり計測方法(キュー、スレッドのマルチ化)の違いから一律に比較できないのが残念ですがご参考まで。CINEBENCH 結果はランク4。

今後は滅多にメモリを買い替えることもないと思います。次はHDD増設したいですね。

Crucial DDR4-3200 64GB 増設オーバークロック

 Python で大量のCSVデータを処理する現状に、16GBの容量ではメモリクラッシュすることが多くなり増設を検討しなければならなくなりました。
 幸い、マザーボードの空きスロットに余裕があり相性など色々調べた結果、Amazon.co.jp |Crucial (Micron製) デスクトップPC用メモリ PC4-25600(DDR4-3200) 16GBx2枚 を2セット分購入しました。

Crucial デスクトップメモリ PC-25600(DDR4-3200) 16GB x4

早速、ケースを空けてスロットに取り付け。Asrock のUEFIブートメニューから[F6] Advanced → [OC Tweaker] → [DRAM Frequency] から[DDR4-3200] を選択、[F10] で[Save & Exit] しましたが起動しません。(汗

電源強制OFFから再起動してもUEFI起動せず、お釈迦にしてしまったと思いましたが冷静にCMOS電池を外してリセット。初期設定に戻すとブートメニューからUEFIセッティングに入ることができました。 メニューでは64GBを認識しているのでクロック値に問題があると考え、[DRAM Frequency] の最適な値を探る再起動→リセットを繰り返すと2800MHz の時点でOS起動することができました。これで欲が出て2933MHz までオーバークロックすると無事、起動。定格CPU下での3200MHz までOCはできませんでしたが、ひとまず安心でしょうか。

DRAM Frequency 2933MHz(値を2倍)

定格以外の設定も試してみたいですが今回は以上迄とさせていただきます。