タグ: Apache

  • FreeBSD10でApache2.4でUser Dirの設定を行ったところ、エラーになり、User Dirが設定されない

    FreeBSD 10.3 で「/usr/local/etc/apache24/extra/httpd-userdir.conf」
    の内容を変更して、httpd.confに「Include etc/apache24/extra/httpd-userdir.conf」
    の設定をして、Apacheをリスタートさせたところ、
    以下のエラーをはいて、UserDir?は使用できなかった。

    root@hoge:/usr/local/etc/apache24 # service apache24 restart
    Performing sanity check on apache24 configuration:
    AH00526: Syntax error on line 10 of /usr/local/etc/apache24/extra/httpd-userdir.conf:
    Invalid command 'UserDir', perhaps misspelled or defined by a module not included in the server configuration
    root@hoge:/usr/local/etc/apache24 #
    

    対処方法は簡単だった。
    httpd.conf に、以下の設定を入れるか、もともとあるコメントアウトを外すだけ。

    LoadModule userdir_module libexec/apache24/mod_userdir.so

    ユーザ用のディレクトリを設定するのにも、モジュールの読み込みが必要なだけだった。
    わかってしまえば、大したことがなかった。

  • Client does not support authentication protocol が表示されてMySQLに接続できない

    MySQL5.1とPHP5.2.17で接続しようとしたところ、下記のエラーが表示されて、PHPからMySQLに接続できなかった。(これを使いたいわけではなく、かなり前に作った検証環境・・・)

    このエラーは、MySQLのバージョンにより、認証方式が変更されたことによる影響。PHP側のMySQLクライアントのバージョンが古いのが原因。

    ■エラーメッセージ

    Client does not support authentication protocol requested by server; 
    consider upgrading MySQL client.
    

    PHP側のMySQLクライアントを新しいものにするのが一番だが、できないときはMySQLの設定を変更することで回避可能。

    対応方法としては、my.cnfに古いパスワード形式の指定をする。

    [mysqld]
    (・・・中略・・・)
    old_passwords = 1
    

    my.cnfの中から、[mysqld] の箇所を探して、そこに「old_passwords=1」の記述を入れる。設定変更した後は、MySQLサーバのプロセスを再起動する。

    テストしても、同じ様になる場合は、念のため、ウェブサーバも再起動する。 (自分の環境では、Apacheも再起動しないとダメだった。)

  • Apacheのログにレスポンスタイムを記録する

    httpd.conf にあるログ設定を変更することで、ログにレスポンスタイムを記録するようにできる。

    1ページあたりのレスポンスタイムを調べることにより、どのURLで動作が鈍くなっているのか、あたりをつけることが可能になる。問題は、一度、サーバが負荷で遅くなってしまうと後に続くレスポンスの反応も悪くなってしまう。そのため、レスポンスタイムだけでは、どのページが遅いのかを判断できない。レスポンスの悪化の原因は、レスポンスが悪くなり始めた最初のアクセスをログから探し出すと良い。

    • 変更前
      LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined

    • 変更後
      LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” %D” combined

    %Dを足すことにより、レスポンスタイムをマイクロ秒で記録することができる(Apache2.0以降)

    %Tを足すことにおり、レスポンスタイムを秒単位で記録することができる。

    ■参考URL
    http://httpd.apache.org/docs/2.0/mod/mod_log_config.html