はじめて利用する方でも分かるように、一から徹底的に解説します リダイレクトやURLの書き換えを行うmod_rewrite。 呪文のように難しい記述に、何をやっているのか分からない挙動。 私自身、自動で生成されるものを利用したり、コピペで済ませていました。 しかし、とある案件でmod_rewriteについて学ぶ機会があったので、良い機会だと思い、mod_rewriteの使い方をまとめてみました。 目次 mod_rewriteの初期設定とログの表示方法 mod_rewriteの初期設定 ログファイルの設定 各ディレクティブの解説 RewriteBaseディレクティブ RewriteCondディレクティブ RewriteCondの後方参照について テスト文字列に利用できる環境変数の一覧 条件パターンの一覧 オプションの一覧 RewriteEngineディレクティブ RewriteMapディレクテ
この記事は1年以上前の古い記事です。現状に即していない記述の場合があります。あらかじめご了承ください。 _ おとといのエントリ「Apache 2.4にしたらコンテンツがForbiddenになった。そして直した」で「直した」と書いたけれど適当すぎたのでマジメに見なおしてみた。 参考 mod_authz_core - Apache HTTP Server: https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html Apache 2.4 Require - どさにっき: http://ya.maya.st/d/201202c.html#s20120226_1 まず「Upgrading to 2.4 from 2.2 - Apache HTTP Server」を見ると2.2から2.4の変更で 2.2 configuration: Order
Apache2.2からApache2.4 に移行する場合、設定ファイルをそのまま持ってきても動きません。 数日格闘したら解決できたのですが、 これからやる人が同じ苦労をしなくてすむようにノウハウを記録しておきます。 下記は、Apache2.2/CentOS6 から Apache2.4/CentOS7 に移行するための方法です。 他のディストリビューションでも似たようなものだと思います。 公式マニュアルを見ておきましょう 2.2 -> 2.4 アップグレードガイドがあります。 http://httpd.apache.org/docs/2.4/new_features_2_4.html http://httpd.apache.org/docs/2.4/upgrading.html ただ、すごく分かりにくいのと、CentOS固有(ディストリ固有)の情報は書いてないので、実際に動かしてエラーを1個
############## ## 以上省略 ## ############## <IfModule unixd_module> # # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User apache Group apache
自信のないタイトルは1年前に「2011年には流石にリリースされると思います」と書いてしまった反省からです。 リリースに関わっているわけでもないのに根拠のない予言をするものではありません。更にさかのぼること3年前には、Apache2.4カウントダウン?のタイトルで記事を書いています。もはや狼少年状態です。 Apache2.4の新機能の中で意外にフィーチャーされていませんが、個人的な注目はevent MPM(とAsynchronous support)です。いわゆる非同期I/O動作のイベントドリブンなmpmです。非同期I/Oのイベントドリブンと聞くと、nginxと同じ動作?と思う人もいるかもしれませんが、動作モデルは異なります。 Apacheを知っている人は、event mpmがバージョン2.2から存在するのを知っているかもしれません。バージョン2.2では実験的(experimental)mp
ちょっと間が空いてしまいましたが、久々にメモを残しておきます。 Apacheが遅い/止まると言われてしまいまして 現在進めているプロジェクトで、やや大きめのサーバ構築をしてたんですが、ちょくちょく「レスポンスが遅い/Apacheが止まる」と言われてしまい、うーんなんでだろうと色々試行錯誤していたメモ書きです。 ちなみにDBはMySQL-Cluster、サーバサイドはPHPです。 (本当はPound側とかMySQL側にもいくばくかの問題があったのですが、主な問題はここだったのでほかは省略) MPMの話だった 原因に気づいたのはパフォーマンスチューニングの最中でした。Apache Benchでもそもそ検証してたんですが、
2014年7月10日(木) ■ Apache 2.4 Define _ apache 2.4 では Define HOGE hogehoge Directive ${HOGE} みたいに Define を使ってマクロみたいな書き方ができるようになった。似たような動作をするホストを複数仕込むときに、 # ホスト依存設定 Define HOGE hogehoge Define FUGA fugafuga # 共通設定 Include common.conf みたいな書き方ができてたいへん便利。 _ が、これをおしすすめて、 <IfDefine HOGE> Directive ${HOGE} </IfDefine> こう書くと困る。HOGE が定義されてる場合だけそれに関する設定を追加したいんだけど、定義されていなくても <IfDefine> の中まで parse されてしまうようで、${HOG
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Apache httpdの2.4系を触っていて、面白そうだなーと思う新しいコア機能を幾つか紹介したいと思います。こういうの欲しかった!と思える機能がちらほら見受けられます。 MPMをLoadableに扱える PreforkやWorker、eventのMPM切り替えを、これまではコンパイル時に行う必要がありましたが、それぞれのMPMがモジュール化されLoadableになりました。これによって、MPMを切り替えて試したりする作業が格段にやりやすくなったと思います。 むしろこれになれて2.2系を触ると、うおおおーっめんどくさい!ってなります。 モジュール単位やディレクトリ単位でログレベルを制御 エラーログの出力レベルを、モジュール単位で設定できたり
Debian GNU/Linux 6.0 (Squeeze) で提供される Apache HTTP Server の安定版パッケージ apache2 は, 現在のところ 2.2 系です. 2.4 系を利用したい場合は, ソースからビルドしてコンパイルする必要があります. わたし自身は, ふだんはパッケージを利用していたのですが, ふと 2.4 系を試してみたくなりました. やってみると, それほど難しくもない気がしましたので, ここにメモを残しておきたいと思います. APR と APR-Util まず Download - The Apache HTTP Server Project から, 現時点で最新の安定版のソースをダウンロードします. httpd-2.4.3.tar.gz です. 適当な場所に展開したら, configure スクリプトを実行します. ~/httpd-2.4.3$
Apache2.4.1がリリースしてから、約2週間たった。 自分が思っていた以上に、世の中の人はApacheやWebサーバに関心があるようで、この2週間でもかなりの検証や調査が行われていた。僕自身も、自分の記事をここまで見て頂けて光栄である。 ということで、2週間たったのでApache2.4.1に関して注目された(個人的に)9つの記事をまとめておきたいと思う。
もと東大生もと社長の自由奔放ブログ Just do it now! もと東大生、もと社長の経歴をもつもとくんの自由奔放な生き方を 自由奔放に綴ったブログです。 樹海の中を真っ直ぐ進むもとの楽しい生き様をお楽しみください。 先ほど書いた、Apache2.4.3のインストール記事で書いた、 Apache2.2系からApache2.4系になった際の違いです。 前の記事 CentOS 6.3にApache 2.4.3をインストール Apacheのページに記載がありましたが、英語なので日本語訳しておきます。 ついでにわかりにくい部分に補足説明を記載してみました。 ●Run-time Loadable MPMs Multiple MPMs can now be built as loadable modules at compile time. The MPM of choice can be con
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といいつつも、そこまで大したことはしていない。 luaという高速に動作する組み込み系のスクリプト言語で遊んでみたかったのと、それだったmod_luaで遊んでみればいいなと思っただけである。で、実際にmod_luaをコンパイルして遊んでみた。コンパイルオプションは以下。 ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-modules=all --enable-mods-shared=all --enable-mpms-shared='prefork worker event' -
接続数とリクエスト/秒はserver-statusハンドラーで取得したものです。使用帯域については、2.2のserver-statusは正確な値を返さないので2.4.1とは比較できません。そこでネットワークインターフェイスの出力帯域の直近の5分平均を採りました。メモリーの使用量とCPUの使用率は、httpdのプロセスの合計の値をprstat -aで調べました。 出力帯域を見る限り、どちらのバージョンも同様な負荷状況にあります。出力帯域にはFTPやrsyncも含まれていますが、HTTPがほとんどだからです。しかし、接続数やリクエスト/秒は2.2.22より2.4.1のほうがずっと小さいです。まだソースコードを読んでいないので正確なことはわかりませんが、計測方法が異なっているためではないかと思います。問題のメモリーとCPUの使用状況ですが、2.2.22よりも2.4.1のほうが2倍以上大きくなって
2012年3月1日(木) ■ Apache 2.4 BufferedLogs _ 2.4 のドキュメントを読んでいたら、 BefferedLogsで実験的という文字が消えていることに気がつく。おおおおぉぉぉ。これでおおっぴらに使える。2.2 までは experimental 扱いだった。 _ 最近はハードウェアが無駄に高スペック化していて、いまや CPU は複数コアでないのを探す方が困難で、メモリも HDD も足りなくて困るということはまずない。大して処理能力の必要がないサーバではリソースが余りまくってしまう。そんなわけで1台のハードウェアに複数の仮想ホストを収容することが多い。 _ 罠。数字の上では潤沢にリソースがあるように見えても、分割すると意外と性能が出ないことがある。その筆頭がディスク I/O。HDD の容量は昔よりずっと増えてるけど、データを読み書きする磁気ヘッドの数はほとんど変
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 久々のApache HTTP Server 2.4.1という安定版がリリースされたので、早速ベンチマーク評価を行う。今回はevent_mpmのExperimentがとれて、晴れてデフォルトMPMになったのでそれを使ってみたい。 日本一(ひょっとすると世界一)早いApache 2.4.1 event_mpmのレビューを意識してみた。 はじめに 個人的にも、event_mpmが採用されたことに最も注目している。event_mpmは非同期型のIO処理をしていて、nginxに近いアーキテクチャをとっている。厳密には、nginxの非同期と比べた場合、nginxは徹底的にノンブロッキング(accept4を使う等)してworkerスレッドで次々と並列処理し
2012年2月22日(水) ■ Apache 2.4 正式リリース _ 2.4.1 出た。…2.4.0 は? _ しばらく前からリリースされそうな気配が見えてたので、うちのサーバも 2.3 の最終版で設定のテストをしておこうかと思ったんだけど、間に合わずリリースが先になってしまった。ずいぶん前から評価目的ではいろいろいじってたので、とくにとまどうことなく移行できる目算はついてはいるんだが。このところなんか時間が取れないな。仕事は(いつもどおり)あまりしてないのになんでだろ。まあ、本気でやろうと思えばこの程度の作業に使う時間ぐらいは確保できるので、その程度のやる気しかないってことだが。 ■ ルートサーバをでっちあげよう _ global blackout の件、なんか Anonymous は おれ知らねーとか言ってるし、落とすの無理っしょ、とかいう 記事に対して いい指摘だとか言ってる。わし
Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Expressions http://httpd.apache.org/docs/2.4/en/expr.html やSetEnvIfExpr, RewriteCond, Headerで使える評価式 の追加 http://httpd.apache.org/docs/2.4/en/mod/core.html#if ヘッダや環境変数を参照して細かい制御ができるようになったことに加え、else的なブロックを書くのに苦労したことがあるんで朗報です ErrorLogFormat http://httpd.apache.org/docs/2.4/en/mod/core.html#errorlogformat ErrorLogも書式設定できるように。 %L (L
Apache Software Foundation(ASF)のApache HTTP Server Projectは2月21日(米国時間)、2.4系では初となる一般公開(GA)版「Apache HTTP Server 2.4.1」をリリースした。6年ぶりのメジャーアップグレードとなり、多数の新機能が加わっている。 Apache HTTP Serverは17年の歴史を持つオープンソースのWebサーバー。約4億のWebサイトで利用されており、Webサーバー分野では1996年4月以来トップを独占しているという。 Apache HTTP Server 2.4系ではコア部分およびモジュールに多くの変更が加えられ、また新しいモジュールも多数加わっている。APIについては2.2系を拡張したものとなり、Apache HTTP Server 2.2で動作していたモジュールやアプリケーションについてはリコン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く