Category Archives: Apache

最新のパッケージをyumでインストールする

このエントリーをはてなブックマークに追加
はてなブックマーク - 最新のパッケージをyumでインストールする
Share on Facebook

yum公式リポジトリ内の古いApacheやphpではなく、最新版をrpmで入れる方法です。

下記に記す非公式リポジトリを参照することで、最新のパッケージをyumでインストールできます。

もちろん公式のリポジトリより信頼性は劣るようなので、注意が必要です。

手順

Remiリポジトリ追加

RemiリポジトリはEPELリポジトリに依存しているため、両方追加する必要があります。

最新のダウンロード先は下記から確認してください。

# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm -ivh epel-release-5-4.noarch.rpm remi-release-5.rpm

※前のバージョンのrpmが入っている場合、「rpm -Uvh {パッケージ名}」を指定します。

これでyumのリポジトリにRemiとEPELを参照できるようになりました。

$ ls /etc/yum.repos.d/
CentOS-Base.repo       CentOS-Media.repo  epel-testing.repo  remi.repo
CentOS-Debuginfo.repo  CentOS-Vault.repo  epel.repo

Utterリポジトリ追加

/etc/yum.repos.d/utter.repo を開き、下記のように編集します。

[utter]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

以上で、phpやhttpdの最新版がyumでインストールできるようになりました。

最新パッケージのインストール

yumコマンドに「–enablerepo={リポジトリ名}」オプションを付けることで、それぞれのリポジトリを参照できます。

PHPの場合

# yum --enablerepo=remi install php
...
===================================================================================================================
 Package                  Arch                 Version                                 Repository             Size
===================================================================================================================
Installing:
 php                      x86_64               5.3.9-1.el5.remi                        remi                  2.8 M
Installing for dependencies:
 httpd                    x86_64               2.2.3-53.el5.centos.3                   updates               1.2 M
 libedit                  x86_64               2.11-2.20080712cvs.el5                  epel                   80 k
 php-cli                  x86_64               5.3.9-1.el5.remi                        remi                  2.6 M
 php-common               x86_64               5.3.9-1.el5.remi                        remi                  997 k

Transaction Summary
===================================================================================================================
Install       5 Package(s)
Upgrade       0 Package(s)

Total download size: 7.7 M
Is this ok [y/N]: 

Apache2(httpd)の場合

# yum --enablerepo=utter install httpd
...
===================================================================================================================
 Package                       Arch                   Version                          Repository             Size
===================================================================================================================
Installing:
 httpd                         x86_64                 2.2.21-jason.1                   utter                 3.2 M
Installing for dependencies:
 apr-util-ldap                 x86_64                 1.3.12-1.jason.1                 utter                  20 k
Updating for dependencies:
 apr-util                      x86_64                 1.3.12-1.jason.1                 utter                 201 k

Transaction Summary
===================================================================================================================
Install       2 Package(s)
Upgrade       1 Package(s)

Total download size: 3.4 M
Is this ok [y/N]: 

参考

mod_rewriteでクエリ付きのURIをリダイレクトする

このエントリーをはてなブックマークに追加
はてなブックマーク - mod_rewriteでクエリ付きのURIをリダイレクトする
Share on Facebook

http://hige.jp/moja.php?category=1 → http://hige.jp/moja.php?category=999

というリダイレクトをApacheで実現するにはどうすればいいでしょうか?リダイレクトの方法はいろいろありますが、今回RedirectやAliasディレクティブは使えません。これらはクエリ文字列(?category=999の部分)を把握できないようです。

そんな時は、mod_rewriteの RewriteCond ${QUERY_STRING} を使うと良いです。具体的には以下の用にします。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{QUERY_STRING} category=1
    RewriteRule ^/moja.php /moja.php?category=999 [R=301,L]
</IfModule>

これでApacheを再起動すれば、リダイレクトが成功するようになっています。

参考

[Apache] ログを$HOSTNAME毎に出し分けする

このエントリーをはてなブックマークに追加
はてなブックマーク - [Apache] ログを$HOSTNAME毎に出し分けする
Share on Facebook

目的

“server001″, “server002″, …, “serverN” すべてで共通の httpd.conf を使い、それぞれのログファイルを “log/server001/access_log”, …, “log/serverN/access_log” に吐くようにしたい。

ノード追加の度に手動でconfファイルをいちいち書き換えるのにはもううんざり。

そんな人には以下の方法をおすすめします。

やり方

Apacheディレクトリ内の envvars というファイルに記述することで、OSの環境変数を conf ファイルに渡すことができることを利用します。

1. “apache2/bin/envvars” に以下の2行を追加する

HOSTNAME="$HOSTNAME"
export HOSTNAME

2. “apache2/conf/httpd.conf” のログ出力行を編集する

#ErrorLog "logs/error_log"
ErrorLog "logs/${HOSTNAME}_error_log"

#CustomLog "logs/access_log" common
CustomLog "logs/${HOSTNAME}_access_log" common

3. Apacheを再起動する

参考