Apache
OS別のディレクトリ構成
Ubuntu 2013/09/12
設定ファイルは以下にある。
/etc/apache2/apache2.conf
以下を Include
している。
/etc/apache2/mods-enabled/*.load
/etc/apache2/mods-enabled/*.conf
/etc/apache2/conf.d/*
/etc/apache2/site-enabled/*
(Ubuntu 12.04 Server, 13.04 Server で確認)
Mac OS X 2013/04/25
設定ファイルは以下にある。
/etc/apache2/httpd.conf
※このファイルの実体は以下にある。
/private/etc/apache2/httpd.conf
以下を Include
している。
/etc/apache2/other/*.conf
(OS X 10.6 で確認)
リバースプロキシ 2013/04/03
RailsなどWEBrickを動かす場合で、80番ポートでWEBrickにアクセスできるようにするには、Apacheにリバースプロキシを設定すると簡単。passengerを入れるほどでもない場合に。
https://github.com/gitlabhq/gitlab-recipes/blob/master/apache/gitlab
Apacheの VirtualHost の設定の中に以下のように書く。
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
ProxyPreserveHost On
.htaccess
ファイル
ファイルが存在しない場合に限り特定のPHPなどで処理する .htaccess
の設定
2013/04/24
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [L]
特定のURLを除外してBASIC認証をかける .htaccess
の設定
2013/12/21
例
Satisfy Any
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "secret area"
AuthType Basic
require valid-user
SetEnvIf Request_URI /welcome.html excludeauth
Order deny,allow
Deny from all
Allow from env=excludeauth
BASIC認証をかけつつ、 SetEnfIf
で特定のURLのときに変数を設定して、
Allow
でその変数が設定されているときのアクセスを許可する。
Satisfy Any
の指定は前半の require
の設定と後半の Allow
の設定のいずれかが満たされれば、アクセスが許可される、という意味。
特定のIPからのアクセスは無条件に許可して、それ以外のアクセスにはBASIC認証をかける .htaccess
の設定
2013/04/09
例
Satisfy Any
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "hoge"
AuthType Basic
require valid-user
Order deny,allow
Allow from 99.99.99.99
Deny from all
一時的にメンテナンス画面に切り替えるための .htaccess
の設定
2013/12/21
.htaccess
の RewriteEngine On
の直後に以下を書く。
RewriteEngine on
RewriteCond %{REQUEST_URI} !^.*\.(js|css|gif|png|jpg)$
RewriteCond %{REQUEST_URI} !/maintenance\.html$
RewriteRule ^(.*) /maintenance.html [R,L]
メンテナンスが終わった後は、上記の RewriteEngine On
以外の3行を消して、代わりに以下を書く。
RewriteRule ^maintenance.html$ / [R,L]
URLの拡張子を .html としたまま、 .php で動かす .htaccess
2013/04/23
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html /$1.php
SSLのCSRの作成方法 2013/04/03
$ ps aux | openssl md5 > rand.dat
$ openssl genrsa -rand rand.dat -des3 2048 > 2012key.pem
33 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
.............................++++++
.......++++++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
$ openssl req -new -key 2012key.pem -out 2012csr.pem
Enter pass phrase for 2012key.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shibuya-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc.
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.example.com
Email Address []:←入力しない
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:←入力しない
An optional company name []:←入力しない
$ openssl rsa -in 2012key.pem -out 2012key-nopass.pem
Enter pass phrase for 2012key.pem:
writing RSA key
$ cat 2012key.pem
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,9B527A3154370DC3
MfBHRtPNOcpsvS/v8iROQiKI0OxkG/BDjgms5UcK8lZ0bVbWh+4pPM5k+cIs16b1
...
S3JLM5rJYiDqD68w+v1nr02eQ29eL4o8wosJJvILs5uGfe9/IbGY0g==
-----END RSA PRIVATE KEY-----
$ cat 2012key-nopass.pem
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDHJclRL5NKhmu6A3trgZJY6ZoRQfrjWcnhbxTNDRjS0sQHib/O
...
WxeCZcn78PNkRhnzV18rmniW7ey3GZt3NfDoGSP+4Gml
-----END RSA PRIVATE KEY-----
$ cat 2012csr.pem
-----BEGIN CERTIFICATE REQUEST-----
MIIBpzCCARACAQAwZzELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBVRva3lvMRMwEQYD
...
EAUvkvx4rxqGKbYSr1fyPGWrTU+JSjEAlqz1QU4HPgrL1639qMroMggf8A==
-----END CERTIFICATE REQUEST-----
opensslコマンド
-> openssl
コマンド