自宅サーバのOSを3年ぶりに新調。ubuntuに変更した。そして、とっても簡単にできたので、レポートしてみる。
できたもの
- LAMP
- postfix(メールサーバ)
- samba(ファイルサーバ)
1.入手
2.インストール
CDを入れてインストール。
サーバ版だと、最初にどんなシステムを入れるか、聞いてくる。
LAMP、Samba、Mail、SSH(あったっけ?)を選択した。
最初にユーザも作る。
これだけで、もうSSHでアクセス可能。さっそくSSHで外部からアクセスして、スーパユーザになる。
$sudo -s
3.ネットワークの設定(IPを固定する)
参考:http://park15.wakwak.com/~unixlife/linux/de-network.html
/etc/network/interfaces
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp
と、最初はDHCPになっているので、これをIP指定に変更
# The loopback network interface iface lo inet loopback auto lo # The primary network interface iface eth0 inet static address 192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 auto eth0
最後にネットワークを再起動
#/etc/init.d/networking restart
4.メールサーバpostfix
すでにインストールされている。されてないときは、インストールする。
#aptitude install postfix
/etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP biff = no # appending .domain is the MUA's job. append_dot_mydomain = no readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache myhostname = 74street.ddo.jp mydomain = 74street.ddo.jp alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $mydomain mydestination = $myhostname,localhost.$mydomain,$mydomain relay_domains = $mydomain relayhost = [mail.so-net.ne.jp]:587 mynetworks_style = subnet mynetworks = 192.168.0.0/24,127.0.0.0/8 inet_interfaces = all # so-net op25b smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/ispauth smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = PLAIN
最初から、tlsやらsslの設定がされている様子。ちなみに、うちのプロバイダ、plalaはリレーサーバに送らないと外にメールを送れない。この設定だと外部からSMTPは利用できないんだけど、別に良いよね。
/etc/postfix/ispauth
[mail.so-net.ne.jp]:587 (SMTPユーザ):(SMTPパスワード)
# chmod 640 /etc/postfix/authinfo # postmap /etc/postfix/authinfo
メールクライアントはThunderbirdで、SSLを有効にする、で受信できた。
5.apache2
初のapache2! 今までは1しか使ったことがなかった。
基本的に既に設定済み(既に動いている)。自分なりの設定変更したいところだけを変える。
ドキュメントルートディレクトリの変更
「/var/www」から「/var/www/html」に変更したい。基本的に、スクリプトは/var/wwwに置いて、そのうちwebでアクセスするものには、/var/www/htmlにシンボリックリンクを置いて使うようにしている。
/etc/apache2/sites-available/default
DocumentRoot /var/www/html
Options FollowSymLinks AllowOverride None Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all
ScriptAlias /cgi-bin/ /var/www/cgi-bin/AllowOverride None AddHandler cgi-script .cgi .pl .py Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all
- DocumentRootでルートディレクトリを設定
- cgiを実行するためのディレクトリを/var/www/cgi-bin/に変更。
- cgiとみる拡張子の設定をここに書いてしまう。
- OptionsのIndexesは削除。これがあると、ディレクトリ構造が見えてしまう。
- AllowOverrideをAllにしておくと、.htaccessで変更できる。危険?
/var/wwwの権限
wwwの変種権限を最小に。編集するのは、minami。apache2はwww-dataというユーザで実行されているっぽい。よって、所有権をminamiに、グループをwww-dataにして、グループは必要なところ以外閲覧権限にする。
#chown -R minami:www-data /var/www #chmod -R 755 /var/www
minamiをwww-dataグループに追加。
#gpasswd -a minami www-data
6.PHP
基本的に、LAMPとしてインストールされているので、自分が必要な部分を追加するだけ。
#aptitude install php-pear
/etc/php5/apache2/php.ini
memory_limit = 128M
eAcceleratorを入れる
参考:http://www.uetyi.mydns.jp/wordpress/linux-server/entry-437.html
Debianの場合、php50devを入れなければならないらしい。
#aptitude install php5-dev
eAcceleratorのサイト(http://eaccelerator.net/)からダウンロードしてくる。いつも、0.9.5.3を使ってる気がする。
#wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2 #tar xjvf eaccelerator-0.9.5.3.tar.bz2 #cd eaccelerator-0.9.5.3 #phpize #./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config #make #make install Installing shared extensions: /usr/lib/php5/20060613+lfs/(インストールされたディレクトリが表示される)
php.iniを書き換える(/etc/php5/aoache2/php.ini)
[eaccelerator] #インストールされたディレクトリ下のこのファイルを指定 zend_extension="/usr/lib/php5/20060613+lfs/eaccelerator.so" #キャッシュのメモリ量。単位はMB。 eaccelerator.shm_size = "128" #キャッシュファイルを置くディレクトリ。作っておくこと。 eaccelerator.cache_dir = "/tmp/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.debug = "0" eaccelerator.log_file = "/var/log/apache2/eaccelerator.log" eaccelerator.name_space = "" eaccelerator.check_mtime = "1" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "3600" eaccelerator.shm_prune_period = "120" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.keys = "shm_and_disk" eaccelerator.sessions = "shm_and_disk" eaccelerator.content = "shm_and_disk" #設定スクリプトの場所 eaccelerator.allowed_admin_path = "/var/www/html/control.php"
設定スクリプトを移動させる。このcontrol.phpは一緒に入っている。
#cp control.php /var/www/html/
パスワードの設定だけ変更しておくべし。(/var/www/html/control.php)
/** config **/ $user = "admin"; $pw = "password"; /** /config **/
#/etc/init.d/apache2 restart
7.MySQL
これもLAMPセットに入ってるというか、OSインストール時点でMySQLにrootパスワードまで設定させられる。
なんか、php5-mysqlだけ入れ直した気がする。
#aptitude install php5-mysql #/etc/init.dapache2 restart
8.Samba
めっちゃ楽だった。
WORKGROUPと表示名だけ変更(/etc/sabma/smb.conf)
workgroup = MYWORKGROUP server string = samba
あとは、以下を設定ファイル(/etc/sabma/smb.conf)に追加している。
- 共有ディレクトリ
[public] path = /var/samba_public/ comment = public browsable = yes printable = no writable = yes guest ok = yes force create mode = 777
- wwwディレクトリ
[www] comment = www path = /var/www/ public = no writable = yes
- 各人のホームディレクトリ
[homes] comment = %U's Home Directory browseable = no writable = yes
#/etc/init.d/samba restart
で、
あまりサーバっていってもシステム入ってなかった!