Ubuntu で apache の設定。まとめ。

もう何度もやっているのだけれど、その度に忘れてしまうのでメモメモ。

1. apache のインストール。

  • パッケージ管理ソフト Synapticパッケージマネージャ から apache2 をインストール。
  • 必要ならば php5 や mysql もついでにインストール。
Ubuntu 12.04 あたりだと Synaptic が初めから用意されていないようなので、そのときは最初に Ubuntuソフトウェアセンター から Synaptic をインストールしておく。

パッケージマネージャを使わないで、コマンドラインから
$ sudo apt-get install なにがし
でインストールするも良し。

例えばローカルで Movable Type などを動作させたいときには、いろいろ追加の Perl モジュールが必要な場合があるので、それも Synaptic 経由でインストール。
欲しいモジュール名が XML::Parser ならば、パッケージ名は libxml-parser-perl。

こちらもコマンドラインから cpan を使ってインストールしても良し。

2. apache の起動 / 終了。

起動は、コマンドラインで
$ sudo apachectrl start
とか、
$ sudo service apache2 start
とか。

ウェブブラウザで http://localhost/ にアクセスしてみて「It works! なんたらかんたら…」と表示されたら、とりあえずインストールは成功。

終了は、
$ sudo apachectrl stop
や、
$ sudo service apache2 stop
など。

3. ユーザディレクトリの有効化などなど。

http://ホスト名/~ユーザ名/ で /home/ユーザ名/public_html/ を表示するには、
$ sudo a2enmod userdir
して、Apache を再起動。
$ sudo service apache2 restart
で、これだけだと ~/public_html/ 以下に置いた php ファイルを実行してくれないので、設定ファイル /etc/apache2/mods-available/php5.conf を編集。
$ sudo pico /etc/apache2/mods-available/php5.conf
でファイルを開いて、
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
#            php_admin_value engine Off ←この行をコメントアウト!
        </Directory>
    </IfModule>
ファイルを保存したら Apache を再起動。

さらに、~/public_html/ 以下のどのディレクトリでも CGI を動かしたいときは、/etc/apache2/mods-available/userdir.conf を編集。

【変更前】
Options MultiViews Indexes SymLinksIfOwnerMatch Include$
【変更後】
Options ExecCGI MultiViews Indexes SymLinksIfOwnerMatch Include$

そして、拡張子 .cgi 以外の .pl や .py などのファイルも CGI として認識させたいときは、/etc/apache2/mods-available/mime.conf の
AddHandler cgi-script .cgi
という行の後ろに、半角スペース区切りで拡張子を追加してやる。

それが済んだら Apache をリスタート。

4. 自動起動のオン / オフ。

Synapticパッケージマネージャや apt-get でインストールした時は、たぶんマシン立ち上げ時に Apache も起動する設定になっている。

自動起動させたくないときは、
$ sudo update-rc.d -f apache2 remove
で、起動項目から取り除ける。起動項目に追加したい時は
$ sudo update-rc.d apache2 defaults

5. ローカルネットワークの別のマシンから、IPアドレスではなくマシン名(ホスト名)でアクセス。

http://192.168.10.4/~user/ とかではなく、http://ubuntu/~user/ …な感じでアクセスできた方が何かと便利。

自分の名前は /etc/hostname に書かれているのでチェック。これは要は、Ubuntuをセットアップした時に設定した「コンピュータ名」ですな。

例えば、Apache を動かしているコンピュータの名前が "ubuntu" ならば、同じローカルネットワーク上の別のマシン(Mac, Linux)からは、特に何も設定しなくても、

http://ubuntu/ または http://ubuntu.local/

でウェブアクセスが可能な筈。Macなら Bonjour、Ubuntuなら Avahi というサービスが自動的に名前を解決してくれる。それらがインストールされていなかったら入れる。

まっさらの Windows だと、ホスト名を使ってのウェブアクセスが出来なかったりするので、そんな時は Windows に Bonjour をインストールしてしまうのが手っ取り早い。

Bonjour は、iTunes をインストールする時に勝手に付いてくる。単体でもインストールできるのかは未確認。
…と、こんな感じでとりあえず。

カテゴリ: