カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

ユーザーディレクトリの公開の設定について

各ユーザーのホームディレクトリに公開用のディレクトリ(public_html)を置いて、
ドメイン名の後に~(チルダ)とユーザー名をつけてアクセスできるようにする。

例)http://www.example.co.jp/~username/

apacheのデフォルトではユーザーディレクトリは公開されないようになっているので、
公開する場合にはhttpd.confを編集して設定を変更します。

設定ファイルhttpd.confの中の<IfModule mod_userdir.c>ディレクティブのUserDir disableの行頭に#を加えてコメントアウト。
次に、その下の行の#UserDir public_htmlという記載の先頭の#を削除。

続いて、/home/usernameディレクトリのアクセス権を700から705に変更します。
すると、public_html内のホームページのトップページがindex.htmlになります。

以上の設定によりhttp://www.example.co.jp/~username/でユーザーディレクトリの公開が可能になります。

1,612 views

配列を操作する便利な関数

●range
範囲を指定して、まとめて配列を作成
例)range(0, 9999); range("a", "z");

●array_merge
複数の配列を結合
例)$ARRAY = array_merge($ARRAY1, $ARRAY2, $ARRAY3);

1,063 views

apache_note [PHP]

Apacheのログに好きな情報を出力させる。

例)

$val = "hogehoge";
apache_note("originallog", $val);

Apache httpd.confにログフォーマット設定
LogFormat "%h %l %u %t \"%r\" %>s %b %{originallog}n" common

出力結果
192.168.212.51 - - [20/Jul/2005:21:39:03 +0900] "GET /index.php HTTP/1.1" 200 735 hogehoge
1,730 views

気になるもの

HIP HOP for PHP
memchache

PHP 参照渡し
  function test(&$args)

悲観的並行性制御(pessimistic concurrency control)
楽観的並行性制御(optimistic concurrency control)

Java or Ruby

Interface
TypeHinting

住宅ローン控除(減税)
平成25年まで

特優賃

1,373 views

ファイルのダウンロード

System.Net.WebClientクラスを使用してファイルをダウンロードします

//参照を追加
using System.Net;

・単純なダウンロード

public static void getFile(string uri, string filename)
{
    WebClient wc = new WebClient();
    wc.DownloadFile(uri, filename);
    wc.Dispose();
}

・バイト配列でダウンロード

public static byte[] getFile(string uri)
{
    byte[] data;

    //WebClientの作成
    WebClient wc = new WebClient();
    //ファイルをダウンロードする
    try
    {
        data = wc.DownloadData(uri);

        //後始末
        wc.Dispose();

        if (data.Length < 2500)
        {
            return null;
        }
    }
    catch
    {
        data = null;
    }

    return data;
}

・バイト配列から書き込み保存

public static void SaveFile(byte[] data, string filename)
{
    FileStream fsTo = new FileStream(filename, FileMode.Create, FileAccess.Write);

    fsTo.Write(data, 0, data.Length);

    fsTo.Close();
}
1,650 views