Ubuntu で apache の設定。まとめ。
もう何度もやっているのだけれど、その度に忘れてしまうのでメモメモ。
1. apache のインストール。
- パッケージ管理ソフト Synapticパッケージマネージャ から apache2 をインストール。
- 必要ならば php5 や mysql もついでにインストール。
パッケージマネージャを使わないで、コマンドラインから
$ sudo apt-get install なにがし
でインストールするも良し。例えばローカルで Movable Type などを動作させたいときには、いろいろ追加の Perl モジュールが必要な場合があるので、それも Synaptic 経由でインストール。
欲しいモジュール名が XML::Parser ならば、パッケージ名は libxml-parser-perl。
こちらもコマンドラインから cpan を使ってインストールしても良し。
2. apache の起動 / 終了。
起動は、コマンドラインで
ウェブブラウザで http://localhost/ にアクセスしてみて「It works! なんたらかんたら…」と表示されたら、とりあえずインストールは成功。
終了は、
$ sudo apachectrl start
とか、$ sudo service apache2 start
とか。ウェブブラウザで http://localhost/ にアクセスしてみて「It works! なんたらかんたら…」と表示されたら、とりあえずインストールは成功。
終了は、
$ sudo apachectrl stop
や、$ sudo service apache2 stop
など。3. ユーザディレクトリの有効化などなど。
http://ホスト名/~ユーザ名/ で /home/ユーザ名/public_html/ を表示するには、
さらに、~/public_html/ 以下のどのディレクトリでも CGI を動かしたいときは、/etc/apache2/mods-available/userdir.conf を編集。
【変更前】
そして、拡張子 .cgi 以外の .pl や .py などのファイルも CGI として認識させたいときは、/etc/apache2/mods-available/mime.conf の
それが済んだら Apache をリスタート。
$ 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 を再起動。<Directory /home/*/public_html>
# php_admin_value engine Off ←この行をコメントアウト!
</Directory>
</IfModule>
さらに、~/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 をインストールする時に勝手に付いてくる。単体でもインストールできるのかは未確認。
自分の名前は /etc/hostname に書かれているのでチェック。これは要は、Ubuntuをセットアップした時に設定した「コンピュータ名」ですな。
例えば、Apache を動かしているコンピュータの名前が "ubuntu" ならば、同じローカルネットワーク上の別のマシン(Mac, Linux)からは、特に何も設定しなくても、
http://ubuntu/ または http://ubuntu.local/
でウェブアクセスが可能な筈。Macなら Bonjour、Ubuntuなら Avahi というサービスが自動的に名前を解決してくれる。それらがインストールされていなかったら入れる。
まっさらの Windows だと、ホスト名を使ってのウェブアクセスが出来なかったりするので、そんな時は Windows に Bonjour をインストールしてしまうのが手っ取り早い。
Bonjour は、iTunes をインストールする時に勝手に付いてくる。単体でもインストールできるのかは未確認。
…と、こんな感じでとりあえず。
コメント