apache

since 2010-08

正式には apache httpd server。

apache の導入

Ubuntu 9.04 における作業記録。どこかのホスティングで何かをするための調査。

いわゆる LAMP 環境(ここではMySQL, PHP)を構築してみる。

バーチャルホスト(ネームベース)で wordpress を動かしてみることを目標にする。

ひとつのサーバで複数のドメインを運用し、さらにそれぞれのドメインで複数のサブドメインを運用する。

$ sudo aptitude update
$ sudo aptitude install apache2 php5-mysql

これで /var/www/index.html が見える。

phpinfo.php を作って <?php phpinfo() ?> などとやれば、 ブラウザでサーバの情報が得られる。

サイト設定 /etc/apache2/sites-enabled/000-default

<VirtualHost *:80>
# 以下略

の設定が書かれている。(このファイルはシンボリックリンク。実体は ../sites-available/default である)

同じディレクトリには default-ssl もあるが、https は動いていない。

バーチャルホストの追加

このホストを hoge.net とする。

a.hoge.net が同じアドレスを指すように DNS を設定する。

/etc/apache2/sites-available/hogenet_a というファイルを作る。

<VirtualHost *:80>
      <Directory /home/username/htdocs/hogenet/a/>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride None
              Order allow,deny
              allow from all
      </Directory>
      ServerName a.hoge.net
      DocumentRoot "/home/username/htdocs/hogenet/a"
</VirtualHost>

これを sites-enabled からリンクする。

本当は a2ensite でやる。

$ sudo /usr/sbin/a2ensite hogenet_a

手でリンクする場合。

$ cd /etc/apache2/sites-enabled
$ sudo ln -s ../sites-available/hogenet_a 100-hogenet_a

実体は /home/username/htdocs/hogenet/a/index.html など作る。

テスト:

$ sudo apache2ctl configtest

有効化する

$ sudo /etc/init.d/apache2 restart

これでブラウザから h ttp:/ /a.hoge.net を叩いて確認。

hosts

apache2 の再起動時に "apache2: Could not reliably determine the server's fully qualified domain name, … " が出るのを黙らせる。

$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       servername.topdomain servername

logrotate

/var/log/apache2/*.log が巨大化するので、週ごとにファイル分割:

$ sudo apt-get install logrotate

設定変更するには /etc/logrotate.conf および /etc/logrotate.d/* を編集。

モジュール

  • モジュール有効化は sudo a2enmod (module)
  • モジュール無効化は sudo a2dismod (module)

mod_rewrite

mod_rewrite

wordpress で ?p=1 でない parmalink を使えるようにする。

/etc/apache2/sites-available/the_subdomain で AllowOverride None を無効化

      <Directory /home/username/htdocs/the_subdomain/>
              Options Indexes FollowSymLinks MultiViews
 =>           # AllowOverride None
$ sudo a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
$ sudo /etc/init.d/apache2 restart

mod_suexec

ユーザ権限で CGI が動くようにする。

http://d.hatena.ne.jp/magicalhat/20081226/1230220014

$ sudo aptitude install apache2-suexec-custom
$ sudo a2enmod suexec
$ sudo /etc/init.d/apache2 restart

現状 phpinfo によると

APACHE_RUN_GROUP	www-data
APACHE_RUN_USER	www-data

だが apache2handler の項目をみると mod_suexec が有効化している。

mod_suphp

http://www.suphp.org/Home.html

PHPファイルを所有者の権限で動かす機能。

使うべきかどうかわからないが試してみた。

入れると ubuntu のパッケージに不具合が生じる可能性がある。phpmyadmin など。

$ sudo aptitude install libapache2-mod-suphp

phpinfo によると

Loaded Modules: ... mod_suphp

これで /etc/apache2/sites-available/the_subdomain を修正

User username
Group groupname
<VirtualHost *:80>
      <Directory /home/username/htdocs/the_subdomain/>
              Options Indexes FollowSymLinks MultiViews
              # AllowOverride None
              Order allow,deny
              allow from all
      </Directory>
      ServerName the_subdomain.domain.topdomain
      DocumentRoot "/home/username/htdocs/the_subdomain/"
      SuexecUserGroup username groupname
</VirtualHost>

phpinfo で

Server API	Apache 2.0 Handler

になっているのは mod_php5 が使われているということらしい。

apache2handler はこんどは

User/Group: username(1xxx)/1000 

になった。

mod_proxy

since 2010-12-08

/usr/local/apache2 にインストールした apache 2.0.64 にて。

configure オプションには –enable-proxy=shared を追加。

httpd.conf は下記:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

メールの設定

postfix 参照

mysql の設定

別のページに移動する予定

$ sudo aptitude install mysql-server

パスワードをつけろと言われる。

root
(mysql-passwd)

ソースから環境を作る

since 2010-12-06

apache 2.0

古いバージョンの Linux 環境で新しい php を動かしたい。

http://httpd.apache.org/docs/2.0/install.html

検討中:

$ cd httpd-2.0.64/
$ sh configure --prefix=/usr/local/apache2 --enable-rewrite=shared --enable-proxy=shared --enable-so
$ make
$ su
# make install

試験運用のためポート 8000 を使う。

# emacs -nw /usr/local/apache2/conf/httpd.conf
Listen 8000

動かす:

# /usr/local/apache2/bin/apachectl start

http: / / server:8000/ が見える。

ログは下記:

$ lv /usr/local/apache2/logs/error_log 

とめておく:

# /usr/local/apache2/bin/apachectl stop

php 5.3

php はここに:

http://www.php.net/manual/en/install.unix.apache2.php

configure で expr のエラーが出るときは:

$ cd php-5.3.3
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --enable-mbstring --with-iconv
$ make
$ su
# make install
# cp php.ini-development /usr/local/lib/php.ini

確認:

$ grep php5 /usr/local/apache2/conf/httpd.conf
LoadModule php5_module        modules/libphp5.so

その下に下記を追加:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

phpinfo ファイルを作る:

$ cd /usr/local/apache2/htdocs/
$ sudo sh -c 'echo "<?php phpinfo() ?>" > phpinfo.php'

apachectl start して サーバー:8000/phpinfo.php を確認。

"/~username" を見えるようにしたいなら、httpd.conf で下記を:

<Directory /home/*/public_html>
    #AllowOverride FileInfo AuthConfig Limit Indexes
    AllowOverride All

    # omitted

</Directory>

資料

<html> <div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;margin:0px 12px 1px 0px;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113814/r4wh-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/515t-Vj3AAL._SL160_.jpg" alt="Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集" style="border: none;" /></a></div><div class="amazlet-info" style="line-height:120%; margin-bottom: 10px"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113814/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集</a><div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4873113814/r4wh-22/ref=nosim/" title="Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集" target="_blank">amazlet</a> at 10.08.12</div></div><div class="amazlet-detail">Ken Coar Rich Bowen <br />オライリージャパン <br />売り上げランキング: 34333<br /></div><div class="amazlet-sub-info" style="float: left;"><div class="amazlet-review" style="margin-top:10px; margin-bottom:10px"><div class="amazlet-review-average" style="margin-bottom:5px">おすすめ度の平均: <img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-4-5.gif" alt="4.5" /></div><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5" /> 非常に実用的<br /><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5" /> 著者のセンス!<br /><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-4-0.gif" alt="4" /> 構築のレシピ集<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113814/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div></div><div class="amazlet-footer" style="clear: left"></div></div> </html>

apache.txt · 最終更新: 2013/09/13 11:52 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0