続: GMOクラウドVPSでPHPを.htmlファイルで動作させる[php7.1/Plesk Onyx]
前回、.htaccessに追記する方法で、.htmlをPHPとして動作させることに成功したと書きました。
この方法で、目的が達成できたと思い、
Plesk Onyx ダッシュボード > PHP設定>PHPのバージョン7.1.xx
と変更してテスト用に.html拡張子ファイルに
phpinfo();
を記述し実行してみたのですが、PHPのバージョンが5.4.xxのままでした。
Plesk>PHP設定
でバージョン7.1(FPM)になっているのにナゼ.html拡張子のファイルでPHP5.4.xxが実行されているのかというと、予想ですが、
.htaccessによるAddHandler php-script .php .htmlでは、Pleskでドメインごとに割り当てているPHP設定(php.ini)は利用されず、サーバーデフォルトのPHPバージョンが利用されてしまうようです。
そこでGMOサポートに問い合わせたところ、以下の参考URLをいただき、設定を実行してみました。
[Plesk] 拡張子.html でphpを有効に設定できますか?
上記によりますと、ターミナルでの操作が必要になるのですね・・。
高いお金払ってPlesk導入してんのになんでコマンド打たなきゃならんのよ!
という心の声はおいといてこれしか方法がないので、しぶしぶMacのターミナルを立ち上げます。。
これは、システムを最新の状態にアップデートしてくださいね、ということですね。
Plesk上でのGUI操作でもできるので、さっさと済ませましょう。
アップデートはしたくないという場合は飛ばしましょう。
ApacheとNginxの設定を開きます。
<IfModule mod_proxy_fcgi.c>
<Files ~ (\.html$)>
SetHandler proxy:unix:///var/www/vhosts/system/example.com/php-fpm.sock|fcgi://127.0.0.1:9000
</Files>
</IfModule>
赤字の部分を修正してそのままコピペします。
httpsも利用している場合は両方に同じものをコピペします。
ちなみに私はPleskの画面のここでハマったのですが、
HTTP用追加ディレクティブ
HTTPS用追加ディレクティブ
という入力欄が表示されていませんでした。
???と思いいろいろ試して見た結果、
ユーザ「admin」でログインしないと出てこない
みたいです!
さてここからがssh接続をしてコマンド打たなきゃならない部分です。
私はMacユーザなのでMacでの方法を解説します。
1.アプリケーション>ユーティリティ>ターミナル
を起動します。
2.以下のコマンドを入力しEnterを押します。
ssh -l root xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx の部分は契約時に割り振られたIPアドレス、または契約ドメイン名に差し替えてください。
すると
root@xxx.xxx.xxx.xxx's password:
と返ってきますので、契約時にもらったssh用のrootのパスワードを入力し、Enterを押します。
ログインが成功すれば
[root@subxxxxxxx ~]#
のような一行が表示されるはずです。
3.以下のコマンドの赤字部分はご自分のドメインに差し替えて入力し、Enterキーを押します。
vi /var/www/vhosts/system/example.com/conf/php.ini
viはテキストエディターで開くという意味の操作です。
ここではphp.iniというファイルをテキストエディタで開くという意味のコマンドです。
4.viで真っ白な画面が開きますので、以下を入力します。
[php-fpm-pool-settings]
security.limit_extensions = .html .php
[php-fpm-pool-settings]も忘れずに入力します。
5.入力が完了したら、一回escキーを押すと、テキストエディタモードから抜けます。そのあとに「:wq」と打ち、Enterを押します。
これでphp.iniに設定が保存されました。
6.PHP設定を反映させます。
/usr/local/psa/bin/php_settings -u
と打ったあとEnterキー。
しばらくすると、
Per-domain PHP settings of all domains were successfully updated.
成功したよのメッセージが返ってきます。
7.pleskのphpサービスを再起動させます。GMOさんの参考ページでは
plesk-php56-fpm.service
となっていますが、今回はphp7.1を再起動させたいので、
systemctl restart plesk-php71-fpm.service
とコマンドをうちました。
71のとことがPHPのバージョンになりますので、ご自分の環境にあわせて差し替えてください。例えば5.6だったら56ですね。
そして、xxxx.htmlというファイル内にphpinfo();を書いて実行し、PHP7.1の情報が表示されれば成功です。