パッチを適用したバージョンのmod-auth-mysqlを使用して、Phpass暗号化パスワードを受け入れることができます。これをubuntuとdebianで行う方法についての説明を含めます。
生のパッチファイルはここから入手できます
PhpassをサポートするためにUbuntu/DebianでMod-auth-mysqlにパッチを適用する
これらの手順はUbuntu10.4、12.04、14.04.5でテストされていますが、最小限の変更で他の多くのDebianベースのプラットフォームで動作するはずです。
パッチを適用した.debパッケージをビルドするための作業ディレクトリを作成します
mkdir mod-auth-mysql-phpass
cd mod-auth-mysql-phpass
パッケージとパッケージソースの構築に必要な依存関係を取得します。
sudo apt-get build-dep mod-auth-mysql fakeroot
apt-get source mod-auth-mysql
新しく作成したソースフォルダに移動します。
cd mod-auth-mysql-4.3.9
Debianツールを使用して、適切にdebian形式のパッチ(.dpatch)を作成します。まず、パッチの現在のリストを確認します。
cat debian/patches/00list
最後の公式パッチはリストの最後にあります。以下のdpatch-edit-patchコマンドの最後の引数として、最後のパッチの名前を使用します。また、新しいphpassパッチの名前として1つ大きい番号を選択します。私の場合、リストの最後のパッチは017-doc_persistent_conn.dpatchであり、phpassパッチの名前は018-phpassです。
dpatch-edit-patch patch 018-phpass 017-doc_persistent_conn.dpatch
dpatch-edit-patchは、カスタムdebian形式のパッチをビルドするために使用する特別なフォルダー内で新しいシェルを開始します。
生のパッチをダウンロードする
wget https://pelam.fi/published_sources/mod-auth-mysql-phpass/patch.diff
生のパッチを適用して削除します。
patch < patch.diff
rm patch.diff
カスタムパッチを生成できることをdpatch-edit-patchに伝えます。
exit
あなたの新しい適切にDebianフォーマットされたパッチを不思議に思う。セキュリティに関心がある場合は、この非公式パッチによって行われた変更も確認する必要があります:)
cat debian/patches/018-phpass.dpatch
.debパッケージのビルド時に適用されるパッチのリストに新しいパッチを追加します。
echo 018-phpass.dpatch >> debian/patches/00list
パッチを適用したパッケージをビルドする
dpkg-buildpackage -b -uc
これで、カスタムビルドされた.debパッケージをインストールできます(ビルドされたパッケージ名はシステムによって異なる場合があります)。
sudo dpkg --install ../libapache2-mod-auth-mysql_4.3.9-13.1ubuntu3_amd64.deb
Phpassを使用してWordpressに対して認証するようにMod-auth-mysqlを構成する
mod-auth-mysqlを有効にします。
sudo a2enmod auth_mysql
新しいモジュールを有効にするためにapacheを再起動します。
sudo service apache2 restart
ドキュメント(現在はPhpassを含む)は、たとえばで表示できます。少ないコマンド
zless /usr/share/doc/libapache2-mod-auth-mysql/DIRECTIVES.gz
Wordpress管理者のみにアクセスを許可するサンプルの.htaccessファイルを次に示します。
AuthType Basic
AuthName "Give Wordpress Administrator username and password"
Auth_MySQL_User YOUR_MYSQL_USER_HERE
Auth_MySQL_Password YOUR_MYSQL_PASSWORD_HERE
Auth_MySQL_Host YOUR_MYSQL_SERVER_HERE
AuthBasicAuthoritative Off
# I don't know a better way to disable the default password file authentication
AuthUserFile /dev/null
Auth_MySQL on
Auth_MySQL_DB YOUR_WORDPRESS_MYSQL_SCHEMA_NAME_HERE
Auth_MySQL_Password_Table wp_users
Auth_MySQL_Username_Field wp_users.user_login
Auth_MySQL_Password_Field wp_users.user_pass
Auth_MySQL_Encryption_Types PHPass PHP_MD5
Auth_MySQL_Group_Table "wp_users, wp_usermeta"
Auth_MySQL_Group_Clause "AND wp_users.ID = wp_usermeta.user_id AND wp_usermeta.meta_key='wp-capabilities' and m.meta_value like '%s:13:\"administrator\"%'"
Auth_MySQL_Persistent On
Auth_MySQL_Authoritative Off
Auth_MySQL_CharacterSet utf8
Require valid-user
Order allow,deny
Allow from all