タグ別アーカイブ: MT

other

エックスサーバのベーシック認証設定で.htpasswdのフルパス間違ちゃった話

 

エックスサーバで、MTの管理画面にベーシック認証かけようとして、ちょっと躓いたのでメモ。

基本的に作り方は他のサーバと一緒。
.htaccessと.htpasswdつくってサーバにあげるだけ。

.htaccess

<Files mt.cgi>
AuthUserFile /フルパス/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
</Files>

MTの管理画面入口はデフォ名がmt.cgiなので、1行めで指定。
2行目に.htpasswdの場所をフルパスで記述。

しかし何度やっても上手く行かず、パスワードの暗号化失敗してるのかと思って、他のサーバで試したけど、
他のサーバなら上手く行く。

ということでフルパスが違うのかと調べたら、違ってた。

エックスサーバのフルパスは、どうやらhome/ユーザ名/で始まるらしい。
今回、Winscpで右クリック>フルパスをクリップボードにコピー でフルパス取得してたんだけど、
これだと一番上がユーザ名になっちゃってて、それで.htpasswdを見つけられなかったらしい。

おまけ
フルパスの調べ方

 <?php
echo __FILE__;
?>

 
↑をテキストエディタに書いて、適当な名前.phpで保存。
調べたいディレクトリにほりこんでブラウザからアクセスしたら、フルパス取得してくれます。

おまけ2
.htpasswdの書き方
ID:PW
の形で書くだけ。
ただし、PWは暗号化するべし。

→→暗号化までしてくれる便利なジェネレータはこちら。
たまに使わせて頂いています。

php

MTでPHPを動かす方法(.htaccess使用ver)

 

2013/9/5追記
ブルートフォースアタックが猛威を奮っています。
ページや投稿内でPHPが動く状態にしておくと、悪意あるスクリプトなどを埋め込まれた際に被害が拡大する恐れがあります。
非推奨ですので、自己責任でお願いします。

———————————–
Movable Typeはトラウマがあってあんまり好きじゃない。
でもちょっと弄る仕事があるので、メモ。

MTでPHPを使う方法。

方法としてはいくつかあるけど、テンプレートをPHP化すると、勿論URLが変わってしまって、リダイレクトとか面倒だし、SEO上も良くないので、これは却下。

.htaccessに「HTMLファイルでもPHP動きなさいよ」っていう命令を書いてあげる。
記述方法はサーバーによりまちまちなので、使用サーバーに従うべし。

Xサーバー
—————————-
AddHandler x-httpd-php .html
—————————-

ヘテムル
—————————-
AddHandler php4-script .html
※PHP4 を利用したい場合

AddHandler php5-script .html
※PHP5.2 を利用したい場合

AddHandler php5.3-script .html
※PHP5.3 を利用したい場合

AddHandler php5.4-script .html
※PHP5.4 を利用したい場合
—————————-

さくらインターネット
—————————-
※公式には「不可能」
さくらインターネットFAQ参照
なんか以前にPHPの脆弱性がどうとか。
でも調べれば偉い人たちが方法を見つけて教えてくれているのでそちらを参照。
「htaccess php html さくらインターネット」とGoogle先生に聞いて1位だったサイト様
—————————-

今回はヘテムル使用だったけど、これだけでは parse errorが出た。
怒られたのは、1行目。
1行目はXML宣言。
原因はXML宣言もPHPと判断してしまうせいらしいので、XML宣言をPHPで書いてあげれば解決。
このMTではシステムテンプレートにheaderを置いていたので、当該システムテンプレートを編集して完了。
xml1.0のutf-8ならこんな感じ↓

<?php echo'<?xml version="1.0" encoding="utf-8"?>'."n";?>