カテゴリー「Apache」の2件の記事

Apache2.4で.htaccessの記法が変更に

Apache2.2までは、httpd.confのhtaccess部分(別ファイルでも)のアクセス許可/拒否は以下のように記述していました。

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

全てのアクセスを許可

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all

</Directory>

全てのアクセスを拒否

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

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

これが、2.4からは以下のように変更になっています。

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

全てのアクセスを許可

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

全てのアクセスを拒否

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

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

Apacheはけっこうバージョンアップの際に、「そこ今更変えなくていいだろ~」という部分に変更が加えられるため、自分の環境に反映させる際には十分なテストが必要です。

Cento+Apache2.4+Ruby

1.Apache2.4.2のインストール

Apache2.4が出ていたので、ソースからインストールしてRubyをCGIで動かすまでの手順をメモしておきます。細かいバージョンは以下の通りです。

CentoOS5.7
Apache2.4.2

まず、Apache2.2まではApacheのソースに同梱されていたaprが、2.4では別でダウンロードしないといけなくなっています。いきなりApacheをインストールしようとしても、configureの時点で以下のようなエラーが出てインストールできません。

Configuring Apache Portable Runtime library ...
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

そのため最初に以下のサイトからaprとapr-utilの最新版をダウンロードしておきます。

・aprとapr-utilのダウンロードサイト

http://ftp.jaist.ac.jp/pub/apache//apr/

インストールはデフォルト設定で行って構いません。以下手順です。

$ tar xzf apr-1.4.6.tar.gz $ cd apr-1.4.6 $ ./configure $ make $ sudo make install


aprはデフォルトで/usr/local配下にインストールされます。apr-utilのconfigureはaprの場所を紐付けて行います。

$ tar xzf apr-util-1.4.1.tar.gz 
$ cd apr-util-1.4.1
$ ./configure --with-apr=/usr/local/apr
$ sudo make install

次はようやくApache2.4.2をインストールします。まず下記のサイトでApache2.4の最新バージョンをダウンロードします。

・Apache2.4のダウンロードサイト

http://httpd.apache.org/download.cgi#apache24

以下、インストール手順になります。今回DSOモジュールは全て組み込んでいます。

$ tar xzf httpd-2.4.2.tar.gz 
$ cd httpd-2.4.2
$ ./configure --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
$ make
$ sudo make install

これでconfigure時にエラーは出ません。apachectl startすれば元気よく「It works!」となります。

2.Rubyを有効に

rubyをcgiとして使えるようにするにはhttpd.confを編集しますが、2.2のときと比べて微妙に内容が変わっています。以下、修正点一覧です。

#LoadModule cgid_module modules/mod_cgid.so
 ↓
LoadModule cgid_module modules/mod_cgid.so

<directory>
    AllowOverride none
    Require all denied
</directory>
 ↓
<directory>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</directory>

<directory "/usr/local/apache2/cgi-bin" >
    AllowOverride None
    Options None
    Require all granted
</directory>
 ↓
<directory "/usr/local/apache2/cgi-bin" >
    AllowOverride All
    Options +ExecCGI
    Require all granted
    SetHandler cgi-script
%lt;/directory$gt;

AddHandler cgi-script .cgi
 ↓
AddHandler cgi-script .cgi .rb

設定は以上です。これでApacheを再起動すれば.cgiでも.rbでもrubyがCGIとして動くようになっています。