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

通信障害とドメイン変更

先月から504(Gateway Time Out)エラーを出していた当サーバーの通信障害の原因が判明したのでお知らせします。

DDNS(ダイナミックDNS)にIPアドレスを通知するデーモンDice がビジー(CPU使用率100%)でネットワークが落ちていたようです。ローカルではレスポンスを確認。

top からDiceデーモンのプロセスをkill 、再起動したところ外部から接続できるようになりました。

今までご迷惑をおかけして申し訳ありませんでした。お詫び申し上げます。

またこれを機会にDDNSのホストをieServer からMyDNS へと変更しましたので宜しくお願い申し上げます。アドレスは、https://stuffy.mydns.jp です。

CentOS6.10 GUI起動、完了です。

yum update するとグラフィックボードのドライバーが書き換わりGUI 起動ができなかったのですが、ふと他の方のブログを検索した結果、Radeon のfglrx-uninstall.sh を使えばドライバーを上書きせずにアンインストールすることができると判明。

【centos6】Radeonドライバー再設定で嵌ってしまった!

早速、試したところドライバーのアンインストール、yum によるカーネルのバージョンアップ、ドライバーの再インストールに成功した結果、件の課題をクリアすることができました。

まず [F2] 押下からBIOSを起動、 Onboad のグラフィックボードを有効にして再起動、シングルユーザーモードに入って/boot/grub/grub.conf のカーネルオプション行末の、nouveau.modeset=0 を削除、init 3 でランレベル3でroot でCUI ログインします。(ディスプレイケーブルはオンボードのVGA端子に接続する)

/etc/yum.conf でカーネルアップデートをexclude しているときは行頭を# コメントアウトして yum update 、すべての更新を掛けます。

/usr/share/ati/ ディレクトリに移動してドライバー削除スクリプト、fglrx-uninstall.sh を実行後、/usr/share/ati/ をディレクトリごと削除、再起動。

ふたたびシングルユーザーモードでgrub.conf のnouveau.modeset=0 をカーネルオプションの行末に加えて再起動。

[F2] BIOS で外付けグラフィックボード[External Video] を有効にして(ディスプレイケーブルをグラフィックボードのVGA端子に接続する)

シングルユーザーモードからinit 3 でCUI ログイン。

あらかじめユーザーディレクトリにコピーしておいた、AMD-Catalyst-15.9-Linux-installer-15.201.1151-x86.x86_64.run を実行、エラーが出たら必要なパッケージを別のPCからでもダウンロード、フラッシュドライブにコピーしておく。(ここはトライアンドエラーもやむなしです。)

エラーログから必要なドライバーに当たりをつけやっと、本体のドライバーのインストールに成功しました。最後に#aticonfig –initial して再起動するとカーネルのアップデートされたCentOS6.10 でXウィンドウが起動してGUI 表示できました。

ありがとうございました。

ランレベル

サーバー機でひさびさにyum update を掛けてGUIログインしようとしたら画面が固まりました。

シングルユーザーモードから

# telinit 3

でCUIログインしようとするとパスワードではねられてログインできない、ふぐっ、ちりりぃ。
察するに、yum でグラフィックボードのドライバーが更新されて不整合を起こしているんだと推理してます。
再びシングルユーザーモードでパスワードリセットして、アカウントのロックアウトポリシーを解除。root でCUIログイン成功。

# pam_tally2 -u root --reset

どうしても、telinit 5 や、startx ができないのでyum で不整合を起こしたドライバーのエラーログ何かないかと探したのですが原因不明。強制的にドライバーを再インストールしたところ画面表示が壊れました。もうダメポ。バックアップから復元。yum update は諦めました。復旧に際し、6時間にわたり通信障害が起きたことをお詫び申し上げます。

root になれるユーザーの制限

今回は、su コマンドでroot になれるユーザーを制限するPAM を設定していきます。まず、/etc/login.defs の最下行に、

SU_WHEEL_ONLY yes

を追記。次に、useradd コマンドで、ユーザーをwheel グループに加えます。

usermod -aG wheel username

つづいて、/etc/pam.d/su に以下の行を追加、

auth  required  pam_wheel.so use_uid group=wheel

上記設定で、root になれるユーザーをwheel グループのみに制限できます。

参考URL: http://www.atmarkit.co.jp/ait/articles/0108/18/news003_3.html

CentOS7 の公開鍵認証でのSSHログイン

今回ははCentOS7 における、公開鍵認証でのTeraTerm ターミナルエミュレータによるSSH ログインを設定していきます。

まず、wheel グループに加えたユーザーのホームディレクトリで公開鍵を保存する隠しディレクトリ、.ssh を作成します。つづいてroot にスイッチしてパーミッションを一時的に777 に設定します。

$ mkdir .ssh
$ su (switch user してroot のパスワード入力
# chmod 777 .ssh

次に、TeraTerm のメニューバーの[設定]-[SSH鍵生成(N)…] から公開鍵と秘密鍵を[生成(G)] ボタンをクリックするとパスフレーズを求められるので入力、再入力をして生成します。

[公開鍵の保存] と[秘密鍵の保存] ボタンをクリックしてそれぞれ、id_rsa.pub, id_rsa という名前(デフォルト)でホストの適当なフォルダに保存します。

次にエクスプローラで、id_rsa.pub ファイルをホームディレクトリ上のTeraTerm 画面にドラッグ&ドロップすると以下の画面が表示されるので下図のように、SCP:[.ssh] と入力してファイル転送します。

再びターミナルに戻り、転送した公開鍵をauthorized_keys という名前に変更。(WinSCPなど複数の鍵を追加するときは、cat id_rsa.ppk >> authorized_keys など)鍵のパーミッションを600 に、.ssh ディレクトリのパーミションを700 に変更します。

# cd .ssh
# mv id_rsa.pub authorized_keys
# chmod 600 authorized_keys
# chmod 700 .

それから/etc/pam.d/sshd に以下の行を追記、

account    required     pam_nologin.so
account    required     pam_access.so (追記

デフォルトでは、/etc/security/access.conf を参照しますが、

account required  pam_access.so accessfile=/dir/to/ssh_access.conf

で指定したパスの.conf ファイルを指定することもできます。

一方、/etc/security/access.conf に +:wheel:ALL と、+:username:ALL と、– : ALL: ALL を追記。

# Disallow non-local logins to privileged accounts (group wheel). (の付近
#
#-:wheel:ALL EXCEPT LOCAL .win.tue.nl
+:wheel:ALL (追記
+:username:ALL(追記

# All other users should be denied to get access from all sources.
#- : ALL : ALL (その他のすべてのユーザーを拒否
- : ALL : ALL (wheel グループ以外をアクセス制限するには、- : ALL EXCEPT wheel : ALL

最後に/etc/ssh/sshd_config に公開鍵認証の設定をして

#ServerKeyBits 1024
ServerKeyBits 2048 (たぶん、必要

#PubkeyAuthentication no
PubkeyAuthentication yes (公開鍵認証をyes

#PasswordAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication no (パスワード認証をno

sshd 再起動、ログアウトします。

# systemctl restart sshd

TeraTerm の新しいショートカットのプロパティを以下の属性で作ると、1クリックで公開鍵認証でログインできると思います。

"C:\Program Files (x86)\teraterm\ttermpro.exe" localhost:22 /ssh2 /auth=publickey  /user=username /ask4passwd /keyfile="C:\pass/to/id_rsa"

ログインできない場合、原因はいろいろあると思いますがfirewalld でのポート開放(SSHのポート番号の変更をしたとき。)、鍵やディレクトリの所有権、SeLinux のコンテキストの確認、PAM の書式(設定ファイルの行の前後位置)、ローカル、リモートでのアクセス制限、IPの設定はどうなっているなどを確認してみて下さい。

参考URL:http://qiita.com/tjinjin/items/ca6f5518e881bdf5488c

MySQL 互換MariaDB でWordPress の初期設定

前回の続きで、今回はMySQL 互換のMariaDB でデータベースとユーザーを作成していきます。早速、

# mysqladmin create 'databasename' -u root -p

データベース名、’databasename’ は予め考えたオリジナルの名前(例:wordpress , didital_life, casual など)で何でも良いです。

mariaDB にログインして一意のユーザー名、’username’に対してデータベースのパスワードを設定して、権限を与えていきます。

# mysql -u root -p
# mariaDB [<none>] GRANT ALL PRIVILEGES ON 'databasename'.* TO 'username'@localhost IDENTIFIED BY 'password';

Query OK , 0 rows affected と表示されればOKです。

# mariaDB[<none>] FLUSH PRIVILEGES;

Query OK 。exit または\q でプロンプトから出ます。

 

前回のページからの遷移画面、wp-admin/install.php に、WordPress のタイトル、管理ユーザー名、メールアドレスを入力、パスワードをメモ帳などに記録、[インストール] ボタンをクリックして、ユーザー名と先ほどメモしたパスワードを入力、ログインすればブログサーバーの初期設定、完了です。

 

 

参考URL: WordPress のインストール – WordPress Codex 日本語版

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

前回、構築したLAMP にWordpress をインストール。

# cd /var/www/html
# wget https://ja.wordpress.org/latest-ja.tar.gz
# tar zxvf latest-ja.tar.gz
# chown -R apache:apache wordpress/

ブラウザのアドレスバーから、http://localhost/wordpress/ でインストール画面を表示しようとして、PHP が500 サーバーエラーを吐きまくるので解決方法を見つけるまで半日掛かりました。

初めは /etc/httpd/conf/httpd.conf の

DirectoryIndex index.html index.php

を追加し忘れたと思い修正しましたが(もちろん必須の項目ですが。)500 エラー。

<Directory "/var/www/html">
  Options indexes ExecCGI

の追記はもちろん、必要ですがエラーが続きました。/etc/httpd/logs/error.log も見ましたがIE11 ではエラーが表示されず、Edge で閲覧キャッシュを削除するとブラウザに件のメッセージが表示されました。

件のキーワードで検索すると、php-mysql のインストールとphp.ini の設定が欠けていたようです。

一旦、yum remove php … してphp-mysql を再インストール。

# yum install --enablerepo=remi, remi-php70 php php-devel php-mysql php-mbstring php-pdo php-gd

/etc/php.ini に、extension = mysql.so を追記。

# systemctl restart httpd

で、httpd を再起動。すると、WordPress のwp-admin/setup-config.php が無事、表示されました。

参考URL: https://mostworks.wordpress.com/2013/02/16/2013-2-yuminstall-php-mysql-module/