Ubuntuで自宅サーバーを建てるメモ

+再インストール&再設定するとき、これを見ればOK。
+順番通りにメモっておく。

#contents

* Linuxの教科書 [#md09ff90]
無料で公開されているlinuxの教科書
-[[Linuxサーバー構築標準教科書>http://www.lpi.or.jp/linuxtext/server.shtml]]
-[[Linuxサーバー構築標準教科書 Wiki>http://www.lpi.or.jp/linuxtext/server/]]

* Ubuntu [#v6f88a0f]
公式サイト
http://www.ubuntulinux.jp/

- Debian系Linuxディストリビューションの一つ。
- 開発にお金がかけられていて、保守体制がシッカリしており、安心して使える。
- RedHat系のFedoraやCentOSよりも操作性が良いので、OSはUbuntuでOK。
- Webサーバ用なんだけど、GUIでメンテしたいヘタレなので、Server版じゃなくてDesktop版を使う。

* OSダウンロード [#y3a1d6db]
ダウンロードURL
http://www.ubuntulinux.jp/products/GetUbuntu

- OSのISOイメージをダウンロードして、CD-Rに焼く。
- CD-Rのライティングソフトは、「Nero Express Essentials 7」を使用。
- 2010年5月21日(金)現在、Ubuntuの最新パージョンは、10.04。長期間サポートの「LTS」版になっていた。ラッキー!?

CD-Rに焼くとき、焼き方を間違えて、ISOイメージファイルをそのままコピーしてしまった!
=WindowsのエクスプローラーでCD-Rの中身を見たら「ubuntu-ja-10.04-desktop-i386-20100512.iso」というファイルが1個だけあって、インストール開始できなかった。><

&ref(nero.png);
「イメージ、プロジェクト、コピー」→「ディスクイメージ~」を選択すればOK

* OSインストール [#l1ee42b4]
Ubuntu10.04のインストールは簡単。
質問に答えていけば、ホイホイ進む。
ただし、パーティションは手動で設定する。

(参考)[[「Ubuntuで作るLinuxサーバー」(日経BPパソコンベストムック 2008/12/12発行)>http://www.amazon.co.jp/dp/4822234282/]]のp.8
&ref(book_ubuntu_server.jpg);

ディスクを「/boot」「/(ルート・パーティション)」「/home」「/tmp」「/var」とスワップ領域に分割する。

|ディレクトリ名|容量|h
| /boot | 200MB |
| / | 8GB |
| /home | 10GB |
| /tmp | 10GB |
| /var | できるだけ多く=残り全部 |
| swap | メモリの2倍 (例:1.5GB×2=3GB) |

&ref(hdd_partition.jpg);

** /boot [#m6077b2e]
/bootは、カーネルなどのシステム起動に必要なファイルを格納する場所です。
ブートローダーという起動用のプログラムが参照するため、ルート・パーティションとは分けて、常にハードディスクの先頭に配置します。
200MB程度あれば十分です。

** / [#lcf238e0]
ルート・パーティションは、Linuxコマンドやアプリケーションの実行ファイル、設定ファイルなどのサーバー運用に必要なファイルを格納する場所です。
追加のアプリケーションが無ければ、容量の増減はほとんどありません。
ただし、不足するとシステムが停止する可能性があるため、余裕を持たせる必要があります。
Ubuntuでは約2.5GBを使いますが、3倍の8GB程度を確保しておきます。

** /home [#g6335bb2]
/homeは、全ユーザーのファイルを置く作業ディレクトリです。
思わず大きなファイルをダウンロードすることもあり、ファイルのサイズやユーザー数にもよりますが、10GB程度を確保しておきます。

** /tmp [#e88f0ccc]
/tmpは、一時的な作業用に使われるディレクトリで、アプリケーションのインストール作業などに使います。
作業内容に依存しますが、10GB程度を確保しておきます。

** スワップ領域 [#n13372ba]
スワップ領域は、物理的なメモリーが足りなくなったときに利用されるディスク上の領域です。
一般的にはメモリー容量の2倍を割り当てます。

(自分のパソコンは、1.5GBのメモリーを搭載しているので、1.5GB×2=3GBのスワップ領域を確保することにする。)

** /var [#b37dae41]
/varは、Webサーバーなどで公開するファイル、各種ログファイルなどを格納する場所です。
容量が増加しやすいため、できるだけ多く容量を確保します。
上記ディレクトリの残りをすべて割り当てます。

** パーティションの種類 [#a061153a]
Linuxファイルシステムのパーティションには、
- 基本パーティション
- 論理パーティション
という2種類がある。

一つのハードディスクに、基本パーティションは4つまでしか設定できないらしい。
[[遅ればせながら - Ubuntu 10.04をインストールしました>http://d.hatena.ne.jp/Okumatsu_Hiroshi/20100519/1274255236]]
>一つのハードディスクには基本的に4つしか基本パーティションを作れないそうなのだけど、この拡張パーティションというのを利用すると見掛け上はいくつでもパーティションが作れるということです。

*** 基本パーティションにするディレクトリ [#n073efe4]
- ブートローダーが壊れたらOSが起動しなくなるので、「/boot」は、独立した基本パーティションにする。
- OSが入っている領域が壊れてもユーザーデータをバックアップできるように、「/home」は、独立した基本パーティションにする。

その他は、とりあえず「論理パーティション」でOKかな?

** ファイルシステム [#k0c450f4]
パーティションを手動で設定するとき、ファイルシステムは「ext3」を選択する。

- Ubuntuの標準ファイルシステムは、8.10以前が「ext3」で、9.04以後が「ext4」。
- 新しい「ext4」には問題点があるので、とりあえず「ext4」でなければならない理由がなければ消去法で「ext3」にしておくのが無難。

https://wiki.ubuntu.com/LucidLynx/ReleaseNotes/ja
>''ext4の利用において、特定の状況下ではこれまでよりパフォーマンスが低下します''
>Ubuntu 10.04 LTSのインストールにおいて、デフォルトのファイルシステムはext4が利用されています。
これはLinuxでよく利用されるファイルシステムの中では最新のものです。
ext4には以前のファイルシステム、たとえばext3などに比べて、幾つかのパフォーマンスチューニングのための変更が加えられています。
このファイルシステムはUbuntuでは9.04以降、デフォルトとして利用されています。
多くの場合はパフォーマンスが向上していますが、特定の負荷がかかった場合、ext3を利用している場合に比べて、著しく遅くなることが確認されています。
ファイルシステムパフォーマンスが大きく影響するアプリケーションを利用している場合は、自身の環境において、複数のファイルシステムを利用してベンチマークを取ってみることを推奨します。
>とりわけ、(訳注:アップデート・マネージャや各種パッケージ操作ツールのバックエンドとして使われている)dpkgパッケージマネージャは、ext4を利用すると顕著に遅くなることが知られています。
ServerやAlternateCDを用いてインストールを行う際、2倍程度の時間がかかることもあります。
ext4には、既存のファイルを新しいファイルで置き換えるようなリネーム処理において、一度に(atomicに)リネームする処理を行える保証がないため、リネーム処理が行われた直後に電源が切れた場合に、壊れた0バイトのファイルができてしまうことに備えて、dpkgはリネームを行う前に、まず新しいファイルをディスク上に書き出します。
この結果として、パフォーマンスが損なわれています。パッケージ処理が高速に終了することが要求される場合、代わりにext3を利用する方が良いかもしれません。

他に「btrfs」など高速なファイルシステムもあるので、新しいHDDを追加したら、おいおい試してみたらいい。

[[ファイルシステム - Wikipedia>http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0]]

* ネットワーク [#i73906ed]
自宅サーバ(Webサーバ)として使うので、LAN内でIPアドレスを固定にしておく。
- DHCP(Dynamic Host Configuration Protocol)でIPアドレスを動的に取得しない。
- IPアドレスを固定にしておく。

** IPアドレス [#j2abd42d]
ネットワークの設定には、3つのIPアドレスが必要になる。

- WebサーバのIPアドレス
- サブネットマスク
- デフォルトゲートウェイ

** Windowsのhostsファイル [#qb29b5a3]
Webサーバを再構築するとき、以前に割り当てたIPアドレスを忘れた場合、WindowsのローカルPCに設定が残っていれば、それを見ればOK

- HOSTSファイルの設定
http://vine-linux.ddo.jp/windows/hosts.php
>HOSTSファイルとは、ローカルネットワーク上のパソコンでDNSサーバーを使用せずに名前解決を行うためのファイルです。
>LAN内にWEBサーバーを立て、DNSサーバー構築していない時は、WEBサーバーの名前ではアクセスできずに、ルーターのアドレスへ転送されたりします。そこでDNSサーバーを立ち上げるよりは簡単に設定できる、HOSTSファイルの編集を行ってみましょう。

- hostsファイルはどこにあるか?
http://www.higaitaisaku.com/hosts.html
| Windows XP | C:\WINDOWS\system32\drivers\etc |
| Windows 2000 | C:\WINNT\system32\drivers\etc |

 192.168.xxx.xxx mydomain.com(←Webサーバのドメイン名)
という記述があれば、それに合わせて同じIPアドレスを割り当てたらよい。なければ新規で決める。

** デフォルトゲートウェイ [#ic53c270]
[[デフォルトゲートウェイとは 【default gateway】- IT用語辞典>http://e-words.jp/w/E38387E38395E382A9E383ABE38388E382B2E383BCE38388E382A6E382A7E382A4.html]]
>所属するネットワークの外のコンピュータへアクセスする際に使用する「出入り口」の代表となるコンピュータやルータなどの機器。

家庭内LANにおいては、ルーターのLAN側のIPアドレスのこと。
一般的には、「192.168.0.1」のような値が割り当てられている。

** サブネットマスク [#f1fc9eb6]
[[サブネットマスクとは - Wikipedia>http://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88%E3%83%9E%E3%82%B9%E3%82%AF]]
>サブネットマスクとは、IPアドレスのうちネットワークアドレスとホストアドレスを識別するための数値。
>''ネットワークアドレス''
巨大なTCP/IPネットワーク(インターネットなど)は、多数のネットワーク(サブネット)に分けて管理される。ネットワークアドレスは、これらの&color(red){ネットワークを識別するためのアドレス};である。
>''ホストアドレス''
IPアドレスのうち、ネットワークアドレス部分以外を指す。&color(red){個々のネットワーク内においてホストを定義する部分。};定められたネットワークアドレスから外れなければ、どのホストアドレスもネットワーク内で自由に利用できる。

一般的には、サブネットマスクとして「255.255.255.0」のような値が割り当てられている。

*** デフォルトゲートウェイ、サブネットマスクのネットワークの確認方法 [#s07d58de]
Windowsパソコンで、LANのデフォルトゲートウェイ、サブネットマスクのネットワークアドレスを確認できる。

-コマンドプロンプトを起動する。
-「ipconfig」というコマンドを入力する。
これで、サブネットマスク、デフォルトゲートウェイが表示される。

&ref(ipconfig.png);

** ネットワークの設定 [#nd58547d]
Ubuntu 10.04のGUIで設定する方法

-画面上部メニューから、「システム」→「設定」→「ネットワーク接続」を選ぶ。
-「ネットワーク接続」のダイアログボックス画面で、「有線」(=LANケーブルでPCを接続している場合)→LANカードの一覧から「Auto eth0」→「編集」→「IPv4設定」を選ぶ。
-「メソッド」を「自動(DHCP)」から「手動」に変更する。
-「アドレス」→「追加」→ここで上記で確認・決定したIPアドレスの値を入力する。
--アドレス=「192.168.0.123」のような値
--ネットマスク=「255.255.255.0」のような値
--ゲートウェイ=「192.168.0.1」のような値
--DNSサーバ=ゲートウェイと同じ値(または、LAN内にDNSサーバを用意しているならその値)

** 設定後の確認方法 [#k805ed6a]
- Ubuntuのターミナル画面(GNOME端末など)を起動して、「ifconfig」というコマンドを入力する。
- サーバのネットワーク設定情報が表示されるので、上記内容と一致していたら設定はOK



----------------------------------------------------------------------



* ソフトのインストール [#h70731d4]
使いたいソフト
- SSH
- LAMP(Linux+Apache+MySQL+PHP)
- phpMyAdmin
- Postfix
- DDNS
- crontab

(参考)
[[Ubuntu 10.04 Desktop 初期設定メモ>http://smdn.invisiblefulmoon.net/softwares/ubuntu/initialconfig_lucid_desktop/]]
[[Ubuntu 10.04 でインストールしたソフト、設定一覧>http://retujyou.com/2010/05/07/ubuntu-10-04-%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9F%E3%82%BD%E3%83%95%E3%83%88%E3%80%81%E8%A8%AD%E5%AE%9A%E4%B8%80%E8%A6%A7/]]

-Java
[[Ubuntu 10.04にアップグレードしたらsun-java6-sdkがなくなっていた>http://d.hatena.ne.jp/hiro_nemu/20100408/1270736275]]



----------------------------------------------------------------------



* SSH [#bbf32506]
Webサーバにリモートログインして操作するために、SSHを導入する。

** SSHのインストール [#n105c834]
-[[SSHのインストール>http://tmcosmos.org/linux/ubuntu/ubuntu1004.html]]
外からssh接続するため、SSHをインストール。
 sudo apt-get -y install ssh

-[[SSHサーバ>http://retujyou.com/2010/05/07/ubuntu-10-04-%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9F%E3%82%BD%E3%83%95%E3%83%88%E3%80%81%E8%A8%AD%E5%AE%9A%E4%B8%80%E8%A6%A7/]]
 sudo apt-get install openssh-server
/etc/ssh/sshd_config を編集
ポートを変更、 rootログインを許可しない、パスワード認証しない。
 Port 22222
 PermitRootLogin no
 PasswordAuthentication no
再起動
 sudo service ssh restart
 
-sshとopenssh-serverのパッケージの違い
[[sshパッケージ情報>http://www.linux.net-japan.info/install04.html]]
>aptitude show コマンドで、sshパッケージを情報を入手する。
sshは、openssh-client と openssh-server で構成されていることがわかる。

「ssh」=「openssh-client」+「openssh-server」とのこと。
「openssh-client」が不要なら、「openssh-server」だけをインストールする方法を選択すればOK。
いずれにしろ、「openssh-server」のアクセス制限は設定する必要があるな。

** SSHの設定 [#qee7bbca]
(参考)[[サーバーのセキュリティを強化する→その1:SSHの設定変更>http://skygarden.pgw.jp/wordpress/home-published-server/build-up-security-of-server-part1]]

SSHがインストールされている場所は、
 whereis sshd
で確認できます。

SSHサーバーの設定は、
 /etc/ssh/sshd_config
ファイルに記されています。

 $ sudo vim /etc/ssh/sshd_config
で編集します。

** 認証方式 [#b443920e]
パスワードによる認証ではなく、公開鍵による認証にする。

-WindowsマシンからリモートログインするSSHクライアントソフトには、「Poderosa」使う。
-Windowsマシンからファイル転送するSSH転送ソフトには、WinSCPを使う。

-鍵ファイルの形式は「SSH2のRSA」にする(DSAは、偽の鍵を簡単に作れる脆弱性があるらしい)。
-鍵の強度は、2048ビットにする。
-Poderosaで作った鍵を、後でWinSCP用に変換する。

** Poderosaで接続する方法 [#wadd5e60]
-Poderosaで、SSH2(ssh.com)形式のRSA暗号鍵ペア(秘密鍵と公開鍵)を作る。
-WebサーバのSSHサーバー鍵を登録する。

(参考)
[[Ubuntu/ssh(sshd) の設定 - TOBY SOFT>http://tobysoft.net/wiki/index.php?Ubuntu%2Fssh%28sshd%29%A4%CE%C0%DF%C4%EA]]
[[WindowsからSSHサーバーへリモート接続(Poderosa鍵方式ログイン編)>http://fedorasrv.com/poderosa-public.shtml]]
[[SSHクライアント Poderosa>http://www.gside.org/Gentoo/ssh/poderosa.html]]

Poderosaのツールで作った公開鍵を、USBメモリ等にコピーして、Webサーバ内に設置する。
設置場所はユーザーディレクトリ内に「.ssh」というディレクトリを作って、そこに置く。
 /home/username/.ssh/authorized_keys
パーミッションは「600」にする。=緩すぎるとダメ。

** WinSCPで接続する方法 [#xcd8bfdc]
-WinSCPで使える鍵は、PuTTY形式のみをサポートしており、Poderosaで作ったssh.com形式の鍵はそのままでは使えない。
-WinSCPに付いているツール「PuTTYgen」を使うと、形式を変換することができる。

&ref(winscp_key_format.png);

(参考)
[[PuTTYgenで公開鍵/秘密鍵を作成する>http://sourceforge.jp/projects/winscp/wiki/ui_puttygen]]
>WinSCP開発者はセキュリティの観点からRSA形式を推奨しているとのことなので、特に制限がない場合は「SSH-2 RSA」を選択すると良いでしょう。
>なお、DSA形式の鍵は内部的な脆弱性があり、「偽の署名」を簡単に作成できてしまいます。

[[PoderosaのSSH2秘密鍵からPuTTY形式の鍵を作成>http://animemo.seesaa.net/article/91960765.html]]

** IPアドレスでアクセス制限 [#gb09168e]
[[TCP Wrapperの利用>http://chibi.name/fedora/server/tcpwrapper.shtml]]
>
 # vi /etc/hosts.allow
 sshd : 192.168.1. , .home.ne.jp    ←追加
>/etc/hosts.allowに上の一行を追加します。この場合は、LAN内(192.168.1.0/24)は接続を許可、更にホスト名が.home.ne.jpのホストからは接続を許可という設定になります。/etc/hosts.allowには許可するホスト名やIPアドレスの記述を行います。複数ある場合には上記のように「,」で区切ります。
またこれはみなさんの環境に合わせて設定してください。続いて拒否をする設定を行います。
 # vi /etc/hosts.deny
 sshd : ALL ←追加
>ここでは、ALLを指定しています。この場合は、/etc/hosts.allowで許可されたホスト以外は、拒否するという設定になります。



----------------------------------------------------------------------



* Apache [#q3d259fd]
Ubuntuの上部メニューから、「アプリケーション」→「アクセサリ」→「端末」を選び、ターミナル画面を表示させる。
以下のコマンドを打つ。
 $ sudo su
 パスワード:(パスワードを入力)
 # apt-get install apache2

** .htaccessの設定 [#k06573de]
.htaccessファイルを有効にする。

+ sites-available/defaultファイルを編集する
 $ sudo vi /etc/apache2/sites-available/default
+ディレクティブの「AllowOverride None」のNoneをAllに変更する
 <Directory /var/www/>
     :
     # AllowOverride None # 変更前
     AllowOverride All # 変更後
     :
 </Directory>

これで、.htaccessファイルが有効になる。

(参考)htaccessの有効化
- http://memo.mania.vc/archives/1108
- http://d.hatena.ne.jp/stfuawsc/20090216/1234786854
- http://blog.veryposi.info/server/server-setup/ubuntu-apache-mod_rewrite/
- http://www.kotodama.jp/blog/index.php/2007/07/03/ubuntua_apta_sa_ca_sa_sa_a_fa_la_a_apach
- http://d.hatena.ne.jp/kasahi/20090202/1233598591
- http://showzine.info/blog/memo/page/ubuntu-server%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Bapache%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB/

** mod_rewriteの設定 [#ve153d71]
mod_rewriteを有効にする。
 $ sudo a2enmod rewrite

** バーチャルドメイン [#d9ed75ce]
-基本形
Apache設定ファイル「default」をいじる方法

設定ファイルの場所
 /etc/apache2/sites-available/default

設定ファイルで、以下のようにバーチャルホストの設定を追記する。
 <VirtualHost *>
    DocumentRoot /var/www/sub
    ServerName sub.domain.com
 </VirtualHost>
-先頭から読み込んでいくので、記述の順番を考慮する。

設定ファイルを再読込みして、変更内容を有効にする。
 /etc/init.d/apache2 force-reload

Apacheの再起動
 /etc/init.d/apache2 restart

-応用形
または、以下の方法にする。
別のApache設定ファイル「my-site」を作る方法
(参考)[[Ubuntu Tips/専用サーバー/マルチサイト構築(Apacheバーチャルホスト設定)するには>https://wiki.ubuntulinux.jp/UbuntuTips/DedicatedServer/ApacheVirtualHost]]

*** バーチャルドメインの設定ファイル [#u5d50c40]
設定ファイルを作る。
 /etc/apache2/sites-available/my-site

「my-site」の内容は、以下のようにする。
-「mydomain.com」を、使用するドメイン名に置き換えること。
-サブドメイン「aaa」「bbb」を、使用するサブドメイン名に置き換えること。

 ServerSignature Off
 NameVirtualHost *
 <VirtualHost *>
    DocumentRoot /var/www
    ServerName www.mydomain.com
 </VirtualHost>
 <VirtualHost *>
    DocumentRoot /var/www/aaa
    ServerName aaa.mydomain.com
 </VirtualHost>
 <VirtualHost *>
    DocumentRoot /var/www/bbb
    ServerName bbb.mydomain.com
 </VirtualHost>
 <VirtualHost *>
	ServerAdmin webmaster@localhost
	ServerName mydomain.com
 
	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		# AllowOverride None # None -> All for .htaccess
		AllowOverride All
		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 /var/log/apache2/error.log
 
	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn
 
	CustomLog /var/log/apache2/access.log combined
 
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
 
 </VirtualHost>

次に、「a2ensite」コマンドによって、今作成した/etc/apache2/sites-available/my-siteを有効化します。
 $ sudo a2ensite my-site

これにより/etc/apache2/sites-enabledディレクトリにmy-siteのシムリンクが作成されます。次のコマンドで確認してみましょう。
 ls -al /etc/apache2/sites-enabled

次のように表示されます。
 drwxr-xr-x 2 root root 4096 2010-01-13 04:26 .
 drwxr-xr-x 7 root root 4096 2010-01-12 09:46 ..
 lrwxrwxrwx 1 root root   26 2010-01-12 09:14 000-default -> ../sites-available/default
 lrwxrwxrwx 1 root root   22 2010-01-13 04:26 mysite -> ../sites-available/mysite

最後にapacheに設定を再読み込みさせるか再起動します。
 $ sudo /etc/init.d/apache2 reload

 $ sudo /etc/init.d/apache2 restart

以上で、my-siteが構築されました。 



----------------------------------------------------------------------



* MySQL [#h99920a0]
MySQLのインストール
 $ sudo apt-get install mysql-server

途中で、MySQLのrootユーザーのパスワードを設定する画面が出てくる。

** MySQLの設定 [#l8c378b9]
-文字コード
 /etc/mysql/my.cnf
の [mysqld] に追加
 default-character-set=utf8
 skip-character-set-client-handshake

MySQLを再起動する。
- MySQL を起動するには、以下のコマンドを実行します。
 # /etc/init.d/mysql start
- MySQL を停止するには、以下のコマンドを実行します。
 # /etc/init.d/mysql stop



----------------------------------------------------------------------



* PHP [#mc198b70]
PHPのインストール
 $ sudo apt-get install php5

Apacheを再起動
 $ sudo /etc/init.d/apache2 restart



----------------------------------------------------------------------



* phpMyAdmin [#p87fdf1d]
phpMyAdminをインストールする。
 $ sudo apt-get install phpmyadmin

http://localhost/phpmyadmin/
でphpMyAdminにアクセスできる。
…はずなのだが、アクセスできない。orz

** phpMyAdminの設定 [#c92f6bdd]
(トラブルレスキュー)[[Ubuntu/phpmyadmin - TOBY SOFT>http://tobysoft.net/wiki/index.php?Ubuntu%2Fphpmyadmin]]
>もし、phpmyadminの画面が表示されない場合は…。
細かいこと:
>インストール時に、apache用の設定( /etc/phpmyadmin/apache.conf )は、
/etc/apache2/phpmyadmin.conf に設定を張られており、
そのまま動くようです。
>phpmyadminの実体ファイルは、/usr/share/phpmyadmin/以下にあり、
/usr/share/phpmyadmin/config.inc.phpから、
/etc/configinc

 /etc/apache2/phpmyadmin.conf
がなかったので、phpMyAdminへのエイリアスが効いてなかった。

(参考)[[Ubuntu/apache2 - TOBY SOFT>http://tobysoft.net/wiki/index.php?Ubuntu%2Fapache2]]
>(Apacheの)設定ファイルは、debianの構成をうけついでいて、
httpd.confを直接弄るようなことはありません。
>以下、/etc/apache2/ 内の簡単な説明
 apache2.conf ←httpd.confの代わりにこれが読まれる。
 ports.conf ←ポート設定
 sites-available/ ←仮想ホストの設定はここにファイルを作る
 mods-available/ ←モジュールの設定はここにファイルを作る
 conf.d/ ←細かい設定はここにファイルを作る
設定を書き直したら、
 /etc/init.d/apache2 force-reload
で設定を読みなおす。
>注意点としては、
apache2.conf自体はほとんど編集しません。
細かい設定は、conf.dに一個一個、個別にファイルを置いて設定するのがナウイです。
httpd.confもapache2.confから、読まれるので、httpd.confに一括で全部置く手もありです。

*** トラブルの対処方法 [#n47dd8e9]
conf.d の中を覗いたら、こまごまとしたApacheの設定ファイルが置かれていて、Apache起動時に自動的に読み込まれるようなので、ここに「phpmyadmin.conf」を手動で作成する。
 /etc/apache2/conf.d/phpmyadmin.conf
このファイルは、
 /etc/phpmyadmin/apache.conf
へのシンボリックリンク(ショートカット)にする。

--シンボリックリンクの作成
lnコマンドを使う
 $ ln -s リンク元のパス 作成するシンボリックリンクのパス
↓
 # ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf 

これで、
http://localhost/phpmyadmin/
から、phpMyAdminにアクセスできた!

同じ方法が紹介されていた。orz
[[phpMyAdmin - Lenny_Memo>http://black.mydns.jp/wiki/Lenny/index.php?phpMyAdmin]]
>apache 用のコンフィグファイルをリンクを張ります
 # ln -s /etc/phpmyadmin/apache.conf /etc/pache2/conf.d/phpmyadmin.conf

** phpMyAdminへのアクセス制限 [#n01189c2]
セキュリティ確保のために、IPアドレスでアクセス制限をかける。

-ローカルマシン(自分自身)からのアクセスは許可する。
-LAN内からのアクセスは許可する。
-外部の作業場所からのアクセスは許可する。
-その他は全てアクセスを不許可にする。

(参考)設定方法
[[Ubuntu/phpmyadmin - TOBY SOFT>http://tobysoft.net/wiki/index.php?Ubuntu%2Fphpmyadmin#xedfa51d]]
>アクセス制限が必要な場合は、
/etc/phpmyadmin/apache.conf を弄るかもしくは、
/etc/apache2/conf.d/ に設定ファイルを書いてアクセス制限などをしてみてください。
>例えば、phpmyadminに繋げるサブネットワークを制限する場合は、以下のようにします。
 sudo vi /etc/apache2/conf.d/phpmyadmin_access.conf 
>phpmyadmin_access.conf 設定例:
(アクセス可能範囲を123.456.789.0?255に制限しています)
 <Directory /usr/share/phpmyadmin>
        Order allow,deny   
        allow from 123.456.789.0/24
 </directory>
後はapacheを再起動します。
 sudo /etc/init.d/apache2 restart

[[LAMP環境を作る - Lenny_Memo>http://black.mydns.jp/wiki/Lenny/index.php?LAMP%E7%92%B0%E5%A2%83%E3%82%92%E4%BD%9C%E3%82%8B]]
>phpmyadmin の設定
デフォルトではどこからでもアクセス出来るのはセキュリティ上よろしくないのでlocalhostと192.168.1. からだけアクセス出来るように制限する
>/etc/apache2/phpmyadmin.conf に以下を追加
 Alias /phpmyadmin /usr/share/phpmyadmin
 
 <Directory "/home/www/phpmyadmin">
        options none
        allowoverride none
        order deny,allow
        deny from all
        allow from 127.0.0.1
        allow from 192.168.1.
 </Directory>

*** phpMyAdminへのアクセス制限の方法 [#g2602d05]
-対処方針
+ /etc/apache2/conf.d/phpmyadmin_access.conf を作成する。
+ 中身は、
 Alias /phpmyadmin /usr/share/phpmyadmin
 
 <Directory "/var/www/phpmyadmin">
     Order deny,allow
     deny from ALL
     allow from 127.0.0.1       # ローカルマシン(自分自身)
     allow from 192.168.1.      # LAN内
     allow from xxx.xxx.xxx.xxx # 外部の作業場所
 </Directory>
にしてみる。



----------------------------------------------------------------------



*メールサーバー [#p3301a6e]
-Webサーバーからメール送信ができるようにしたい。
=とりあえずメール送信(SMTP)できればOK。
-SMTPサーバとして「Postfix」を使う。
-OB25P対策の設定を行う。
=Gmail経由でメールを送信させる方法

** Postfixのインストール [#f139cdba]
(参考)
[[Postfix のインストールと設定>http://www.shitomi.jp/ubuntu804/postfix.html]]
[[Ubuntu/postfix@ローカル>http://tobysoft.net/wiki/index.php?Ubuntu%2Fpostfix%40%A5%ED%A1%BC%A5%AB%A5%EB]]
 $ sudo apt-get install postfix

インストール途中の質問に対して、以下のように設定する。
- パッケージの設定
-- メール設定の一般形式:インターネットサイト
-- システムメール名:mydomain.com(使用するドメイン名にする)

&ref(postfix_1.png);

&ref(postfix_2.png);

** Postfixの設定 [#n1a87f7c]
-Postfixの設定ファイル「main.cf」を編集する。
 $ sudo vim /etc/postfix/main.cf

-以下のような内容にする。
 # See /usr/share/postfix/main.cf.dist for a commented, more complete version
 
 # Debian specific:  Specifying a file name will cause the first
 # line of that file to be used as the name.  The Debian default
 # is /etc/mailname.
 #myorigin = /etc/mailname
 
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
 biff = no
 
 # appending .domain is the MUA's job.
 append_dot_mydomain = no
 
 # Uncomment the next line to generate "delayed mail" warnings
 #delay_warning_time = 4h
 
 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
 
 # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
 # information on enabling SSL in the smtp client.
 
 myhostname = mail.mydomain.com
 alias_maps = hash:/etc/aliases
 alias_database = hash:/etc/aliases
 myorigin = mydomain.com
 mydestination = $myhostname, mydomain.com
 relayhost = [smtp.gmail.com]:587
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
 mailbox_size_limit = 0
 recipient_delimiter = +
 inet_interfaces = all

-設定ファイル「header_checks」を作成する
/etc/postfix/header_checks を以下のように作成して,メールヘッダに「192.168.*.*」又は「127.0.0.1」を含む行を削除する。
 /^Received:.*192\.168\..*/ IGNORE
 /^Received:.*127\.0\.0\.1.*/ IGNORE

** OP25B対策 [#x48e36a6]
OP25Bとは?
[[OP25B対策(Outbound Port 25 Blocking対策)>http://www.aconus.com/~oyaji/mail2/op25b.htm]]
>Outbound port 25 Blocking(以下、OP25B)とは、文字どおり外向きのTCP 25番ポートをブロックすることを意味しており、ISPの加入者のパソコンがウイルスに感染したり乗っ取られたりして迷惑メールを配信するのを防止するための技術です。
OP25Bが導入されたとしても、ISPのSMTPサーバを利用しているユーザには全く影響がありませんが、自宅サーバでSMTPサーバを動かしている場合は何らかの対策が必要になります。

-OP25B対策として、とりあえずGmail経由でメール送信する。

** Gmailでメール送信する設定 [#wc753eb4]
(参考)
[[Ubuntu 9.04 Server – Postfixの設定>http://www.icoro.com/200908243988.html]]
[[Postfixで、GMAIL経由でメールを送る(OP25B対策)>http://labs.zsrv.net/2007/01/postfix%E3%81%A7%E3%80%81gmail%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E9%80%81%E3%82%8Bop25b%E5%AF%BE%E7%AD%96/]]
>''まとめ''
sasl_passwd作成
 $ vim /etc/postfix/sasl_passwd
 [smtp.gmail.com]:587 [username]@gmail.com:[password]
>sasl_passwdのdb化
 $ postmap sasl_passwd
>main.cfの設定追加
 $ vim /etc/postfix/main.cf
 (以下の設定を追加)
 relayhost = [smtp.gmail.com]:587
 
 #sasl setting
 smtp_sasl_auth_enable = yes
 smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
 smtp_sasl_security_options = noanonymous
 smtp_sasl_tls_security_options = noanonymous
 smtp_sasl_mechanism_filter = plain
 #tls setting
 smtp_use_tls = yes
>cyrus-sasl-plainのインストール
 $ apt-cache search cyrus
 $ apt-get install cyrus-sasl-plain
>''補足''
DEBUGログの見方
 $ vim /etc/postfix/main.cf
 (以下の設定を追加)
 debug_peer_level = 2
 #debug_peer_list = smtp.gmail.com
 #debug_peer_list = gmail-smtp.l.google.com



----------------------------------------------------------------------



* DDNS [#n5b95d79]



----------------------------------------------------------------------



* crontab [#t430bcff]
PHPスクリプトをクーロンで定期的に実行したい。

+PHPをコマンドラインで使えるようにする。
+crontabを編集する。

** PHPのコマンドライン実行 [#wd9105bf]
PHPマニュアル
[[PHP をコマンドラインから使用する>http://php.net/manual/ja/features.commandline.php]]
インストール方法
[[UbuntuでコマンドラインPHPのphp5-cliのインストール方法・コマンド>http://www.miuxmiu.com/archives/2010/03/03/ubuntu_php5-cli_installation_command.html]]
 $ sudo apt-get install php5-cli

PHPの場所
 /usr/bin/php

** crontabの編集 [#naeb4a88]
(参考)
-[[PHPの定期実行[ Linux&cron ] - 教えて!goo>http://oshiete.goo.ne.jp/qa/877515.html]]
-[[cron の設定ガイド>http://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html]]
 間隔値は、「/」の後ろに指定した値の間隔で処理を実行します。 
-[[Ubuntu ~crontab~>http://clown-do.ddo.jp/index.php?id=526]]
 0,10,20,30,40,50 * * * *  	10分おきに実行
 */10 * * * *  	10分おきに実行 [#d6e413fe]
 * 1 * * *  	1:00から 1:59まで 1分おきに実行 [#dc27a4c4]

 $ crontab -e
で編集できる。

rootとしてではなく、ユーザーとしてcrontabを編集すると、
 /var/spool/cron/crontabs/
という場所にユーザー名のcrontabファイルが作成される。
 /var/spool/cron/crontabs/username
というようなファイルが作成される。

10分毎にPHPスクリプトを実行する設定
 */10 * * * * /usr/bin/php -f /home/username/mailsend.php



----------------------------------------------------------------------



* その他 [#nec555e2]

** データのレストア [#fde5ae7b]
コピーしたディレクトリやファイルのオーナーやグループ、パーミッションを変更する。

-丸ごと変更する方法
「www」ディレクトリ以下をすべてパーミッション「755」にする場合
 $ chmod -R 0755 www

-ディレクトリだけ変更する方法
「www」ディレクトリ以下にあるディレクトリだけを選択的にパーミッション「755」にする場合
 find /var/www/ -type d -exec chmod 755 {} \;

** 画面ロックの設定解除 [#z9900381]
Ubuntu10.04はデフォルト状態だと、アイドル状態が続くと画面がロックされて、操作を再開するときにパスワードを求められてうざい。

[[Ubuntu10.04で自動に画面ロックを解除する。>http://d.hatena.ne.jp/kenken2509/20100516/1273998931]]
>Ubuntu10.04では初期設定は自動で画面ロックしてしまいますね。
解除するのは
[システム]→[設定]→[GNOMEスクリーンセーバー]から設定できますね。

** nautilus-gksu [#e1510a4b]
-「nautilus-gksu」は、Gnomeの標準ファイルブラウザ「nautilus」でファイル/フォルダ操作を「管理者権限」で行える機能拡張。
(参考)
[[[nautilus-gksu]をインストールして「管理者として開く」ことが出来るようにする>http://www.igune.com/20071025/1443-04/]]
[[Ubuntuをインストールした後すぐにインストールするソフト(Ubuntu 9.10編)>http://www.k5.dion.ne.jp/~r-f/sicklylife/memo/ubuntu910/first_soft_install.html]]
 $ sudo apt-get install nautilus-gksu
[[nautilus-gksu を入れる人ってバカなの?>http://palepoli.skr.jp/wp/2009/09/20/nautilus-gksu-%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B%E4%BA%BA%E3%81%A3%E3%81%A6%E3%83%90%E3%82%AB%E3%81%AA%E3%81%AE%EF%BC%9F/]]
>
 #!/bin/sh
 gksu gnome-open $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
のたった一行のコマンドを Nautilus スクリプトに登録するだけで同じことができるのに。

** CodeIgniter [#a3aa4790]
PHPがバージョン5.2から5.3になったら、PHPスクリプトでエラーメッセージが多発した。
CodeIgniterで作ったWebアプリも、なんか動作がおかしい。
 An Error Was Encountered
 The URI you submitted has disallowed characters.
というエラー
↓
[[CodeIgniter:日本語URIでエラー>http://www.umikabuto.ivory.ne.jp/archives/category/php-framework/codeigniter]]
[[CodeIgniter | URIで日本語を使うのだ>http://pricewave.blog110.fc2.com/blog-entry-26.html]]
>application/config/config.phpで
[Allowed URL Characters」セクションの正規表現を修正すればOK
 $config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_-';

** Java [#ua09c453]
Java SDKをインストールする。

[[Ubuntu 10.04 - GotoWiki>http://www.icepp.s.u-tokyo.ac.jp/~goto/wiki/index.php?Ubuntu%2010.04]]
>''sun-java6-jreインストール''
ubuntu10.04 からはsun JDKは別のリポジトリに移ったらしいので、新たにリポジトリを追加しなければならない。
 $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
 $ sudo apt-get update
 $ sudo apt-get install sun-java6-jdk

(参考)[[Sun Java moved to the Partner repository>https://wiki.ubuntu.com/LucidLynx/ReleaseNotes#Sun%20Java%20moved%20to%20the%20Partner%20repository]]
>For Ubuntu 10.04 LTS, the sun-java6 packages have been dropped from the Multiverse section of the Ubuntu archive. It is recommended that you use openjdk-6 instead.
>If you can not switch from the proprietary Sun JDK/JRE to OpenJDK, you can install sun-java6 packages from the Canonical Partner Repository. You can configure your system to use this repository via command-line:
 add-apt-repository "deb http://archive.canonical.com/ lucid partner"


** Eclipse [#w68a480b]


** PDT [#tb1a862e]


** Xdebug [#a802bc71]
-Ubuntuソフトウェアセンターから、パッケージを自動でインストールできる。

&ref(php5-xdebug.png);

** Git [#b1fa6e19]


** Redmine [#b7ad8ea7]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS