月別アーカイブ: 2015年9月

Ubunt14にDockerをインスツール

Ubunt14にDockerをインスツールしてみる

https://docs.docker.com/installation/ubuntulinux/
http://qiita.com/koara-local/items/ee887bab8c7186d00a88

を、参考に行う

端末の環境を確認

uname -r 

3.13.0-24-generic

wget -qO- https://get.docker.com/ | sh

インストールが、完了した時
最後に表示されるメッセージする従い
ユーザーをdockerグループに追加する
(xxxxxには、ユーザ名を。。)

sudo usermod -aG docker xxxxx

インストールされたか確認

docker --version

1.8.2が、インスツールされたよう

Docker version 1.8.2, build 0a8c2e3

ubuntu14.04のコンテナを作ってみる

docker run -i -t ubuntu:14.04 /bin/bash

下記、エラーがでた

Post http:///var/run/docker.sock/v1.20/containers/create: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

一度、電源を落として、再起動してみる

docker run -i -t ubuntu:14.04 /bin/bash
d3a1f33e8a5a: Pull complete 
c22013c84729: Pull complete
  :
  : 
Digest: sha256:b08e2d47c4629f8f9d1ae11eda8fdb3aeaf3f84de7cf19e4bb9395eaad006bd9
Status: Downloaded newer image for ubuntu:14.04
root@508cb9c16fe6:/#

今度はできた。
一度、抜け

exit

イメージを確認

docker images

ubuntu 14.04
が、登録されている

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              14.04               91e54dfb1179        5 weeks ago         188.4 MB

centos6のコンテナを作ってみる

docker run -i -t centos:centos6 /bin/bash
Unable to find image 'centos:centos6' locally
centos6: Pulling from library/centos
47d44cb6f252: Pull complete 
6a7b54515901: Pull complete 
e788880c8cfa: Pull complete 
1debf8fb53e6: Pull complete 
72703a0520b7: Pull complete 
Digest: sha256:efa5de1eed533dd620ba3ae1d1f046c02a874d88860ff7a36a1dcbfe4ca8cff6
Status: Downloaded newer image for centos:centos6
   :
[root@808c71aca99f /]# 

無事、ログインできた

一度、抜け

exit

イメージを確認

docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos centos6 72703a0520b7 2 weeks ago 190.6 MB
ubuntu 14.04 91e54dfb1179 5 weeks ago 188.4 MB

centos centos6
が、登録されている

コンテナを使ってみる

docker run -i -t centos:centos6 /bin/bash

Apacheをインスツールしてみる

[root@808c71aca99f /]#
yum -y install httpd
service httpd status
service httpd start

domain name, using 172.17.0.5 for ServerName
と、表示されたので、
ブラウザから172.17.0.5を
アクセスしてみる

無事、Apacheの画面が表示

コンテナないのデータの扱いを確認してみる
(データの永続性)
試しに、データをsample.txtを作って見る

cd home
echo hello > sample.txt
ls

cat sample.txt

サンプルのデータができた

一度終了する

exit
docker run -i -t centos:centos6 /bin/bash
cd home
ls

表示されない
作成したデータは、保存されないことを確認

exit

操作した内容を、再利用するために、
イメージを作成してみる

手順は、

コンテナ起動
ターミナルで操作
ターミナルから抜け(exit)
動作済コンテナから、イメージ作成

作成イメージからコンテナ起動
内容確認

となります

docker run -i -t centos:centos6 /bin/bash
cd home
echo hello > sample.txt
ls

cat sample.txt

サンプルのデータができた

一度終了する

exit

最後に実行した、コンテナを調べる

docker ps -a -n=1
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
e8cb2d1063b4        centos:centos6      "/bin/bash"         52 seconds ago      Exited (0) 18 seconds ago                       suspicious_goldstine

最後に実行したコンテナから、CONTAINER IDを読み取り
docker commit CONTAINER ID 登録名
で、新しいイメージを作成する
CONTAINER IDは、特定できればよく、重複していなければ、上位5桁で大丈夫
登録名は、名前/機能で作成

docker commit e8cb2d user/sample

作成したイメージを確認

docker images

登録できているか一覧を確認

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
user/sample         latest              1a67f695ec62        17 seconds ago      190.6 MB
centos              centos6             72703a0520b7        2 weeks ago         190.6 MB
ubuntu              14.04               91e54dfb1179        5 weeks ago         188.4 MB

作成したイメージを起動してみる

docker run -i -t user/sample /bin/bash

作成した内容が残っているか確認する

cd /home
ls
cat sample.txt

Ubuntu Desktop のDockerを立ち上げ、VNCとSSHで接続する

参考

DockerでUbuntuデスクトップを使おう


http://qiita.com/fireowl11/items/7a22510bc8951342d031

イメージを読み込む

docker pull dorowu/ubuntu-desktop-lxde-vnc

コンテナ起動

docker run --name ubuntu -d -p 6080:6080 -p 2233:22 dorowu/ubuntu-desktop-lxde-vnc

名前が重複するとエラーになる

Error response from daemon: Conflict. The name "ubuntu" is already

一度削除してから、行う

docker rm ubuntu

ブラウザからアクセス

http://localhost:6080/vnc.html

User: ubuntu Pass: ubuntu
で、接続する
下段、一番左のアイコンをクリック
Accessories>LXTermnal
で、ターミナルを開く
SSHを確認

server ssh status

停止している

sshd is not running

本体側にて

docker ps

で、起動しているIDを調べる

CONTAINER ID        IMAGE                            COMMAND             CREATED             STATUS              PORTS                                          NAMES
a370262e8fbb        dorowu/ubuntu-desktop-lxde-vnc   "/startup.sh"       3 minutes ago       Up 3 minutes        0.0.0.0:6080->6080/tcp, 0.0.0.0:2233->22/tcp   romantic_kalam

ID(上記の場合はa37026)を指定して、sshを起動する

docker exec a37026 service ssh restart

または、ラベル名をつけたので、ラベルで指定も可能

docker exec ubuntu service ssh restart

ブラウザ側の端末で起動を確認

server ssh status

起動している

sshd is running

端末から、SSHで接続

ssh -p 2233 ubuntu@localhost

を入力また、1回めは

Are you sure you want to continue connecting (yes/no)? yes

ときかれるので、
yes
とする

Passwordを聞かれるので
ubuntu
とする

下記のような感じで
端末から、SSHにて接続ができた

ssh -p 2233 ubuntu@localhost
The authenticity of host '[localhost]:2233 ([127.0.0.1]:2233)' can't be established.
ECDSA key fingerprint is d0:dc:04:f4:cb:92:67:34:d3:6e:ba:d7:b1:2f:3d:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:2233' (ECDSA) to the list of known hosts.
ubuntu@localhost's password: ubuntu
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.2.0-77-generic x86_64)
 * Documentation:  https://help.ubuntu.com/
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
ubuntu@a370262e8fbb:~$

無事、SSHで接続ができ、
ブラウザからのDesktop画面への接続もできました

SSHが接続できたので、Chromeブラウザを組み込んでみる

SSHの端末から

sudo apt-get update
sudo apt-get install wget
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

完了したら、ブラウザの左アイコンより
internet
の項目に、Google Chrome
が追加になる
選択することで、
Google Chrome
が、起動する

端末から、Docker仮想DeskTopへのファイル転送にはrsyncで可能

まず、Docker仮想DeskTopへ、rsyncをインストール

Docker仮想DeskTopへ入り

ssh -p 2233 ubuntu@localhost

rsyncをインストール

sudo apt-get install rsync
exit

端末側から送信したいデータPath(例:xxxx.txt)を指定し転送

rsync -e "ssh -p 2233" xxxx.txt ubuntu@localhost:/home/ubuntu

仮想端末でselenium-webdriver(Ruby)を起動してみる
はじめから、インストールする

docker stop ubuntu
docker rm ubuntu
docker run --name ubuntu -d -p 6080:6080 -p 2233:22 dorowu/ubuntu-desktop-lxde-vnc
docker exec ubuntu service ssh restart
ssh -p 2233 ubuntu@localhost
    password:  ubuntu
sudo apt-get update
    ubuntu:  ubuntu
LANG=en_US.UTF-8
sudo locale-gen "en_US.UTF-8"
sudo dpkg-reconfigure locales
sudo apt-get -y install vim
sudo apt-get -y install software-properties-common
sudo apt-add-repository -y ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get -y install ruby2.2
sudo apt-get -y install ruby2.2-dev
sudo gem install selenium-webdriver
sudo apt-get -y install wget
sudo apt-get -y install unzip
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
rm google-chrome-stable_current_amd64.deb
sudo wget http://chromedriver.storage.googleapis.com/2.13/chromedriver_linux64.zip
sudo unzip chromedriver_linux64.zip
sudo cp chromedriver /usr/local/bin
sudo chmod +x /usr/local/bin/chromedriver
rm chromedriver
rm chromedriver_linux64.zip
sudo apt-get -f install
sudo apt-get -y install rsync
mkdir /home/ubuntu/ruby
exit
vi google.rb

require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
driver.navigate.to "https://www.google.com"
driver.quit
rsync -e "ssh -p 2233" google.rb ubuntu@localhost:/home/ubuntu/ruby

ssh -p 2233 ubuntu@localhost
cd ruby
ruby google.rb

仮想端末より
LXTerminal

cd ruby
ruby google.rb

Chromeが立ち上がれ、
Googleが一瞬、表示されれば完了

Ubuntu 14にssh サービスを立ち上げる

Ubunt 14で、

sshに接続するために
sshサービスを立ち上げてみた

openssh-serverをインストールする

sudo apt-get install openssh-server 

サービスを確認する

sudo servic ssh status

サービスを起動する

sudo servic ssh start

接続を確認する
SSHで、ローカルから、自分に入ってみる

ssh localhost

サービスを停止する

sudo servic ssh stop

電源を入れ直し、サービスを確認すると

sudo servic ssh status

ssh start/running, process 2156
起動状態にある

外部からのアタックがないように
起動は、手動としたい

http://server-setting.info/ubuntu/ubuntu-stop-sshd.html
を参考に
/etc/init/ssh.conf

start on filesystem
を、コメントアウトとのこと

start on filesystem
探してみたが

grep -n 'start on filesystem' /etc/init/ssh.conf

見当たらない

http://www.server-world.info/query?os=Ubuntu_14.04&p=initial_conf&f=4
を参考に、
start onで探してみる

grep -n 'start on' /etc/init/ssh.conf

7: start on runlevel [2345]

これをコメントアウトしてみる

vi /etc/init/ssh.conf

7行目の先頭に#を挿入
grep -n ‘start on’ /etc/init/ssh.conf
[/html]
7:#start on runlevel [2345]

電源を入れなおし、

sudo servic ssh status

にて確認
ssh stop/waiting
無事、停止している

一応、起動を確認する

sudo servic ssh start

ssh start/running, process 2156

落ちていな、数分後、再度確認

sudo servic ssh status

ssh start/running, process 2156

問題なし
確認後、停止しておく

sudo servic ssh stop

ssh stop/waiting

Ubunt14 へvagrantをインストール

ubuntu 14(64Bit) にVagrantをインストールします

VagrantのDownloadページより対象のパッケージを見つける
http://www.vagrantup.com/downloads.html
から対象のバージョンをみつける

Ubunt14の64-bit

右クリックよりコピペする
https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.deb

$ wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.deb
$ sudo dpkg -i vagrant_1.7.4_x86_64.deb

インストールしたか確認してみます

$ vagrant --version
Vagrant 1.7.4

virtualboxをインスツールする

$ sudo add-apt-repository ppa:ikuya-fruitsbasket/virtualbox
$ sudo apt-get update
$ sudo apt-get install virtualbox virtualbox-guest-additions-iso

バージョンを確認する

VBoxManage -v

4.3.26_Ubuntur98988

Vagrantで仮想OS CentOS6.6を作ってみる

vagrantbox.esから仮想化対象のOSを選択
http://www.vagrantbox.es/

CentOS 6.6 x64 (Minimal, VirtualBox Guest Additions, Puppet 3.7.5 – see here for more infos)
VirtualBox

を複写する
https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.0.0/centos-6.6-x86_64.box

イメージを取り込む

$ vagrant box add CentOS6_6_x64
https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.0.0/centos-6.6-x86_64.box
$ vagrant box list
CentOS6_6_x64 (virtualbox, 0)

作業用のエリアをローカル側に準備する

$ mkdir centos66
$ cd centos66

仮想マシンを起動

$ vagrant init CentOS6_6_x64
$ vagrant up

SSHで、接続してみる

$ vagrant ssh

仮想マシンを終了する

$ vagrant halt

Apacheをインスツールしてみる

ポートの割り振りを行う

vi Vagrantfile

24行あたりが、それらしいコメントなのでその下に

config.vm.network :forwarded_port, guest: 80, host: 8880

を追加
i(挿入)で、上記をコピペ(Ubuntuの場合 Shift+Ctr+Y)し
Esc+:wqで上書き終了
[/html]
  # config.vm.network :private_network, ip: “192.168.33.10”
config.vm.network :forwarded_port, guest: 80, host: 8880


vagrantを起動する

$ vagrant up

起動時
==> default: Forwarding ports…
default: 80 => 8880 (adapter 1)
default: 22 => 2222 (adapter 1)
を確認

   :
   :
==> default: flag to force provisioning. Provisioners marked to run always will
still run.
で起動完了

SSHで端末に入る

$ vagrant ssh

apacheをインストールする

yum -y install httpd
読み込んだプラグイン:fastestmirror
このコマンドを実行するには root である必要があります。

rootでないとだめ

su

passはvagrant
にて、rootになる

yum -y install httpd
service httpd start

で、起動する

ブラウザから
http://localhost:8880
で、アクセスし、開始画面が出れば完了

新ConoHaで、yumができない

新ConoHaで、
CentOS 6.6 64bit
を選択
インスタンスを作り
sshにて接続し
yumを行ったところ、接続できない場合が発生

例 yum -y install telnet

確認のために
dig mirrorlist.centos.org
を、行ったがやはり接続ができない

yum -y install telnet

こんなエラーメッセージ

読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
エラー: Cannot find a valid baseurl for repo: base

もう一度やってみる

yum -y install telnet

2回めは、こんなエラーメッセージ

読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
エラー: Cannot find a valid baseurl for repo: base

接続を確認

dig mirrorlist.centos.org

タイムアウトになる

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> mirrorlist.centos.org
;; global options: +cmd
;; connection timed out; no servers could be reached

networokの設定などで、対策ができるのかもしれないが
別のアカウントでは、問題なく動いているため、
再度、アカウントを取りなおしたて、みると、
無事、接続ができた???

インスタンスが作成される、環境の差異により発生しているような感じがする

新たに、インスタンスを作成し、不具合のアカウントは、削除を行う

いくつか、アカウントを作成し、
確認した所、3回に1回で、接続できなかった

しかし、頻度が多いので、下記を参考にして

CentOS6.2にyumでインストールしようとしたらPYCURL ERROR 6


http://utdream.org/post.cfm/yum-couldn-t-resolve-host-mirrorlist-centos-org-for-centos-6

vi /etc/resolv.conf 

を変更する

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.1

インスタンスガチャなるものあり
サービス側への不満もあるが、
初期費用がかからず、使用時間課金により、
手軽に作成、削除ができる点は評価できるのが???

Ubuntu 14.04 にRuby 2.2をインストールし、SSHにより自動操作

まず、Rubyをインストールする
端末を開き、コマンドを実行する

sudo apt-get install software-properties-common

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.2

インストールを確認

ruby -v

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux-gnu]
インストール完了を確認

参考

PPAパッケージを利用してRuby 2.2をUbuntu 14.04にインストールする


http://www.oiax.jp/rails/zakkan/apt-get-install-ruby2-1.html

作業用のフォルダ(work)を作成する

cd ~
mkdir work
cd work

SSH接続プログラム ssh01.rbを作成

参考

vi ssh01.rb

i(挿入)

#!/usr/bin/env ruby
# -*- encoding: UTF-8 -*-
require 'rubygems'
require 'net/ssh'
command="ls -la"
cmd_data=""
# Net::SSH.start('xxx.xxx.xxx.xxx', 'usrename', :password => 'password' ,:port => 22) do |ssh|
Net::SSH.start('xxx.xxx.xxx.xxx', 'usrename',:keys => ['//home/xxxx/key-2015-0x-xx-xx-xx.pem'],:port => 22) do |ssh|
 ssh.open_channel do |channel|
  channel.request_pty do |ch , success|
   raise "I can't get pty rquest" unless success
   ch.exec(command)
   ch.on_data do |ch , data|
    data = data.strip
    cmd_data << data if data.size > 0
    puts data
   end
  end
 end
end

ESC+:wqで、保存終了

実行してみる

ruby ssh01.rb

エラーになる

/usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in <code>require': cannot load such file -- net/ssh (LoadError)

net/ssh が、ないようだ

参考
http://morizyun.github.io/blog/net-ssh-net-scp-gem-ruby/
http://qiita.com/znz/items/5471e5826fde29fa9a80

gem で、bundlerをインストールする必要がある

gem -v

2.4.5.1
gemは、入っている

 bundler -v
コマンド 'bundler' は見つかりませんでした。もしかして:
 コマンド 'bundle' - パッケージ 'bundler' (universe)
bundler: コマンドが見つかりません

bundlerはないようだ。

gem install bundler

で bundler をインストール

Fetching: bundler-1.10.6.gem (100%)
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ dir_s_mkdir - /var/lib/gems

Permissionエラーなので、
sudoでないといけないようだ

sudo gem install bundler

実行すると

Fetching: bundler-1.10.6.gem (100%)
Successfully installed bundler-1.10.6
Parsing documentation for bundler-1.10.6
Installing ri documentation for bundler-1.10.6
Done installing documentation for bundler after 4 seconds
1 gem installed

となった、インストールできたようだ
一応、確認

bundler -v

Bundler version 1.10.6

インストール確認OK

Gimfileを作る

cd ~/work
bundle init
ls

Gemfile
が、できている
Gemfile
に、gem “net-ssh”を追加する

vi Gemfile

i(挿入)
gem “net-ssh”
を追加
ESC+:wqで保存終了

bundleを実行し、net-sshを読み込む

bundle

実行すると

bundle
Fetching gem metadata from https://rubygems.org/.......
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Installing net-ssh 2.9.2
Using bundler 1.10.6
Bundle complete! 2 Gemfile dependencies, 3 gems now installed.
Use </code>bundle show [gemname]` to see where a bundled gem is installed.

インストールできたようだ

再度、実行してみる

cd ~/work
ruby ssh01.rb

sshで接続し、commdを実行できた
合計 44
dr-xr-x—. 4 root root 4096 5月 24 20:05 2015 .
dr-xr-xr-x. 24 root root 4096 5月 24 07:51 2015 ..
drwxr-xr-x. 3 root root 4096 5月 4 16:22 2015 .ansible
-rw——- 1 root root 2080 9月 24 21:42 2015 .bash_history
-rw-r–r–. 1 root root 18 5月 20 19:45 2009 .bash_logout
-rw-r–r–. 1 root root 176 5月 20 19:45 2009 .bash_profile
-rw-r–r–. 1 root root 176 9月 23 12:59 2004 .bashrc
-rw-r–r–. 1 root root 100 9月 23 12:59 2004 .cshrc
drwx—— 2 root root 4096 8月 30 12:27 2015 .ssh
-rw-r–r–. 1 root root 129 12月 4 06:42 2004 .tcshrc
-rw——- 1 root root 1293 5月 24 11:44 2015 .viminfo

新ConoHaにphpMyAdmin 4.0.10.10をインストール

新ConoHaに
phpMyAdminをインスツールする

mysqlの5.1.xなどと接続するため、
phpMyAdmin 4.0.10.10
を、インストールする

端末から関連をインストールする

yum -y install httpd php php-mysql php-mbstring mysql-server

phpMyAdminの設置を/var/www/htmlの配下とする

cd /var/www/html

プログラムをダウンロードする

wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.10/phpMyAdmin-4.0.10.10-all-languages.tar.gz

解凍する

tar zxvf phpMyAdmin-4.0.10.10-all-languages.tar.gz

圧縮ファイルは削除

rm -f zxvf phpMyAdmin-4.0.10.10-all-languages.tar.gz

アタックされないように、フォルダー名を変更(dbtool)する

mv phpMyAdmin-4.0.10.10-all-languages dbtool

設置したサーバで
確認用のmysqlを起動し、アカウントを追加する

mysqlを起動する

service mysqld start

ログインしてみる

mysql -u root

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>

rootのパスワードを設定
rootpassword
を、パスワードを設定する

mysql> update mysql.user set password=password('rootpassword') where user = 'root';
mysql> flush privileges;         ← 変更を有効にする
mysql> exit;

phpMyAdmin設定ファイルを設置する

cd /var/www/html/dbtool
cp config.sample.inc.php config.inc.php

ApacheとMysqlの起動を確認のため、再起動する

service httpd restart
service mysqld restart

phpMyAdminにアクセスし、動作を確認する
mysqlに設定した、ユーザとPassを設定し「実行」を押す

xxx.xxx.xxx/dbtool

他のサーバにアクセスする場合
config.inc.phpファイルの
31行目あたりのhostにIPまたはホスト名を設定する

cd /var/www/html/dbtool
vi config.inc.php

編集モード(i)に入る
31行目あたりを変更

//$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'xxx.xxx.xxx.xxx';

ESC:wq
で、格納終了する

複数のサーバにアクセスする場合
config.inc.phpファイルの27行から66行目までを
複写し、それぞれのhost名を設定する

cd /var/www/html/dbtool
sed -n '1,66p' config.sample.inc.php > config.dumy.inc.php
sed -n '27,66p' config.sample.inc.php >> config.dumy.inc.php
sed -n '67,$p' config.sample.inc.php >> config.dumy.inc.php
cp config.dumy.inc.php config.inc.php

もし、4つのサーバに接続するなら

cd /var/www/html/dbtool
sed -n '1,66p' config.sample.inc.php > config.dumy.inc.php
sed -n '27,66p' config.sample.inc.php >> config.dumy.inc.php
sed -n '27,66p' config.sample.inc.php >> config.dumy.inc.php
sed -n '27,66p' config.sample.inc.php >> config.dumy.inc.php
sed -n '67,$p' config.sample.inc.php >> config.dumy.inc.php
cp config.dumy.inc.php config.inc.php

として、HostにIPまたは、Host名を設定する

新しいConoHaで確認用サーバを立ち上げる

既存のサーバの確認用として
新しいサーバを立ち上げてみる

既存のサーバから、コンテンツを複写してみます

1,VPSサービスを登録する
ConoHaのサービスは、CentOS 6.6 64bit
SSHキーを使用
とします。

接続許可ポート IPv4
全てのチェックを外し
SSH,メール(25/110/143/465/587/993/995)
にチェックを入れる
ネームタグに分かりやすい文言を入れ
作成する

2,SSHで接続を確認する
サイドメニュー[サーバ]>アカウント(作成した)を選択>[VPS設定]

から、作成したサーバのIPアドレスを確認し
端末から

ssh -i /home/xxxx/key-2015-0x-xx-0x-xx.pem root@xxx.xxx.xxx.xxx

で、SSHに接続する
xxx.xxx.xxx.xxxには、新しいIPを
key-2015-0x-xx-0x-xx.pem
は、公開キーをローカルにダウンロードし
属性を
-r——–
にしておきます。

3,Webサーバ設置(apache)
httpdがインストール済か確認する

httpd -v

-bash: httpd: コマンドが見つかりません

httpdをインストールする

yum -y install httpd

インストールが完了したら、状態を確認し

service httpd status

httpd is stopped

Apacheを起動する

service httpd start

ブラウザより確認

http://xxx.xxx.xxx.xxx  ← IPアドレス

Apacheの画面を確認する

http://xxx.xxx.xxx.xxx/test1.htm  ← IPアドレス

エラー画面を確認する

Not Found
The requested URL /test1.htm was not found on this server.
Apache/2.2.15 (CentOS) Server at xxx.xxx.xxx.xxx Port 80

テストコンテンツを作成する

echo "<html><hr>hello<hr></html>" > /var/www/html/test1.htm

再度アクセスする

http://xxx.xxx.xxx.xxx/test1.htm  ← IPアドレス

正しく表示される


hello


PHPテストコンテンツを作成する

echo "<?php phpinfo(); ?>" > /var/www/html/test1.php

アクセスする

http://xxx.xxx.xxx.xxx/test1.php  ← IPアドレス

画面にそのまま、表示される(TestFirstぽくやってみる)

phpがインストール済か確認する

php -v

-bash: php: コマンドが見つかりません

phpをインストールする

yum -y install php

もう一度

php -v

今度は、

PHP 5.3.3 (cli) (built: Jul  9 2015 17:39:00) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

コンテンツを表示してみる

http://xxx.xxx.xxx.xxx/test1.php  ← IPアドレス

やはり、ソースのまま、表示される
Apacheを再起動する

service httpd restart

再度アクセスしてみる

http://xxx.xxx.xxx.xxx/test1.php  ← IPアドレス

うまく表示された

コンテンツをサーバ間で複写する

rsync -a usrexx@xxx.xxx.xxx.xxx:/var/www/html/ /var/www/html/

サーバ間の複写なので、高速です

Webからコンテンツの動作確認を行う

timezoneのエラーが発生

Warning: strftime(): It is not safe to rely on the system's timezone settings

エラーがでたので、date.timezoneを修正

/etc/php.ini

date.timezone = Asia/Tokyo
を、
date.timezone = Asia/Tokyo
に、変更する

date.timezoneを探す

grep -n date.timezone /etc/php.ini

945:; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
946:;date.timezone =

下の946行目

一応、内容を確認して

sed -n '946p' /etc/php.ini

行指定で変更し

sed -i -e '946c\date.timezone = Asia/Tokyo' /etc/php.ini

再度確認する

sed -n '946p' /etc/php.ini

Apachを再起動し

service httpd restart

エラーがなくなったかを確認する

MDB2 Error: not found
のエラーになった

ライブラリィーを追加する

yum -y install php-mysql
yum -y install php-mbstring
service httpd restart

エラーがでなくなったか
Webで、確認する

未入力変数警告の表示停止対策
Notice: Undefined variable: xxxx in
と、表示される部分を非表示にする

ファイルの
/etc/php.ini
中の
error_reporting = E_ALL & ~E_DEPRECATED

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
に変更する

grep -n 'error_reporting =' /etc/php.ini

513:error_reporting = E_ALL & ~E_DEPRECATED

513行目なので

sed -n '513p' /etc/php.ini

で、確認し、行指定で変更し

sed -i -e '513c\error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED' /etc/php.ini

(行数を間違えないように)

修正後、再度確認し

sed -n '513p' /etc/php.ini

Apachを再起動し、Webでエラーがでなくなったかを確認する

service httpd restart

新しいConoHaでfilezillaで接続する

あらかじめ、キーを登録する

編集>設定>接続>SFTP>鍵ファイルを追加
変換しますか
yes

よく利用するフォルダーへ格納する

参考
https://www.conoha.jp/conoben/archives/9290

ホスト新規登録

ホスト IP を設定
プロトコール:SFTP
ログオンの種類:通常
ユーザ:xxxx
パスワード:xxxxx

新しいConoHaでSSHで接続する

コントロールパネルより、公開キーをダウンロードする

ダウンロードは1回だけなので、
一度、ダウウンロードした場合は、ローカルで複写し
端末へ移動する

例:
/home/(ユーザ)/key-2015-05-xx-xx-xx.pem

属性を、
所有者:アクセス 読み込み専用
グループ:なし
その他:なし
にする

端末より

ssh -i /home/(ユーザ)/key-2015-05-xx-xx-xx.pem root@xxx.xxx.xxx.xxx

新しいConoHaでメールサーバを立ち上げる

新しいConoHaでメールサーバを立ち上げる

1,VPSサービスを登録する
ConoHaのサービスは、CentOS 6.6 64bit
SSHキーを使用
とします。

接続許可ポート IPv4
全てのチェックを外し
SSH,メール(25/110/143/465/587/993/995)
にチェックを入れる
ネームタグに分かりやすい文言を入れ
作成する

2,SSHで接続を確認する

ssh -i /home/xxxx/key-2015-0x-xx-0x-xx.pem root@xxx.xxx.xxx.xxx

3,dovecotとpostfixの設定を一括で行う

dovecotをインストール

yum -y install dovecot

postfixの設定ファイルを変更

作業用データと(例:main.cf2)
バックアップを取る(例:main.cf3)

cd /etc/postfix/

cp main.cf main.cf2
cp master.cf master.cf2

cp main.cf main.cf3
cp master.cf master.cf3

ホスト名の設定を行う
xxxxx.com
は、設定のホスト名にする

sed -i -e '76c\myhostname = xxxxx.com' main.cf2
sed -i -e '83c\myhostname = xxxxx.com' main.cf2

設定ファイルを一括で変更する

sed -i -e '99c\myorigin = $mydomain' main.cf2
sed -i -e '116c\inet_interfaces = all' main.cf2
sed -i -e '119c\inet_protocols = ipv4' main.cf2
sed -i -e '164c\mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain' main.cf2
sed -i -e '264c\mynetworks = 192.168.0.0/23,127.0.0.0/8' main.cf2
sed -i -e '419c\home_mailbox = Maildir/' main.cf2
sed -i -e '569c\smtpd_banner = $myhostname ESMTP unknown' main.cf2
sed -i -e '$a\smtpd_sasl_auth_enable = yes' main.cf2
sed -i -e '$a\smtpd_sasl_local_domain = $myhostname' main.cf2
sed -i -e '$a\smtpd_recipient_restrictions =' main.cf2
sed -i -e '$a\ permit_mynetworks' main.cf2
sed -i -e '$a\ permit_sasl_authenticated' main.cf2
sed -i -e '$a\ reject_unauth_destination' main.cf2
sed -i -e '$a\mailbox_size_limit = 1073741824' main.cf2
sed -i -e '$a\smtpd_use_tls = yes' main.cf2
sed -i -e '$a\smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt' main.cf2
sed -i -e '$a\smtpd_tls_key_file = /etc/pki/tls/private/server.key' main.cf2
sed -i -e '$a\smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache' main.cf2
sed -i -e '$a\smtpd_tls_session_cache_timeout = 3600s' main.cf2
sed -i -e "17,20s/#//" master.cf2

diff main.cf main.cf2 > diffpostfix.txt
diff master.cf master.cf2 >> diffpostfix.txt

変更内容を確認

cat diffpostfix.txt

問題がなければ変更上書きする

cp main.cf2 main.cf

上書きの確認にyで答える

cp master.cf2 master.cf

上書きの確認にyで答える

正しく複写できたか確認する
diffがなければOK

diff main.cf main.cf2
diff master.cf master.cf2

dovecotの設定ファイルを変更

cd /etc/dovecot/conf.d

cp 10-mail.conf 10-mail.conf2
cp 10-auth.conf 10-auth.conf2
cp 10-ssl.conf 10-ssl.conf2
cp 10-master.conf 10-master.conf2

cp 10-mail.conf 10-mail.conf3
cp 10-auth.conf 10-auth.conf3
cp 10-ssl.conf 10-ssl.conf3
cp 10-master.conf 10-master.conf3

sed -i -e '30c\mail_location = maildir:~/Maildir' 10-mail.conf2
sed -i -e '9c\disable_plaintext_auth = no' 10-auth.conf2
sed -i -e '97c\auth_mechanisms = plain login' 10-auth.conf2

sed -i -e "19s/#//" 10-master.conf2
sed -i -e '20i    ssl = no' 10-master.conf2
sed -i -e "23,24s/#//" 10-master.conf2
sed -i -e '41c\    port = 0' 10-master.conf2
sed -i -e "44,45s/#//" 10-master.conf2
sed -i -e "89,91s/#//" 10-master.conf2
sed -i -e '91i    user = postfix' 10-master.conf2
sed -i -e '92i    group = postfix' 10-master.conf2
sed -i -e "6s/#//" 10-ssl.conf2
sed -i -e '12c\ssl_cert = </etc/pki/dovecot/certs/server.crt' 10-ssl.conf2
sed -i -e '13c\ssl_key = </etc/pki/dovecot/private/server.key' 10-ssl.conf2

diff 10-mail.conf 10-mail.conf2 > diffdovecot.txt
diff 10-auth.conf 10-auth.conf2 >> diffdovecot.txt
diff 10-ssl.conf 10-ssl.conf2 >> diffdovecot.txt
diff 10-master.conf 10-master.conf2 >> diffdovecot.txt

変更内容を確認

cat diffdovecot.txt

問題がなければ変更上書きする

cp 10-mail.conf2 10-mail.conf

上書きの確認にyで答える

cp 10-auth.conf2 10-auth.conf

上書きの確認にyで答える

cp 10-ssl.conf2 10-ssl.conf

上書きの確認にyで答える

cp 10-master.conf2 10-master.conf

上書きの確認にyで答える

正しく複写できたか確認する
diffがなければOK

diff 10-mail.conf 10-mail.conf2
diff 10-auth.conf 10-auth.conf2
diff 10-ssl.conf 10-ssl.conf2
diff 10-master.conf 10-master.conf2

4,SSLキーの作成

server.keyを作成し
パスワードを設定する
(パスワードxxxxxxは忘れないように)

cd /etc/pki/tls/certs
make server.key

Enter pass phrase:xxxxxxxx←パスコード入力
Verifying – Enter pass phrase:xxxxxxxx←パスコード再入力

opensslにパスワードを設定

openssl rsa -in server.key -out server.key

先ほど設定したパスワード(xxxxxxxx)を設定
Enter pass phrase for server.key:xxxxxxxx←パスコード入力
writing RSA key

server.csrを作成

make server.csr

Country Name (2 letter code) [XX]:JP(例:JP)
State or Province Name (full name) [](例:Tokyo)
Locality Name (eg, city) [Default City]:(例:Shinjuku)
Organization Name (eg, company) [Default Company Ltd]:(例:xxxx.com)
Organizational Unit Name (eg, section) []:(例:admin)
Common Name (eg, your name or your server’s hostname) []:(例:xxxx.com)
Email Address []:(例:webmaster@xxxx.com)
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:(空)
An optional company name []:(空)

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

所定のフォルダーに複写

cp /etc/pki/tls/certs/server.crt /etc/pki/dovecot/certs/server.crt
cp /etc/pki/tls/certs/server.key /etc/pki/dovecot/private/server.key
cp /etc/pki/tls/certs/server.key /etc/pki/tls/private/server.key

複写されたことを、確認

diff /etc/pki/tls/certs/server.crt /etc/pki/dovecot/certs/server.crt
diff /etc/pki/tls/certs/server.key /etc/pki/dovecot/private/server.key
diff /etc/pki/tls/certs/server.key /etc/pki/tls/private/server.key

saslauthdを起動

chkconfig saslauthd on && service saslauthd start

5,ドメイン名の設定を行う

ドメイン名は、お名前.comなどで、
DNS登録は、お名前.com側に、
ConoHaのDNSを登録

お名前側で、
ドメインNavi
ネームサーバの設定にて、
他のネームサーバを使用から
ConoHaのDNSサーバを設定する

お名前で取得したドメイン名をConoHa側に登録
新規ドメインの場合
サイドメニュー[DNS]>[+追加]
登録済の場合
サイドメニュー[DNS]>[登録済ドメイン選択]
属性追加または編集
・A(通常)   XXX.XXX.XXX.XXX
・MX      ポイント先 xxx.com(ドメイン名) 優先度10
・TXT     v=spf1 +ip4:xxx.xxx.xxx.xxx ~all

VPS設定の
IPアドレス 逆引きホスト名にドメイン名を登録する
サイドメニュー[サーバ]
対象VPS選択
[VPS設定]>[逆引きホスト名]右編集アイコン選択
ドメイン登録

6,Hostnameの変更

hostname

で、現状を確認
xxx.xxx.xxxx.xxx
IPで表示される

設定ファイルを変更する

vi /etc/sysconfig/network

i(挿入モード)で、変更
変更前
HOSTNAME=localhost.localdomain

変更後
HOSTNAME=xxxx.com
に変更
:wq Enter で終了

サーバを再スタート

shutdown -r now

または、
ConoHaのコントロールパネルで、再起動ボタンを押す

再起動後、変更されたか確認
再起動のため、SSHは切断されるため、
しばらくしてから、再度接続する

hostname

で、確認
xxxx.com
設定内容に変更された事を確認

7,メールアカウントの作成
メールアカウントを作成します
メール用のユーザとパスワードを設定

ユーザの追加

useradd userxxxx ← 新規ユーザ名

パスワード設定

passwd userxxxx

ユーザー userxx のパスワードを変更。
新しいパスワード:xxxxx ← パスワードを設定
新しいパスワードを再入力してください:xxxxx ← 確認で再度入力
passwd: 全ての認証トークンが正しく更新できました。

8,メールポートの開放
ConoHa
コントロールパネルから開放を設定

9,サービスの起動

service postfix restart
service dovecot start

10,OS再起動時、サービスの自動起動設定

chkconfig dovecot on

11,送信確認

mail xxxx@xxxx.com  ← 確認できるメールアドレスを指定

Subject:メールテストです ←題名を入力 
メールの送信確認を行います ← 本文を入力
よろしくお願いします
. ← .のみで、本文終了

送信されたかの確認
(rootの場合、root@ドメイン で送信されます)

メールアカウントで送信確認

ユーザに切り替える

su xxxxxx ← ユーザ名
mail xxxx@xxxx.com  ← 確認できるメールアドレスを指定

Subject:メールテストです ←題名を入力 
メールの送信確認を行います ← 本文を入力
よろしくお願いします
. ← .のみで、本文終了

送信されたかの確認
(ユーザ名 xxxx@ドメイン で送信されます)

rootに戻り

exit

外部から、作成した、メールアカウントに
メールを送信し、
メールが届くか確認する

外部から、作成アカウントのメールを送信する

メールが届いているか確認する

ls /home/(ユーザ名)/Maildir/new

参考;
メールを受信しないと
/home/(ユーザ名)/Maildir/
のフォルダーは作成されない

外部のメールソフトで接続すると
受信のメールは
/Maildir/new
から
/Maildir/cur
へ移動する

届いたメールの内容を確認

cat /home/(ユーザ名)/Maildir/new/xxxxx.Vfdyyyy.xxx.com:2

telnetで確認

telnetをインストール

yum install -y telnet

localhost ポート 25で接続

telnet localhost 25

Trying ::1…
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 xxxxx.com ESMTP unknown
HELO xxxxxx.com ← 入力
250 xxxxx.com
MAIL From: userxx@xxxxx.com ← 送信元を入力
250 2.1.0 Ok
RCPT To:userxx@gmail.com ← 宛先を入力
250 2.1.5 Ok
DATA ← データ入力指定
354 End data with .
よろしくお願いします ← データ入力
. ← .でデータ入力終了を指定
250 2.0.0 Ok: queued as 93735A0D5E
quit← 終了入力
221 2.0.0 Bye
Connection closed by foreign host.

パスワード設定を確認
user_name\0user_name\0user_pass
の中の
user_name
user_pass
を、実際に置き換えて入力

perl -MMIME::Base64 -e 'print encode_base64("user_name\0user_name\0user_pass");'

dXNlcl9uYWXXXXXQB1c2VyX3BFertD=

パスコードを確認

telnet localhost 25

Trying ::1…
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 xxxxx.com ESMTP unknown
EHLO localhost ← localhostで指定
250-xxxxx.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN dXNlcl9uYWXXXXXQB1c2VyX3BFertD= 調べたパスコードをはりつける
235 2.7.0 Authentication successful
quit← 終了入力
221 2.0.0 Bye
Connection closed by foreign host.

・235 2.7.0 Authentication successful
にならない場合、
503 5.5.1 Error: authentication not enabled
などの場合

サービスの起動を確認

service postfix status
service dovecot status
service saslauthd status

変更した設定ファイル、その他、を正しく複写したか
を確認

cd /etc/postfix/
diff main.cf main.cf2
diff master.cf master.cf2
cd /etc/dovecot/conf.d
diff 10-mail.conf 10-mail.conf2
diff 10-auth.conf 10-auth.conf2
diff 10-ssl.conf 10-ssl.conf2
diff 10-master.conf 10-master.conf2
diff  /etc/pki/tls/certs/server.crt /etc/pki/dovecot/certs/server.crt
diff  /etc/pki/tls/certs/server.key /etc/pki/dovecot/private/server.key
diff  /etc/pki/tls/certs/server.key /etc/pki/tls/private/server.key

などを確認して下さい
diffで、表示がなければ、正しく表示されている
もし、複写の忘れがあれば、複写し再起動をする

service postfix restart
service dovecot restart
service saslauthd restart

サービスの自動起動の設定を確認
(ランレベル 2,3,4,5がONになっているか

chkconfig --list postfix
chkconfig --list dovecot
chkconfig --list saslauthd

自動起動時設定がなければ設定

chkconfig dovecot on
chkconfig saslauthd on

server.crt
server.key
を、一応確認

ls /etc/pki/tls/certs/server.crt -l
ls /etc/pki/dovecot/certs/server.crt -l
ls /etc/pki/tls/certs/server.key -l
ls /etc/pki/dovecot/private/server.key -l
ls /etc/pki/tls/private/server.key -l

12,メーラからの動作確認
メーラへの設定
Thunderbirdの場合

受信サーバ IMAP XXXX.com 993 SSL/TLS 通常のパスワード認証
送信サーバ SMTP XXXX.com 465 SSL/TLS 通常のパスワード認証

で、設定を行う