カテゴリー別アーカイブ: server

さくらレンタルサーバー PHPのバージョン変更

僕はさくらレンタルサーバーを借りているのですが、先日FuelPHPを実行させようとしたところ、PHPエラーが発生し、うまく動作しませんでした。
FuelPHPは、PHP 5.3.3以上のバージョンで動作可能であることを思い出し、早速さくらレンタルサーバー上のPHPバージョンを”php -v”で確認したところ、なんとバージョン5.2でした。。(>_<) しかた無くVirtualBox上でCentosを入れて、その上でPHP5.4でも入れて動かして見ようかなぁと思っていたところ、コントロールパネルでPHPのバージョンを変更出来るではありませんか! (今頃知ったのかよ!・・・と言われそう。) sakura_php

バージョンを5.4に上げて、無事にFuelPHPが動作しました♪

nginxでのBasic認証の設定方法

nginxを使っていて、Basic認証かけたいなぁと思って、いつものようにApacheでの.htaccessファイルを設定しても、かからない。。

いくらやってもかからなくて、調べたら、.htaccessファイルは使用することが出来ないということが分かりました。

では、Basic認証を設定することが出来ないのかというと、設定することは出来ます。

Apacheのような手軽さはないものの、
・.htpasswdファイルの作成
・nginxの”.conf”ファイルの設定
で実現することが出来ます。

.htpasswdファイルの作成

Apacheでの.htaccessファイルとセットで作成する必要がある.htpasswdファイルをいつものように作成します。
.htpasswdファイル名は、”.htpasswd”でなくても問題ありません。任意の名前で大丈夫です。
※ 形式は “ID:暗号化パスワード”です。
example_user:36Qw5FVxVWdEk

【参考】
htpasswd用パス作成ツール – phpspot”

nginx.confファイルの設定

下記のように、2行追記するだけです。
※/etc/nginx/conf.d/.htpasswdに置く場合

サイト全体にかける場合

server {
  listen *:80;
  server_name example.co.jp;
  #Basic Auth
  auth_basic “admin only”;
  auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}

特定のディレクトリにかける場合

server {
  listen *:80;
  server_name example.co.jp;

  location /wp-admin/ {
  #Basic Auth
  auth_basic “admin only”;
  auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
  }
}

ApacheとNginxでのBasic認証の設定の違い

ApacheでBasic認証をかける場合は、サイトのドキュメントルート等、かけるディレクトリ直下に”.htaccess”と”.htpasswd”ファイルを配置する必要がありましたが、nginxで運用するのであれば、”.htpasswd”ファイルの配置ディレクトリは、nginx.confファイルと同じディレクトリに配置すると良いと思います。

そのため、バーチャルホストで区切っている場合、ファイル名を”.htpasswd_virtualhost_name”のようにして、”nginx.conf”と同じディレクトリは配置するのが、私としてはまとまり感があって、良いかなと思いました。