変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

2014 / 11月

wordpressを入れてみる

参考1:http://www.ddhost.jp/lab/2013/12/raspberry_piwordpress.html
参考2:http://denshikousaku.net/raspberry-pi-wordpress-and-power-consumption
# apt-get install chkconfig
# chkconfig –list
apache2が無かった?
# service apache2 stop
# apt-get install lighttpd php5-cgi php5-mysql mysql-server
New password for the MySQL “root” user: ****************  ←適切なパスワードを入力
# cd /etc/lighttpd/conf-enabled
# ln -s ../conf-available/10-fastcgi.conf .
# ln -s ../conf-available/15-fastcgi-php.conf .
# cd /var
# wget http://ja.wordpress.org/latest-ja.zip
# unzip latest-ja.zip
# mv wordpress www
# rm -rf latest-ja.zip
# chown -R www-data:www-data www
# mysql -u root -p
Passwordを入力する
# create database wpdb;
GRANT ALL PRIVILEGES ON wpdb.* TO wpuser@localhost IDENTIFIED BY “yourpassword”;
exit
# cd /var/www/wordpress
# mv wp-config-sample.php wp-config.php
# vi wp-config.php
define(‘DB_NAME’, ‘wpdb’);
define(‘DB_USER’, ‘wpuser‘);
define(‘DB_PASSWORD’, ‘yourpassword’);
# chmod 404 wp-config.php
# /etc/init.d/lighttpd force-reload
http://192.168.*.*/wordpress
暫く待つとWordPressの設定画面
 
# apt-get install phpmyadmin
Web server to reconfigure automatically:
[ ] apache2
[*] lighttpd
Configure database for phpmyadmin with dbconfig-common?
<YES>
・・・
dpkg: error processing phpmyadmin (–configure):
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
phpmyadmin
E: Sub-process /usr/bin/dpkg returned an error code (1)
となるけど
# /etc/init.d/lighttpd force-reload
[ ok ] Reloading web server configuration: lighttpd.
し、ブラウザからは観えるようになった。
まだ、WordPressもPhpMyAdminも恐ろしく遅い。
バックアップはWin32DiskImager の Read でimgファイルを作成する。
7.42 GBもあるので、圧縮にかなり時間がかかるけど、結構小さく(1.15 GB)なる。
# apt-get install php-apc
で、ずいぶんと速くなった気がする。
でも、まだ遅い
結局
# raspi-config
オーバークロック
http://c-mobberley.com/wordpress/2013/05/18/raspberry-pi-lighttpd-optimisation-for-wordpress-owncloud-and-more/
に良い事が書いてあるらしい。
# vi /etc/php5/cgi/php.ini
; cgi.fix_pathinfo=1   の ; を取る。
# vi /etc/lighttpd/lighttpd.conf
server.modules = (
“mod_access”,
“mod_alias”,
“mod_compress”,
“mod_redirect”,
# “mod_rewrite”,
)
の後に
fastcgi.server = ( “.php” => ((
“bin-path” => “/usr/bin/php5-cgi”,
“socket” => “/tmp/php.socket”
)))
を追記して
# service lighttpd restart
これで、ブラウザの画面更新が1秒ぐらいになったので何とかなりそう。
WordPressのWP Super Cache プラグインも入れてみる。
設定しようとしたら、wp-config.php を書き換えられないと泣きが入ったので644に
さらにパーマリンクがデフォルトのままでも支障があるようなので「日付と投稿名」に変更し
やっとWP Super Cache プラグインの設定画面を観れる。
簡易タグで ●キャッシング利用 (推奨) に変えて更新。
プリロードタグで、30分から、12000分(200時間)に更新。
しかし、記事が見つからなくなってしまったので、無効化、パーマリンクもデフォルトに戻す。
 



再インスト

TOSHIBAの8GBのmicroSDカード(SD-C008GR7AR30)を購入し、再インスト。

 ココからダウンロード。

Raspbian

Debian Wheezy
Version: September 2014
Release date: 2014-09-09

だったのでちょっと上がっている。
けど、起動中にwarning のオレンジの文字が・・・
kernel lacks cgroups or memory controller not avaiable, not starting cgroups……
# sudo passwd root
Password: *****************
# su –
Password: *****************
# vi /boot/cmdline.txt
elevator=deadlineの前に
cgroup_enable=memory と追記し
# reboot
警告を消した。
次に無線LAN設定
# cd /etc/wpa_supplicant
# wpa_passphrase  “スマフォのテザリングのSSID”  パスワード >> wpa_supplicant.conf
# wpa_passphrase  “自宅のSSID”  パスワード >> wpa_supplicant.conf
とやって

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
#スマフォ用
network={
ssid=”スマフォのテザリングのSSID”
psk=************************************************ ←暗号化されたパスワード
}
#自宅用
network={
ssid=”自宅のSSID”
psk=************************************************ ←暗号化されたパスワード
}

 とやって、外ならスマフォのテザリングに、自宅なら無線ルータにつながるようにした。
【Avahi デーモンのインストール】

sudo apt-get updatesudo apt-get install avahi-daemon
【ソフトウェアの更新】 
sudo apt-get update
sudo apt-get upgrade

スマフォではConnectBotでOK。
しかしスマフォややブラウザからマシン名が見つからない。
SSH専用なのかな?
# shoudown -h now
この辺でmicroSDをバックアップ。



Raspberry Pi B+ Case, Black

やっと届きました
3パーツ(底板・中蓋・天板)に分れます。
天板と中蓋の間に少し隙間が空くけど、このスキマからGPIOのケーブルを外に出すようです。
中蓋にRaspberry Pi B+本体のコネクタの名前が刻印されています。
中蓋をうまく使えばミニ ブレッドボードが入りそうです。
CPUチップの部分がくりぬかれているのでヒートシンクも付けられそうです。
裏蓋には脚とネジ穴が付いているので壁に固定できそうです。
さて・・・
microSDをnucの再インストに使ってしまったのでやり直しです。
 
 



Android-x86

AOSPでAndroid 5.0がリリースされたので
Android-x86を探して入れてみたけど・・・
5.0はまだまだっぽい。
※ 名前に for developers って付いていたのはそのせいか。
それに64ビットカーネルだと都合が悪いようだ。
CentOS7からは64ビットしかないので
CentOS6.xの32ビット版を用意した方がいいらしい。
repoでソースをダウンロードしてISOイメージを作る途中でこけてた時点で31GBも食うのが難点。
SSDは64GBしかないし・・・やはり外付けか
色々と延々とログも取って書き込んでおいたら
MariaDBがクラッシュしたので
昨日のバックアップをリストアしたので丸1日巻き戻り。



Docker

Docker を使えばバカみたいに簡単になる。
と誰かが云っていたのを観たが・・・
実際に使ってみると、Dockerの環境依存度は半端ない。
Dockerが起動するのは1プロセスなのでsendmail も httpd も サービスと云えるものは何も動いていない。
プロセスのスプーラーを用意するのが常套手段の様だが・・・それは大甘。どうしても消えないプロセスが出たら、ホストをrebootするしかない。これは怖い。
さらにCentOS7になって service や chkconfig が systemctl になっただけでも、さっぱり動かない。
と云う日記を観た。
しかし、centos:centos7 のイメージを使うと hostname すら動かない。
強いて言えば、LXCの頃は、
何度何度もインストし。絶対大丈夫と確信した手順が手に入った後にスクリプトを作っていたのだろう。
で、あれば対話モードで
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx

で、イメージを作り、さらにひな形にして・・・していけば・・・
本当に「バカみたいに簡単になる。」様に思える。
しかし、全てを完璧に作り終え夢のような花畑が出来た後に・・・

「mcrypt 拡張をロードできません。PHP の設定を確認してください」

のようなアップデートが後付けでたった1つ挟まるだけで、夢のような花畑は全滅するのだ。
※なぜかCentOS6.6になっても直ってないっぽい。

それ以上に確実にたまにやって来る『セキュリティ・緊急パッチ』が一番の曲者。

全てがやり直しになる。※検証し直すという意味で・・・

例のBASHのアップデートも大抵は問題ないが使っていた機能を削られてたりしたら・・・(涙

単純にCentOSのインストーラーの後、ひたすらコマンドを撃ち続けるのは
滅多に無いけど、クリティカルなタイミングで下手なアップデートが混ざる確率は非常に高いので
変になっていないかどうか、人の目で確認するためなのだ。
そんな必要が無ければ、皆、長いシェル・スクリプトを流して済んでいる。
仮想化が必要な理由は、

  1. SSDの寿命は短いが、スピンドルを回しっぱなしのHDDの寿命もあっけない。
  2. 時間がかかりすぎ単調な手作業になるインストールはヒューマンエラーを引き起こしやすい。
  3. そもそも用意した手順が正しいとは誰も云えない。※去年は去年。今年は今年。

に尽きるので、Dockerの最大の功績は Core OS をリリースしていることだと思う。
これをホストにして、Git HUB から いけそうな奴を 片っ端から流して、出来が良かったものをコミットして残す。
というのが本来のやり方だろう。
つまり、Dockerが定着するかどうかは、今後のGit HUB の中身次第ということだ。
多分、LXCの二の前だろうと思う。そうそう良いものには巡り会えないのだから。
 
また、たくさんのWARファイルを飲ませ、サーバー・プロセスの起動時間が長くなってしまったJava系WEBアプリにはほとんどメリットが無いが、aufsのおかげで、ログやjavaキャッシュでゴミだらけになっているサーバーの中を綺麗に消すことができる。大したことではないように思えるが、壊れたキャッシュが挟まったWEBサーバーは再インストールする以外に手段ないのだ。デリゲーターのおかげで組み換えが便利になっている代償としてキャッシュの保存先がサーバーのあちこちに分散していることが多いのだ。ある意味、未来のDockerサーバーが同様な状況になっていないとは断言できない。
 
そして、出来上がったイメージが想定通りなのかどうか?
テストする手順は、完全に手探りでしかない。
 
【所感】
Dockerで作ったものをテストする全自動テスターNocker君が欲しい。



メール転送設定

ここでやっているのは
ブログの監視メールをパソコンで読める様にすること
rootのメールの転送先を登録

# vi /etc/aliases
root:       ****@***.*** な感じで
# newaliases

postfixの設定を若干変更

# vi /etc/postfix/main.cf
mydomain = **ドメイン名**
 myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
 inet_interfaces = all
 home_mailbox = Maildir/
 message_size_limit = 10485760
に変更
# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/

rootのメールを転送するアカウントを作成

# adduser  *********
# passwd   *********
ユーザー ********* のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

postfix再起動

# systemctl restart postfix

dobecotをインスト

# yum -y install dovecot
# cd /etc/dovecot/conf.d/
# vi 10-mail.conf
mail_location = maildir:~/Maildir
に変更
# vi 10-auth.conf
disable_plaintext_auth = no
に変更
# systemctl start dovecot
# systemctl enable dovecot

ファイアーウォールの設定を変更 smtp pop3 imap

# firewall-cmd –state
running
# firewall-cmd –list-services
dhcpv6-client http ssh
# firewall-cmd –add-service=smtp –permanent
# firewall-cmd –add-port=110/tcp  –permanent
# firewall-cmd –add-port=143/tcp  –permanent
# firewall-cmd –reload
success
# firewall-cmd –list-services
dhcpv6-client http smtp ssh
# firewall-cmd –list-ports
110/tcp 143/tcp

テスト

# echo test | mail root

※cyrus saslがsaslpasswd でアカウントとパスワードを登録しないと認証しなくなっていたらしいので、cyrus saslのインストと/etc/postfix/main.cfに

smtpd_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination

の設定は最初のインスト時は見送ったが、後で追加してみたら、支障なかった。

# yum -y install cyrus-sasl
パッケージ cyrus-sasl-2.1.26-17.el7.x86_64 はインストール済みか最新バージョンです
何もしません
# systemctl start saslauthd
# systemctl enable saslauthd
ln -s '/usr/lib/systemd/system/saslauthd.service' '/etc/systemd/system/multi-user.target.wants/saslauthd.service

 
しかし、インストの手順が重要なのかもしれない。



ntfsのSSDをマウント

exFATの方がいいらしけど、まだCentOS7は未対応らしいので、NTFSでSSDをマウント・・・
できなかったので、rpmforgeリポジトリーからntfsprogsパッケージを追加
※RPMforgは 2016年7月20日頃から使用不可
# yum install ntfsprogs
# dmesg で観ると・・・
[ 4123.496919]  sdb: sdb1 sdb2 sdb3 sdb4
候補4つ

# mount -t ntfs /dev/sdb1 /mnt
# ls -l

Recovery  System Volume Information

多分違う。

# mount -t ntfs /dev/sdb2 /mnt

NTFS signature is missing.
Failed to mount ‘/dev/sdb2’: 無効な引数です
The device ‘/dev/sdb2’ doesn’t seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

多分違う。

# mount -t ntfs /dev/sdb3 /mnt

NTFS signature is missing.
Failed to mount ‘/dev/sdb3’: 無効な引数です
The device ‘/dev/sdb3’ doesn’t seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

多分違う。

# mount -t ntfs /dev/sdb4 /mnt
# ls -l /mnt

合計 0
drwxrwxrwx 1 root root 0 11月  3 07:37 System Volume Information

正解らしい。
# umount /mnt
# mkdir /mnt/usbSSD
# mount -t ntfs /dev/sdb4 /mnt/usbSSD
# df -H
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    41G   32G  8.3G   80% /
devtmpfs                  1.7G     0  1.7G    0% /dev
tmpfs                     1.8G  4.1k  1.8G    1% /dev/shm
tmpfs                     1.8G  9.0M  1.7G    1% /run
tmpfs                     1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/sda2                 521M  126M  396M   25% /boot
/dev/sda1                 210M   10M  200M    5% /boot/efi
/dev/mapper/centos-home    20G   34M   20G    1% /home
/dev/sdb4                  64G  102M   64G    1% /mnt/usbSSD
# umount /mnt
# mount -t ntfs -o umask=0666 /dev/sdb4 /mnt/usbSSD
# mount
・・・
/dev/sdb4 on /mnt/usbSSD type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
# vi /etc/ftab
/dev/sdb4               /mnt/usbSSD             ntfs    umask=0666      1 1
これで何とか・・・

あ、ファイルが全部root権限!

fdiskでパーテーションを作り直し、mkfs でext3にフォーマットしなおしてfstabも書き換えて・・・
chmod 0777
chown qemu.qemu
してやっと virsh start Windows してくれました。
 
何と云ってもこのnucで、Windows10とCentOS7(このブログ)を両方同時に動くのが凄いですね。
ゲームPCもCentOS7ベースのKVMでマルチできないかな? (笑
 



【失敗】 CentOS7でKVM(仮想化)Windoesのゲストを作る

※成功例のページはココ
# vi create_kvm_windows_guest.sh

# 元ネタ http://www.server-world.info/query?os=CentOS_6&p=kvm&f=8
#ISOイメージのパス指定
ISOIMG=/tmp/9841.0.140912-1613.FBL_RELEASE_CLIENTENTERPRISE_VOL_X64FRE_EN-US.ISO
#KVM上での名前を指定
  # KVM DOMAIN NAME
  IMAGE_NAME=Win10
  # VIRTUAL DISK FILEPATH
  IMG_PATH=/var/lib/libvirt/images
  # SPICE CLIENT PASSWORD
  PASSWORD=password
  # USE MEMORY SIZE (MB)
  RAM=3096
  # VIRTUAL DISK SIZE (GB)
  DISK=15
virt-install \
  --name ${IMAGE_NAME} \
  --ram ${RAM} \
  --disk path=${IMG_PATH}/${IMAGE_NAME}.qcow2,size=${DISK},format=qcow2 \
  --vcpus=1 \
  --os-type windows \
  --os-variant=win2k8 \
  --network bridge=br0 \
  --graphics spice,port=5900,listen=0.0.0.0,password=${PASSWORD} \
  --video qxl \
  --cdrom ${ISOIMG}
※nucの容量上の問題からメモリやボリュームの量はかなり少な目にしています。
port=5900を指定するとTLS指定になってしまうらしいので ハズした。

portを指定する場合は /etc/libvirt/qemu.conf の
  • spice_listen = “0.0.0.0”
  • spice_tls = 1
  • spice_tls_x509_cert_dir = “/etc/pki/libvirt-spice”

のコメントを解除し、かつ電子署名を作成しないといけないだろう。

# ./create_kvm_windows_guest.sh
ISOイメージファイルはkvmからのアクセス制限のため /tmpに配置。
SPICEにポート:5900  パスワードはpasswordで接続でき、インストまでは進んだけど・・・
ディスクの空き容量が15GBしかなかったので頓挫しそうになった。
インスト終わった時点で8GBにまで増えた。
と云う訳で古いSSDを用意。
・・・
[ 3083.007029] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 3083.022819]  sdb: sdb1 sdb2 sdb3 sdb4
[ 3083.027416] sd 6:0:0:0: [sdb] No Caching mode page found
[ 3083.027478] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 3083.027536] sd 6:0:0:0: [sdb] Attached SCSI disk
しかしexFATもNTFSでもroot権限になってしまうので、ext3にフォーマットしなおさないとダメだった。
ps.
書かなかったので自分で引っかかってしまった。
firewall-cmdが有効なら、

firewall-cmd –zone=public –add-port=5900/tcp
※ Windowsが安定したら --permanent を付けた方がいい。再起動したら設定が消えるから・・・

iptablesが有効なら、EJECTの前に
-A INPUT -p tcp -m tcp –dport 5900-j ACCEPT
を事前に登録すること。 orz
そして、操作が遅くリブートしてしまったらCD-ROMが認識できないしBIOS画面も開かず
NO BOOTABLE DEVICE
と表示されるだけなので、
以下の方法で残骸を消す。
virsh destroy Win10
virsh undefine Win10
rm /var/lib/libvirt/images/Win10.qcow2
そして、ゲストを作り直す。
やっと間に合ったと思ったら、ブルースクリーン【終了】。
今回のプレビューはJ1900だとダメなのかな?割り当てたDISK:13GBとRAM:2GBでは足りなかったかな?


CentOS7のKVM(仮想化)のCentOS7ゲストの雛型からブログ・サーバを作る

  1. ひな形からブログ鯖のゲストOSを作成
  2. ゲストを複製
    1. # virt-clone -o CentOS7.0 -n *ブログ鯖* -f /var/lib/libvirt/images/*ブログ鯖*.qcow2
      • 割り当て中 *ブログ鯖*.qcow2′ | 20 GB 00:31
      • *ブログ鯖*‘のクローニングに成功しました。
  3. クローン(複製)なのでユニークなハズのUUID、MACアドレス、マシン名までひな形と同じでは都合が悪すぎるのでオフライン(virt-edit)で書き換える
    1. 作成したゲストのMACアドレス確認
      1. # virsh domiflist *ブログ鯖*
        • インターフェース 種類 ソース モデル MAC
        • ——————————————————-
        • – bridge br0 virtio *MACアドレス*
  4. UUID生成
    1. # uuidgen
      • *****-**-*UUID*-**-******
  5. 作成したゲストのネットワークを設定
    1. # virt-edit -d *ブログ鯖* /etc/sysconfig/network-scripts/ifcfg-eth0
      • UUID=*****-**-*UUID*-**-******
      • HWADDR=”*MACアドレス*
  6. 作成したゲストのUDEV設定(MACアドレス変更)
    1. ※無かったけど環境次第かもしれない
      • # virt-edit -d *ブログ鯖* /etc/udev/rules.d/70-persistent-net.rules
        • SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”*MACアドレス*“, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
  7. ホスト名変更
    1. 作成したゲストのホスト名設定
    2. # virt-edit -d *ブログ鯖* /etc/hostname
      • *ホスト名*
    3. 作成したゲストを起動
      1. # virsh start *ブログ鯖*
      2. ドメイン *ブログ鯖* が起動されました
    4. ルータで*MACアドレス*192.168.*.*が割り当てられていた。
  8. ひな形のMACアドレスが残っていないか確認。
    1. grep *MACアドレス* -r
    2. /etc /lib にはなかった
  9. スナップショット作成
    1. # virsh snapshot-create-as *ブログ鯖* *スナップショット名* ”*コメント*
      • ドメインのスナップショット LAMP が作成されました
  10. LAMP(Apache+MariaDB(MySQL)+PHP)をインストールする
  11. phpをインストールする。 ※元ネタ http://server-setting.info/blog/lamp-wordpress-centos7.html
    1. # yum -y install php-mysql php php-gd php-mbstring
    2. # php –version
      • PHP 5.4.16 (cli) (built: Oct 31 2014 12:59:36)
      • Copyright (c) 1997-2013 The PHP Group
      • Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
  12. mariadb(mysql)をインストールする。
    1. # yum -y install mariadb mariadb-server
    2. # mysql –version
      • mysql Ver 15.1 Distrib 5.5.37-MariaDB, for Linux (x86_64) using readline 5.1
  13. DB起動
  14. # systemctl list-units |grep mariadb
  15. # systemctl list-unit-files |grep mariadb
    • mariadb.service disabled
  16. # systemctl start mariadb.service
  17. # systemctl list-units |grep mariadb
    • mariadb.service
    • loaded active running MariaDB database server
  18. # systemctl list-unit-files |grep mariadb
    • mariadb.service disabled
  19. # systemctl enable mariadb.service
    • ln -s ‘/usr/lib/systemd/system/mariadb.service’ ‘/etc/systemd/system/multi-user.target.wants/mariadb.service’
  20. # systemctl list-unit-files |grep mariadb
    • mariadb.service enabled
  21. データベースのrootのパスワードを設定
    • # mysql_secure_installation
  22. ブログのDBとアカウントを作成 ※なぜかこの方法で作成したアカウントは不調なのでphpMyAdminから作り直し
    1. # mysql -u*管理ユーザー* -p*管理ユーザーのパスワード* -Dmysql < ブログ1用DB作成シェル.sql
    2. # mysql -u*管理ユーザー* -p*管理ユーザーのパスワード* -Dmysql < ブログ2用DB作成シェル.sql
      • DB作成シェル参考
        /* ユーザを新規に作成します。パスワードも設定します。 */
        insert into user set user=”*ブログのDBユーザ*“, password=password(“*ブログのDBユーザのパスワード*“), host=”localhost”;
        /* wordpress用にデータベースを作成します。 */
        create database *ブログのデータベース*;
        /* データベースにユーザが常にアクセスできるようにします。 */
        grant all on *ブログのDBユーザのパスワード*.* to *ブログのDBユーザ*;
        /* 最新に更新 */
        FLUSH PRIVILEGES;
  23. ブログのDBとアカウントを確認
    1. # mysql -uroot -p*rootのパスワード*
    2. # mysql -u*ブログ1用ユーザ* -p*ブログ1用ユーザのパスワード* -D*ブログ1用データベース*
    3. # mysql -u*ブログ2用ユーザ* -p*ブログ2用ユーザのパスワード* -D*ブログ2用データベース*
  24. Apacheをインストールする。
    1. # yum -y install httpd 済みだった
  25. Apacheの設定を変更
    1. # vi /etc/httpd/conf/httpd.conf
      • ServerName *実際のマシン名*
  26. Apacheの起動
    1. # systemctl start httpd.service
    2. # systemctl list-units |grep httpd
      • httpd.service
      • loaded active running The Apache HTTP Server
    3. # systemctl list-unit-files |grep httpd
      • httpd.service disabled
    4. # systemctl enable httpd.service
      • ln -s ‘/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
    5. # systemctl list-unit-files |grep httpd
      • httpd.service enabled
  27. iptablesは使わずfirewallをそのまま使うのでファイアーウォール設定
    1. # firewall-cmd –state
      • running
    2. # firewall-cmd –list-services
      • dhcpv6-client ssh
    3. # firewall-cmd –add-service=http –permanent
      • success
    4. # firewall-cmd –list-services
      1. dhcpv6-client http ssh
  28. /var/wwwにブログのバックアップを展開
    1. /etc/httpd/conf.dにブログ1用マルチドメイン設定.confをコピー
    2. /etc/httpd/conf.dにブログ2用マルチドメイン設定.confをコピー
      • マルチドメイン設定参考
        • #NameVirtualHost *:80 ←1つめのマルチドメインのみ#を取る
          <VirtualHost *:80>
              ServerName        *ブログのURL*
              DocumentRoot    “ブログのWordPressの展開先フォルダのフルパス名
              <Directory “ブログのWordPressの展開先フォルダのフルパス名“>
                  Options Includes ExecCGI FollowSymLinks
                  AllowOverride All
                  Order allow,deny
                  Allow from all
              </Directory>
              ErrorLog logs/ブログのエラ-ログ*
              CustomLog logs/*ブログのアクセスログ* combined env=!no_log
          </VirtualHost>
  29. 再起動
    1. # systemctl restart httpd
  30. とりあえずwordpressの設定画面 適当にインストしてテーブルを作る。
  31. phpmyadminをインスト
    1. # yum –enablerepo=epel install -y phpMyAdmin php-mysql php-mcrypt
    2. PC(Windows)からphpMyAdminを使える様に変更
    3. # vi /etc/httpd/conf.d/phpMyAdmin.conf
      • Require ip 127.0.0.1 *PCのIPアドレス*
      • Require ip ::1
  32.  PHPのアップデートサイズを拡張
    1. # vi php.ini
      • post_max_size = 8M ⇒ 16M
      • upload_max_filesize = 2M ⇒ 16M
    2. # systemctl restart httpd
  33. phpmyadminからDBのバックアップをリストアする。
    1. ブラウザ(http://192.168.*.*/phpmyadmin/index.php)からDBバックアップファイルをアップロードしリストア
  34. バックアップ中に白画面になったら・・・処理時間を大幅に拡張
    1. # vi /usr/share/phpMyAdmin/libraries/config.default.php
      • $cfg[‘ExecTimeLimit’] = 300; ⇒ 3600;
  35. WordPressからバックアップファイル付きのメールがうまく送信できない場合は、ブログのURLに対応するように内部?IPアドレスをhostsに追記
    1. # vi /etc/hosts
      • *.*.*.* ブログ1URL
      • *.*.*.* ブログ2URL
  36. クライアント側をシャットダウンし、ゲスト側からブログのスナップショットを作成 ※動作中でも可能だけど、非常に重い。
    1. # virsh snapshot-create-as *ブログ鯖* *スナップ名* “**コメント**”
  37. KVMホスト起動時に一緒に起動させる場合
    1. virsh autostart *ブログ鯖*


CentOS7でKVM(仮想化)のCentOS7ゲストのひな形を作る

  1. CentOS7ネットワークインストールする方法でクライアントを作成する
  2. qcow2形式のイメージファイルを使いファイルサイズを使った分だけにする
  3. ゲストOS作成シェルファイルを作る
    1. # vi create_kvm_centos7_guest.sh
      • # CentOS7のネットワークインストールのURL
      • REPOS=http://ftp.riken.jp/Linux/centos/7/os/x86_64/
      • # KVM上での名前
      • IMAGE_NAME=CentOS7.0
      • #virt-installでインストールする
      • virt-install \
          --name ${IMAGE_NAME} \
          --ram 1024 \
          --disk path=/var/lib/libvirt/images/${IMAGE_NAME}.qcow2,size=20,format=qcow2 \
          --vcpus=1 \
          --os-type linux \
          --os-variant=rhel7 \
          --nographics \
          --location="$REPOS" \
          --bridge=br0 \ ※追記 virbr0を削除しbr0で接続している場合
          --extra-args='console=tty0 console=ttyS0,115200n8 serial'
      • ※ディスク容量を20GBに指定するオプション(size=20, )が抜けていた。
  4. ゲストOS作成
    1. # sh ./create_kvm_centos7_guest.sh
    2. — nographicsでは都合が悪いらしく、
      途中で1:vncか2:テキスモードとか聞いてくるので1:vncを選択。
      パスワードは空。
    3. vncクライアントを起動し、
    4. VNC Server:に
      画面に表示されていたIP:画面番号(192.168.*.*:*)を入力して【Connect】ボタンを押す。
      普通にインストール再起動。ここでvnc終わり
    5. 再びコンソールモード
    6. ホストrootでログイン
      # ip addr

      • 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

        2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
        inet 192.168.*.*/24 brd 192.168.*.255 scope global dynamic eth0
    7. クライアント側をシャットダウン
      # shutdown -h now
    8. ホスト側からゲストを起動
      # virsh start CentOS7.0
  5. クライアント側に変わり
  6. 全般的な更新+α
    # yum -y update
    # yum -y install yum-cron
    # systemctl start yum-cron
    # systemctl enable yum-cron
  7. selinuxをオフ
    # setenforce 0
    # getenforce

    • Permitive
  8. # cd /etc/selinux
    # mv config config.org : cp config.org config
    # sudo sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
    # reboot
    # getenforce

    • Disabled ※うまくいかない場合はココ参照
  9. とりあえずツールの類一式
    • # yum -y groupinstall base “開発ツール”
  10. nkfをインスト
    • # wget “http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz” -O nkf-2.1.3.tar.gz
    • # tar zxvf nkf-2.1.3.tar.gz
    • # cd nkf-2.1.3
    • # make && make install
    • # cd
    • # rm -rf nkf-2.1.3*
    • # ln -s /usr/local/bin/nkf /usr/bin/nkf
  11. chkrootkitインストール
    1. ※元ネタ: http://centossrv.com/chkrootkit.shtml
    2. #chkrootkitダウンロード
      1. # wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
      2. # tar zxvf chkrootkit.tar.gz
    3. chkrootkitを移動
      1. # mkdir -p ~/bin && mv chkrootkit-0.50/chkrootkit ~/bin
      2. # rm -rf chkrootkit*
      3. # chkrootkit | grep INFECTED
        • Searching for Suckit rootkit… Warning: /sbin/init INFECTED
    4. chkrootkit実行スクリプトを毎日自動実行されるディレクトリへ作成
    5. # vi /etc/cron.daily/chkrootkit
      • #!/bin/bash
      • PATH=/usr/bin:/bin:/root/bin
      • TMPLOG=`mktemp`
      • # chkrootkit実行
      • chkrootkit > $TMPLOG
      • # ログ出力
      • cat $TMPLOG | logger -t chkrootkit
      • # SMTPSのbindshell誤検知対応
      • if [ ! -z “$(grep 465 $TMPLOG)” ] && \
        • [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
      • sed -i ‘/465/d’ $TMPLOG
      • fi
      • # upstartパッケージ更新時のSuckit誤検知対応
      • if [ ! -z “$(grep Suckit $TMPLOG)” ] && \
        • [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then
      • sed -i ‘/Suckit/d’ $TMPLOG
      • fi
      • # rootkit検知時のみroot宛メール送信
      • [ ! -z “$(grep INFECTED $TMPLOG)” ] && \
        • grep INFECTED $TMPLOG | mail -s “chkrootkit report in `hostname`” root
      • rm -f $TMPLOG
    6. # chmod 700 /etc/cron.daily/chkrootkit
  12. chkrootkitで使用する安全なコマンドの確保
    1. chkrootkit使用コマンド退避先ディレクトリ作成
      • # mkdir chkrootkitcmd
    2. chkrootkit使用コマンドを退避先ディレクトリへコピー
      • # cp `which –skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/
    3. 試してみる
      1. # chkrootkit -p /root/chkrootkitcmd|grep INFECTED
        • Searching for Suckit rootkit… Warning: /sbin/init INFECTED
    4. 使ったコマンド圧縮して保存
      1. # zip -r chkrootkitcmd.zip chkrootkitcmd/
      2. # rm -rf chkrootkitcmd
    5. FTPでchkrootkitcmd.zipをバックアップし消す
      1. # rm -f chkrootkitcmd.zip
  13. yum-prioritiesプラグイン導入
    1. # yum -y install yum-plugin-priorities
    2. # vi /etc/yum.repos.d/CentOS-Base.repo
      • enabled=1
      • を追記
  14. RPMforgeリポジトリ導入 ← 2016年7月20日頃から使用不可
    1. # wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
    2. # rpm -ivh rpmforge-release-*.rpm
    3. # rm -f rpmforge-release-*.rpm
    4. # yum -y update rpmforge-release
  15. EPELリポジトリ導入
    1. # yum install epel-release
    2. # cd /etc/yum.repos.d
    3. # ls
    4. # vi epel.repo
      • enabled=1 -> enabled=0
    5. # yum –enablerepo=epel list
  16. Clam AntiVirusインストール
    1. # yum -y install clamd
    2. # chkconfig clamd on
    3. # sed -i ‘s/^Example/#Example/g’ /etc/freshclam.conf
    4. # freshclam
    5. # clamscan –infected –remove –recursive
  17. NTPサーバーインストール
    1. # yum -y install chrony ※不要
    2. # vi /etc/chrony.conf
      • server 0.centos.pool.ntp.org iburst
      • ・・・
      • server 3.centos.pool.ntp.org iburst
    3. ↓ 時刻同期先NTPサーバーを変更
      • # 日本標準時を提供しているNTPサーバー
      • server ntp.nict.jp iburst
      • # 上記サーバーと直接同期しているNTPサーバー
      • server ntp.jst.mfeed.ad.jp iburst
      • # プロバイダのNTPサーバー※無ければ設定不要
      • server プロバイダのNTPサーバー名 iburst
    4. 手動で時刻を補正(2回)
      1. # ntpdate ntp.nict.jp
      2. # ntpdate ntp.nict.jp
    5. サービスを登録
      1. # systemctl start chronyd
      2. # systemctl enable chronyd



top