Apache2.4でのアクセス制限の書き方

Apache2.4では2.2で使っていたOrder allow,denyなどの記述が変更され、新しい書き方になったみたいです。ということで、その書き方を調べてみました。

アクセス制限の書き方

mod_authz_coreを使ったアクセス制限の書き方

全てのアクセスを許可する

<Directory "/admin">
  Require all granted
</Directory>

従来の書き方

<Directory "/admin">
  Order allow,deny
  Allow from all
</Directory>

全てのアクセスを拒否する

<Directory "/admin">
  Require all denied
</Directory>

従来の書き方

<Directory "/admin">
  Order allow,deny
  Deny from all
</Directory>

特定のIPのみアクセスを許可する

<Directory "/admin">
  Require ip 123.456.789.012
</Directory>

従来の書き方

<Directory "/admin">
  Order deny,allow
  Deny from all
  Allow from 123.456.789.012
</Directory>

特定の環境変数がある場合のみアクセスを許可する

<Directory "/admin">
  Require env value
</Directory>

従来の書き方

<Directory "/admin">
  Order deny,allow
  Deny from all
  Allow from env=value
</Directory>

リンク

mod_authz_core – Apache HTTP Server Version 2.4
http://httpd.apache.org/docs/current/mod/mod_authz_core.html

Upgrading to 2.4 from 2.2 – Apache HTTP Server Version 2.4
http://httpd.apache.org/docs/2.4/upgrading.html

SQLiteでdateやdatetimeの扱い方

PythonのSQLiteモジュールを使ってdate型やdatetime型を扱う方法

テーブルの作成

$ sqlite3 data.db
sqlite> CREATE TABLE sample(d date, t timestamp);
sqlite> .quit

Pythonでdate型やdatetime型の読み書き

>>> import sqlite3, datetime, time
>>> con = sqlite3.connect('data.db', detect_types = sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)

データの追加

>>> today = datetime.date.today()
>>> now = datetime.datetime.now()
>>> con.execute('INSERT INTO sample(d, t) values (?,?)', (today, now))

データの読み出し

>>> con.execute('SELECT * FROM sample').fetchall()
[(datetime.date(2016, 5, 17), datetime.datetime(2016, 5, 17, 11, 45, 20, 153520))]

ロリポップの転送量制限緩和のお知らせ

レンタルサーバー「ロリポップ」の転送量制限が緩和されたそうです。

「最大40倍!」転送量制限を大幅に緩和いたしました – 2015年12月15日 / 新着情報 / お知らせ – レンタルサーバーならロリポップ!
https://lolipop.jp/info/news/5128/

緩和後の1日あたりの転送量制限は以下の通り。

エコノミープラン40GB/日 ← 1GB/日
ライトプラン60GB/日 ← 5GB/日
スタンダードプラン100GB/日 ← 10GB/日
エンタープライズプラン無制限

大したサイトも運営していないので個人的には余りメリットはありませんが、お値段据え置きでのスペックアップはうれしいです。


実施は昨年12月。