初期インストール

久しぶりのサーバーインストール。まえのように、ハードディスク2台に、RAID1 組んでインストール。廃盤になっちゃたけど  がわたしの教科書。
途中のサーバーはなにもインストールせずに終了。まずはともあれ、vimとsshをいれる。
$ sudo apt-get install vim ssh
でもって、ネットワークを固定アドレスに変更
$ sudo vi /etc/network/interfaces
通常、LAN内のパソコンのIPアドレスは、ルーターによってその都度、IPアドレスが振られます。サーバーは、その場所を特定する必要が多いため、IPアドレスを固定に設定します。LAN内のIPアドレスは 192.168.99.・・・ という様になって、最後の数字が順番に振られます。他のパソコンと競合しないために、LAN内のパソコンなどの無線機器数+3~4程度の数字を設定したほうが良さそう。(最近無線機器が多いしね)
iface eth0 inet dhcp
ここを以下の様に直します。99 の部分は ご家庭のルーター設定に左右されます。また、一行めの最後の数字は同じルーター内にあるパソコンのそれぞれ振られる番号なので、パソコンの台数等により異なります。ルーターの設定等でご確認ね。
iface eth0 inet static
   address 192.168.99.10
   netmask 255.255.255.0
   gateway 192.168.99.1
   dns-nameservers 192.168.11.8 202.238.95.24     //一例ね。プロバイダーのDNSサーバーを並べて書くとか、LAN内のDNSサーバーを書くとか
   dns-serch dns.so-net.ne.jp             //so-net の場合だけど、これでよいか不明。この行なくても動くかもね。
ここの記述は、12.04からStatic(固定IP)の場合には、変わった模様。インターネットつながってるのに、apt-get できなくなって、慌てて調べたよ。。。 つづいて、ネットワーク再起動
$ sudo ifdown eth0
$ sudo ifup eth0
これで、ssh でリモート接続できる様になります。リモート側からは、
$ ssh felix@192.168.99.10
の様にアクセスします。(サーバーからキーボードとモニターを外せます。)

AMPP設定

Apacheを実行する最低限の権限を有するユーザーを設定
$ sudo adduser flabo
[password]
(名前、部屋番号、等を聴聞してきますので必要に応じて入力します。)
つづいて パッケージインストール
$ sudo apt-get install php5 libapache2-mod-php5  mysql-server php5-mysql php5-sqlite phpmyadmin postgresql php5-pgsql phppgadmin

Apacheの設定

ウェブページを設置する /virtual 以下のディレクトリを作成します。この /virtual は、最終的にはいくつかのウェブページの バーチャルホストになることを想定しています。
sudo mkdir /virtual
sudo mkdir /virtual/www
sudo mkdir /virtual/log
sudo mkdir /virtual/log/apache2
sudo chown -R flabo:flabo /virtual/*
wwwがapacheのルートになるので、flabo にオーナー変更。また、log は Apacheのログディレクトリになる
$ sudo vi /etc/apache2/sites-enabled/000-default
ここで、以下の様に設定
<VirtualHost *:80>
      ServerAdmin webmaster@localhost

      DocumentRoot /virtual/www/             //ルートに変更
      <Directory />
              Options FollowSymLinks
              AllowOverride None
      </Directory>
      <Directory /virtual/www/>      //ルートに変更
              Options FollowSymLinks MultiViews    //途中のIndexes を削除
              AllowOverride None
              Order allow,deny
              allow from all
      </Directory>

      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
      <Directory "/usr/lib/cgi-bin">
              AllowOverride None
              Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
              Order allow,deny
              Allow from all
      </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log

       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn

       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ログディレクトリが外部設定になってるね。
sudo vi /etc/apache2/envvars
で22行目あたりを
export APACHE_LOG_DIR=/virtual/log/apache2$SUFFIX
てな感じに書き直し。 後ろの $SUFFIX  はなんのこっちゃ不明w   さらに独自の設定ファイルを作ります。
$ sudo vi /etc/apache2/conf.d/flabo.conf
User flabo
Group flabo
ServerName felix-labo.org:80
UseCanonicalName On
コンテンツを置く場所が /virtual/www/ で Apacheを起動するのが、そのファイルのオーナーであるflaboということになります。これで、この中のコンテンツの権限は、
$ chmod 700 -R /virtual/www
という様にユーザー以外は何もできないように設定することができます。レンタルサーバーでは決してできない方法ですが、これで、flabo を乗っ取られる以外、内部のファイルを外から変更されることがなくなります。(もちろんrootをとられてしまえば別ですが・・・)加えて万が一flaboを乗っ取られたとしても、flaboは、他のどこにも属さないユーザーなので、重大な設定ファイルが書き換えられることはありません。(不便だからといって、flabo に sudo 権限を与えたりしない様にしましょう。)
テストしてみます。
$ su - flabo
$ cd /virtual/www
$ vi ./index.html
で適当に・・・
Hello felix-labo!
とでも打って
$ logout
$ sudo /etc/init.d/apache2 restart
これで
http://192.168.99.10
などでアクセスするとちゃんと表示されると思います。

PHP設定

php.iniの内容を書き換えます。主にセキュリティ上の観点です。
sudo vi /etc/php5/apache2/php.ini
書き換える内容は以下のとおりです。コメント化をはずすだけのものもあります。
(270行目付近)
memory_limit = -1
(476行目付近)
default_charset = "UTF-8"
(877行目付近)
date.timezone ="Asia/Tokyo"   //timezone指定しないとエラーがでるときあり。
(1157行目付近)
mbstring.language = Japanese
(1167行目付近)
mbstring.internal_encoding = UTF-8
(1189行目付近)
mbstring.substitute_character = none;
反映するにはApacheリスタート
$ sudo /etc/init.d/apache2 restart

MySQL設定

実行ユーザーの設定を行います。まずはルートユーザーのパスワード設定から
$ mysql -u root -p
[password]
続いて、Webコンテンツ用のデータベース実行ユーザーを設定。
mysql> create database webkintai;
(他にも、作りたいDBがあれば、ここでつくります。)
mysql> create user flabo@localhost identified by 'pppppppq';
mysql> grant usage on *.* to flabo@localhost;
mysql> grant all on webkintai.* to flabo@localhost;
(他に作ったDBで権限をもたせたければ、ここで設定します。)
mysql> quit
簡単に解説をすると一行目でウェブページ用のデータベースを作成し、二行目で実行ユーザーを作ります。三行目で作ったユーザーに対するすべての権限を剥奪(usage)します。その後、Webkintai に対してだけすべての権限を付与します。
次に文字化け防止用に、my.cnf の設定を変更します。
$ sudo vi /etc/mysql/my.cnf
[mysqld]の最後に以下の2行を追加します。
character-set-server=utf8
skip-character-set-client-handshake
再起動して設定を有効にします
$ sudo /etc/init.d/mysql restart

phpmyadmin の設定

apt-get でいけるから なんにもするひつよう無し。 192.168.99.10/phpmyadmin の様にしてアクセス可能

phppgadmin の設定

ユーザーを追加します。phppgadmin は、postgreSQLの初期ユーザーpostgresを初期状態でログインできない様にしています。このポリシーに合わせて新たなスーパーユーザーを作成したいと思います。
$ sudo passwd postgres
(ここでパスワードを設定します。)
$ su - postgres
(以下で一般的に使用するユーザーを作ります。username を任意の名前にしてください)
postgres@mv1c3e:~$ createuser -P username
(ここでパスワード設定と権限設定をします。特にこだわらなければ、Y でよいと思います。)
$ logout
phpmyadminが、初期設定がフリーアクセスだったのに対し、phppgadminは初期設定で、自分自身しかアクセスできない様になっています。リモートアクセスは出きるようにしたいので、
$ sudo vi /etc/apache2/conf.d/phppgadmin
で、10行目付近を以下の様に変更
order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0 ::1/128
allow from 192.168.99                 //追加
# allow from all            //ここをコメントはずせば、どこからでもログイン可能
で再起動
$ sudo /etc/init.d/apache2 restart
これで晴れて /192.168.99.2/phppgadmin の様にアクセスできる様になります。

ドメイン・ネットワーク設定

サーバー/ネットワーク設定 を見てね

時刻あわせ ntp

$ sudo apt-get install ntp
$ sudo vi /etc/ntp.conf
で、 デフォルトのサーバーを日本のサーバーに変更
(18行目付近)
# more information.
#server 0.ubuntu.pool.ntp.org   //コメント化
#server 1.ubuntu.pool.ntp.org  //コメント化
#server 2.ubuntu.pool.ntp.org  //コメント化
#server 3.ubuntu.pool.ntp.org  //コメント化
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp

# Use Ubuntu's ntp server as a fallback.
#server ntp.ubuntu.com  //コメント化
リスタート
$ sudo /etc/init.d/ntp restart
時刻合わせ
$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp1.jst.mfeed. 210.173.160.56   2 u   51   64  377   13.435  -19.847   6.573
*ntp2.jst.mfeed. 210.173.160.56   2 u   41   64  377   13.552  -27.846   4.848
+ntp3.jst.mfeed. 210.173.176.4    2 u   45   64  377   13.893  -21.380   5.509
うむ。。。 あわない感じ。。。 

CPU温度調査 sensors

$ sudo apt-get install lm-sensors
で、自動?設定
$ sudo sensors-detect
ひたすら ENTER ENTER って感じ進みます。
$ sensors
と打つと。。。
coretemp-isa-0000
Adapter: ISA adapter
Core 0:           N/A  (crit = +125.0°C)
Core 1:       +43.0°C  (crit = +125.0°C)
二つコアが温度表示されないのは。。。 まいっか。。

その他