だいぶ旧バージョンのWordpressサイトを最新バージョンに上げる必要があり、そのまま上げるのは怖すぎるので、MAMPで作ったローカル環境にサイトを移設して検証しようと思ったのですが……
MAMPではPHPのバージョンが新しいため、そのままではサイトが動かない……つらい……
そこでレンタルサーバーでよくあるhtaccessに記述したらそのバージョンのPHPで動くようにできるやつ、ローカルでも実現できねーかなーと思って調べてみたら、出来ました。備忘録がわりに書いておきます。
なお、Macでのお話です。また/Applications/MAMP/
にインストールした場合です。環境が異なる場合は適宜読み替えてください。
1、シンボリックリンクを作成
ターミナルを立ち上げて、以下のコマンドを実行します。
cd /Applications/MAMP/cgi-bin
ln -s /Applications/MAMP/bin/php/php5.6.40/bin/php-cgi php56
1行目:/Applications/MAMP/cgi-binディレクトリに移動
2行目:PHP5.6.40のCGI版へのシンボリックリンクを「php56」という名称で作成
上記は5.6.40で動かしたい場合です。/Applications/MAMP/bin/php/
を覗けば、どのバージョンが入っているか分かります。
動かしたいバージョンに置き換えて実行してください。
2、httpd.confを修正・追記
/Applications/MAMP/conf/apache/httpd.conf
を編集します。
ファイルのどこかに以下の記述があるので、
<Directory "/Applications/MAMP/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
以下のように書き換えます。
<Directory "/Applications/MAMP/cgi-bin">
AllowOverride None
Options FollowSymLinks
Require all granted
</Directory>
Options None
を FollowSymLinks
に変更することでシンボリックリンク先を参照できるようになります。
また、ファイルのどこかに以下の一文を追加してください。
Action php5.6-script /cgi-bin/php56
php5.6-script
の部分はなんでもいいです。php5.6-script
というアクションがリクエストされた時に/cgi-bin/php56
が実行されるよ、という感じの意味です。
3、htaccessの編集
以下の記述をhtaccessファイルに記述してください。
AddHandler php5.6-script .php
phpファイルだったらphp5.6-script
というアクションを実行するよ、みたいな感じの記述です。
先にhttpd.conf
でphp5.6-script
というアクションのパスを/cgi-bin/php56
に設定していました。
これはPHP5.6.40のCGI版へのシンボリックリンクなので、つまりphpファイルが来たらPHP5.6.40のCGI版が動作する、といった感じです。
403エラーが出るときはおそらく/Applications/MAMP/bin/php/php5.6.40/bin/php-cgi
のパーミッション周りだと思うので、ファイルやディレクトリの権限を確認してみてください。755とかにすればOKかと。
これでMAMPでhtaccessを使ってPHPのバージョンを指定できるようになってる、はず。たぶん。
ダメでも怒らないでください。では。
よろしければどうかご感想を!
※コメントは、サイト管理者による承認後、ページに表示されます。
この記事は、感想を受け付けていません