Home > Apache Archive

Apache Archive

UbuntuのApacheでmod_rewriteを有効にする

Mac OS X 10.5.7上のVMware FusionにインストールしたUbuntu 9.0.4 ServerのApacheで「mod_rewrite」を有効にする。(インストールした、デフォルトの状態では無効)

Continue reading

CentOS 5.3 ServerにLAMP環境の構築

Mac OS X 10.5.7上のVMware FusionにインストールしたCentOS 5.3 ServerにLAMP環境を構築し、PHPとMySQLの接続が出来るかまでを確認するメモ。(PHPはパッケージマネージャを使わないでソースからコンパイルしてインストール)

Continue reading

Ubuntu Serverでmod_rewriteを有効にする

Linux(Ubuntu Server)における apache2 で mod_rewrite を有効にするためのメモ。

MacPorts で構築した環境や、xampp 環境のようにデフォルトでは有効になっていないので、自分でセットアップする必要がある。

何かインストールする手順があるのかと思ったら、以下のコマンドで簡単セットアップだった。
(これは Ubuntu だからなのか、Linux ならどれもそうなのか、それは分からないけど)

$ sudo a2enmod rewrite Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.

上記コマンドで Module rewrite は installed となったので、apache を再起動させて、これを有効化する。

$ sudo apache2ctl restart

以上。(念のため phpinfo(); で見てみると、Loaded Modules の項目で mod_rewrite が確認できた)

この状態だとモジュールが読み込まれて利用可能になっただけなので、実際に mod_rewrite の設定を有効にして使いたい場合は(.htaccess 等で記述した設定を有効にしたい場合) apacheの設定ファイルを以下のように修正する。

$ sudo vim /etc/apache2/sites-available/default

で、このファイルを開いて以下の部分の「AllowOverride」を「All」にし、apache を再起動。

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All # この部分がデフォでは None だった
Order allow,deny
allow from all
</Directory>

参考:Ubuntu Serverにおけるapacheの設定ファイル

Ubuntu ServerにおけるapacheとMySQLの起動・停止・再起動

Ubuntu Server における apache の起動・停止・再起動

$ sudo /etc/init.d/apache2 start
$ sudo /etc/init.d/apache2 stop
$ sudo /etc/init.d/apache2 restart

または(パスの指定がないので、こっちのほうが簡単)

$ sudo apache2ctl start
$ sudo apache2ctl stop
$ sudo apache2ctl restart

Ubuntu Server における MySQL の起動・停止・再起動

$ sudo /etc/init.d/mysql start
$ sudo /etc/init.d/mysql restart
$ sudo /etc/init.d/mysql stop

.htaccessでIPアドレスによるアクセス制限をかける

モバイルのみ閲覧にする例。
(まだ実機で確認してないけど)

Apache で .htaccess を使えるようにした上で

.htaccess(中身)

order deny,allow
deny from all
 
#docomo
allow from 210.153.84.0/24
# 以下略
 
#au
allow from 210.169.40.0/24
# 以下略
 
#softbank
allow from 123.108.236.0/24
# 以下略

上記の例以外の、各キャリアの IP アドレス情報は以下のリンク先を参照。
キャリアごとのIPアドレス情報

.htaccess を使ってアクセス端末ごとにリダイレクト

webroot/m
このディレクトリに以下の記述をした
.htaccess を置く。

.htaccess の内容

# Options -Indexes
# < IfModule mod_rewrite.c>
 
# DoCoMo
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ /i/ [R]
 
# Softbank
RewriteCond %{HTTP_USER_AGENT} J-PHONE
RewriteRule ^$ /sb/ [R]
RewriteCond %{HTTP_USER_AGENT} Vodafone
RewriteRule ^$ /sb/ [R]
RewriteCond %{HTTP_USER_AGENT} SoftBank
RewriteRule ^$ /sb/ [R]
 
# AU KDDI
RewriteCond %{HTTP_USER_AGENT} KDDI
RewriteRule ^$ /au/ [R]
RewriteCond %{HTTP_USER_AGENT} UP.Browser
RewriteRule ^$ /au/ [R]
 
# DDI Pocket
RewriteCond %{HTTP_USER_AGENT} DDIPOCKET
RewriteRule ^$ /ddi/ [R]
 
# WILLCOM
RewriteCond %{HTTP_USER_AGENT} WILLCOM
RewriteRule ^$ /will1/ [R]
 
# iPod
RewriteCond %{HTTP_USER_AGENT} iPod
RewriteRule ^$ /ipod/ [R]
 
# iPhone
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule ^$ /iphone/ [R]
 
# WILLCOM
RewriteCond %{HTTP_USER_AGENT} PDA
RewriteRule ^$ /will2/ [R]
 
# PC Internet Explorer Firefox
RewriteCond %{HTTP_USER_AGENT} Mozilla
RewriteRule ^$ /pc/ [R]
 
# PC Opera
RewriteCond %{HTTP_USER_AGENT} Opera
RewriteRule ^$ /pc/ [R]
 
# Mac Safari
RewriteCond %{HTTP_USER_AGENT} Safari
RewriteRule ^$ /pc/ [R]
# < /IfModule>

モバイル、PC用のリダイレクト先ディレクトリは
ルート直下に置く。
webroot/i
webroot/au
webroot/sb
webroot/pc

http://hogehoge.hoge/m

にアクセスすると、リダイレクトされて

Docomo端末はhttp://hogehoge.hoge/i/index.htmlを表示
au端末はhttp://hogehoge.hoge/au/index.htmlを表示
SoftBank 端末は http://hogehoge.hoge/sb/index.htmlを表示
PCは.htaccessファイルに記述したブラウザの場合だけ、/pc/index.htmlを表示

ソース等はこちらにお世話になりました。
無料ウェブ便利ツールを公開配布中 / システマニア
ありがとうございました。

Apache2のエラーログの場所

問題解決の糸口に、超強力になるということが最近やっと分かった(やっとそのレベルまで来た)のでメモ。

MacPorts

/opt/local/apache2/logs/error_log

XAMPP

/Applications/xampp/logs/erro_log

Linux(Ubuntu)

/var/log/apache2/error.log

CSSと違って、とっても親切に指摘してくれるから有り難い。

Ubuntu ServerにおけるApacheの各種設定ファイルについて

/etc/apache2/apache2.conf
apache2の全体設定用ファイル

/etc/apache2/conf.d/
各種Webアプリケーションなどの設定ファイルを配置するディレクトリ

/etc/apache2/envvars
環境設定ファイル

/etc/apache2/httpd.conf
過去の互換性のために存在するファイル(中身は空)

/etc/apache2/mods-available/
モジュールファイルが置かれるディレクトリ

/etc/apache2/mods-enabled/
使用するモジュールへのリンクファイルが置かれるディレクトリ

/etc/apache2/ports.conf
ポート番号

/etc/apache2/sites-available/
サイト定義ファイルが置かれるディレクトリ

/etc/apache2/sites-enabled/
使用するサイト定義ファイルへのリンクファイルが置かれるディレクトリ

/etc/init.d/apache2
rcスクリプト

/usr/sbin/a2dismod
モジュールを無効にする

/usr/sbin/a2dissite
サイトを無効にする

/usr/sbin/a2enmod
モジュールを有効にする

/usr/sbin/a2ensite
サイトを有効にする

/usr/sbin/apache2
実行用バイナリ

/usr/sbin/apache2ctl
コントロール用スクリプト

/var/www/
HTMLファイルや画像ファイルなどを配置するディレクトリ

/var/log/apache2/access.log
クライアントからのアクセスを記録するログファイル

/var/log/apache2/error.log
エラーを記録するログファイル

参照URL:徒然なるままに・・・ | Apache:インストール
他にも詳しくいろいろと。参照させていただきました。ありがとうございました。

MySQLとApacheの起動、再起動、停止

MySQLとApacheの起動、再起動、停止について理解が曖昧&間違っていたので、あらためてメモ。

my.cnf (MySQL の設定ファイル)を編集した場合、この編集内容を有効にするには MySQL Server の再起動が必要。
(この設定ファイルの場所は /etc/mysql/my.cnf )

以下、上から順に起動、再起動、停止のコマンド。

$ sudo /etc/init.d/mysql start
$ sudo /etc/init.d/mysql restart
$ sudo /etc/init.d/mysql stop

これは Ubuntu Server でのもの。(Linux全般そうなのかな?)

MacPortsで構築した環境だと以下のコマンドになる。
(ついでに Apache についても記しておく)

MySQL(version 5 の場合)

$ sudo /opt/local/share/mysql5/mysql/mysql.server start
$ sudo /opt/local/share/mysql5/mysql/mysql.server restart
$ sudo /opt/local/share/mysql5/mysql/mysql.server stop

Apache(version 2 の場合)

$ sudo /opt/local/apache2/bin/apachectl stop
$ sudo /opt/local/apache2/bin/apachectl start

特定のディレクトリにBasic認証をかける

MacPorts で作った /opt 以下の環境で
/htdocs/eclipse3/secure というディレクトリに認証をかけてみたメモ。

◎パスワードファイルの作成
/opt/local/apache2/bin/htpasswd を使用して MD5 によるパスワードファイルを作成する。

$ sudo htpasswd -c /opt/local/apache2/conf/password showjin
(オプションの -c は、新しくパスワードファイルを作成することを意味する)

このコマンドを実行するとパスワードを二度尋ねてくるので、パスワードを入力する。

これで、/opt/local/apache2/conf 内に、ユーザとそのパスワードを管理するためのファイル password が作成され、その中に showjin というユーザと、いま入力したパスワード( MD5 で暗号化されたもの)が記述されている。

*つづけて他のユーザ(およびそのパスワード)を登録する際には、オプションの -c は不要。

$ sudo htpasswd /opt/local/apache2/conf/password user_name

◎グループファイルの作成
いくつかのユーザをグループ単位でまとめて登録するためのもの。(コマンドは不要で、テキストファイルを作成するだけでいい)

・ディレクトリ
/opt/local/apache2/conf

・ファイル名
group

・書式
グループ名: ユーザ名1 ユーザ名2(改行はなしよ)
例:MyGroup: showjin showjin2

◎認証機能を有効にする
apache の設定ファイル httpd.conf を編集して、上記で用意したユーザ、グループによる認証機能を有効にする。

/opt/local/apache2/bin/httpd.conf の最後のほうに以下の記述を追加する。

<directory "/opt/local/apache2/htdocs/eclipse3/secure">
AuthType Basic
AuthName "Sample Realm"
AuthUserFile "/opt/local/apache2/conf/password"
AuthGroupFile "/opt/local/apache2/conf/group"
Require group MyGroup
</directory>

*AuthType は認証の種類。
*AuthName は認証名。
*AuthUserFile と AuthGroupFile はパスワードファイルとグループファイルの指定。
*Require は MyGroup グループが必須であることを指定。

編集内容を有効にするために apache を再起動。

$ sudo /opt/local/apache2/bin/apachectl restart

これで、http://localhost/eclipse3/secure ディレクトリに BASIC 認証がかかった。

Home > Apache Archive

Archives

Return to page top