次のエントリ: ActivePerlのppmがGUIになってる [perl]
Apache2.2 SSL WebDAV おまけでPHP
2008-02-22-1 / カテゴリ: [Apache][PHP][linux][ubuntu] / [permlink]
某サイトでゲットした大量の某曲を友人と共有するために整備してみた。
元々 apache-ssl(1.3系) 使ってたが、WebDAV するなら 2.x系がいーだろーと入れ替えてみた。
設定を見てみると、httpd.conf じゃなくて、複数ファイル構成になってるっぽい。調べると、debian系のスタイルっぽい?
自分で分けたとか、デフォルトでそうとかならともかく、突然やられると迷う…
1 SSL対応
mod-ssl とかはない。最初から付いてる(が無効になってる)。
使えるモジュールは mods-available 以下に設定ファイルが転がっている。そのうち、有効になっているモジュールが mods-enabled からリンクされている。
モジュールを有効にするには、a2enmod を available 以下のファイル名(拡張子なし)で実行
んで、設定。システムワイドに設定してもいいけど、モジュールと同様にサイトについても sites-available 以下にサイト毎にファイル分割管理されるみたいなんで、バーチャルサーバ設定にしてみる。
設定はデフォルトの sites-available/default をベースに、/usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz を必要なとこだけパクってくればいい。サーバ証明書は前([2005-08-28-1])のを流用。(その後CAの期限が切れて作りなおしたような…)
こんな感じ(コメント除く)
2 DAV対応
システムロケールがUTF8だから日本語は問題ないだろーとタカをくくっていたが…問題なかった。モジュールも入ってるので有効化するだけ。
設定は、さっきのバーチャルサーバに追加する。サイト全体でもいいけど、特定フォルダを DAV 設定するので、エイリアスを作る。
basic認証は、.htaccess 使ってもいいけど、DAVアクセスはシステムワイドに設定されてる(.htで始まるファイルへの)アクセス制限が効かないので、サーバ設定にしといた方がよい。
Header 設定は、windowsがアクセスする際に、存在しないファイルへのアクセス要求による利用不可能状態になるのを防ぐための設定。
DAVLockDB については、mods-available/dav_fs.conf に設定されているので、ここには特に記述は必要ない。
ちなみに dav 設定では、シンボリックリンクが効かない。代替手段として、Alias を使う…しかないんかな。ちなみに、日本語はシステムロケールと設定ファイルのエンコードが合ってれば特に問題ない。
こんな感じ
(あ、なんの曲かバレたな)
3 PHP設定
少なくとも、ubuntu 7.10 の基本リポジトリには、apache2.2 で使える php4 パッケージはなさげ。
php使いじゃないのと、とりあえず中で飼ってる pukiwiki が動けばいいので、php5 で問題なし。
4 ついでにCGI設定 とか
つーか、共有相手って同じマンションの向かいの部屋だから、頑張ればWLANでもいいんだけどな…(笑)
元々 apache-ssl(1.3系) 使ってたが、WebDAV するなら 2.x系がいーだろーと入れ替えてみた。
# aptitude apache2とりあえず、ベースはこれで入る。
設定を見てみると、httpd.conf じゃなくて、複数ファイル構成になってるっぽい。調べると、debian系のスタイルっぽい?
自分で分けたとか、デフォルトでそうとかならともかく、突然やられると迷う…
1 SSL対応
mod-ssl とかはない。最初から付いてる(が無効になってる)。
使えるモジュールは mods-available 以下に設定ファイルが転がっている。そのうち、有効になっているモジュールが mods-enabled からリンクされている。
モジュールを有効にするには、a2enmod を available 以下のファイル名(拡張子なし)で実行
# a2enmod ssl無効にするには a2dismod
んで、設定。システムワイドに設定してもいいけど、モジュールと同様にサイトについても sites-available 以下にサイト毎にファイル分割管理されるみたいなんで、バーチャルサーバ設定にしてみる。
設定はデフォルトの sites-available/default をベースに、/usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz を必要なとこだけパクってくればいい。サーバ証明書は前([2005-08-28-1])のを流用。(その後CAの期限が切れて作りなおしたような…)
こんな感じ(コメント除く)
<VirtualHost 192.168.0.10:443> DocumentRoot "/var/www/ssldocs" ServerName www.example.org:443 ServerAdmin www@example.com ErrorLog /var/log/apache2/error-ssl_log TransferLog /var/log/apache2/access-ssl_log SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/ssl/servkey/server.crt SSLCertificateKeyFile /etc/ssl/servkey/server.key SSLCACertificateFile /etc/ssl/servkey/ca.crt <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/lib/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /var/log/apache2/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>443/TCP による listen は、ports.conf に
Listen 80 <IfModule mod_ssl.c> Listen 443 </IfModule>があるはずなので特に問題ないはず。
2 DAV対応
システムロケールがUTF8だから日本語は問題ないだろーとタカをくくっていたが…問題なかった。モジュールも入ってるので有効化するだけ。
# a2enmod dav # a2enmod dav_lock # a2enmod headersdav_fs は dav を入れると、依存のために勝手に有効化する。headers は windows からアクセスする際のおまじないに必要。
設定は、さっきのバーチャルサーバに追加する。サイト全体でもいいけど、特定フォルダを DAV 設定するので、エイリアスを作る。
Alias /webdav "/var/www/webdav" <Location "/webdav"> Dav on Order allow,deny Allow from all Header add MS-Author-Via "DAV" AuthUserFile /var/www/.htpasswd AuthGroupFile /dev/null AuthName "Input Password" AuthType Basic require user foo bar </Location>まぁこんな感じ。
basic認証は、.htaccess 使ってもいいけど、DAVアクセスはシステムワイドに設定されてる(.htで始まるファイルへの)アクセス制限が効かないので、サーバ設定にしといた方がよい。
Header 設定は、windowsがアクセスする際に、存在しないファイルへのアクセス要求による利用不可能状態になるのを防ぐための設定。
DAVLockDB については、mods-available/dav_fs.conf に設定されているので、ここには特に記述は必要ない。
ちなみに dav 設定では、シンボリックリンクが効かない。代替手段として、Alias を使う…しかないんかな。ちなみに、日本語はシステムロケールと設定ファイルのエンコードが合ってれば特に問題ない。
こんな感じ
Alias /webdav/music/初音ミク "/share/music/ニコニコ/初音ミク" Alias /webdav "/var/www/webdav"ディレクトリも作っておく
$ sudo mkdir -p /var/www/webdav/music/初音ミク (root(LANG=C)だと作れん…)Alias の記述順に注意。
(あ、なんの曲かバレたな)
3 PHP設定
少なくとも、ubuntu 7.10 の基本リポジトリには、apache2.2 で使える php4 パッケージはなさげ。
php使いじゃないのと、とりあえず中で飼ってる pukiwiki が動けばいいので、php5 で問題なし。
# aptitude install libapache2-mod-php5 # a2enmod php5
4 ついでにCGI設定 とか
# a2enmod cgi # a2enmod suexecユーザ権限で動かすために。
つーか、共有相手って同じマンションの向かいの部屋だから、頑張ればWLANでもいいんだけどな…(笑)
Referrer (Inside):
[2011-03-08-1] [2005-09-05-2]
次のエントリ: ActivePerlのppmがGUIになってる [perl]
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12