さくらレンタルサーバーでPHPを使うときにする設定まとめ

業務でよくさくらのレンタルサーバーを利用しているのですが、特に設定をしないでそのまま使うといろいろと不都合が発生することがあります。リクエストが勝手にエスケープされて、プログラム中のエスケープとダブって二重エスケープになってしまったり、タイムゾーンが設定されていないとエラーがでたり(これらは僕がPHP5.3.8に切り替えて使っているからかもしれません、というかPHP5.3.x自体のデフォルトの設定かもしれません、そのあたりは未調査です…)。その度に毎回PHPの設定について調べていたので、今回まとめてみました。

標準のPHPではなく、PHP5.3.xを使う

  1. サーバーコントロールパネルにログイン
  2. サーバーツールの設定内の PHP言語に関する設定 => PHPのバージョン選択 をクリック
  3. 新しいバージョンのプルダウンから、PHP5.3.8を選択(ビジネスプロの場合はモジュール版を使えるのでチェック)。

参考

PHPの設定を変更する

ここからが本番です。

  1. サーバーツールの設定内の PHP言語に関する設定 => PHP設定の編集 をクリック
  2. 下記の設定を記述し、設定を保存する。

    ; error_reporting = "2047"
    ; display_errors = On
    ; log_errors = On
    ; error_log = "/home/アカウント名/log/phperror.log"
    display_errors = Off
    magic_quotes_gpc = Off
    date.timezone = 'Asia/Tokyo'
    output_buffering = Off
    mbstring.language = Japanese
    mbstring.encoding_translation = off
    mbstring.http_input = pass
    mbstring.http_output = pass
    mbstring.internal_encoding = UTF-8
    mbstring.substitute_character = none
    mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII
    
    post_max_size = 32M
    upload_max_filesize = 24M
    

文字コードを自動変換されると都合がわるいことが多いので、自動変換まわりは利用しないように設定。エラーの表示、出力はコメントアウトしていますが、テスト環境等でエラーの表示が必要であれば「error_reporting」「display_errors」のコメントを外せばOKです。ログを出力する場合は「log_errors」「error_log」のコメントを外してください。ただし、ログを出力する場合は、事前にログファイルを作成しておくがあるので、SSHでログインして空のログファイルを作成しておいてください。

また、default_charsetの設定を省略しているため、ヘッダーに文字コードが自動的に出力されません。そのため、スクリプト中で

header('Content-Type: text/html; charset:utf-8');

のような感じで、スクリプト側でContent-typeを送信します。

参考

PHPの設定ではないけど、しておいたほうが良いかもしれないこと

さくらのレンタルサーバーは、ApacheのIndexesが有効になっているため、indexとなるページがない場合、ディレクトリやファイルのリストが表示されてしまいます。Wordpress等でリクエストを一箇所に集めて処理する場合なら良いかもしれませんが、そうで無い場合は「さくらサーバーでの Index of 表示をさせない手順 | ホームページ作成SEOマニアックス」なんかも設定していたほうが良いかもしれません。

  • ブックマーク
  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。