ワイズリマインダー

SynologyでHTMLファイル内のPHPを実行する方法|短縮タグが動かない時の対処法

SynologyでPHPを書いたのに表示されるだけ?

Synology NASでWeb Stationを使い、簡易Webサーバーを立ち上げる人も多いと思います。

ですが、


<?= date('Y-m-d') ?>

のようなPHPコードを書いても、

そのまま文字として表示される

という現象に遭遇することがあります。

特に「.html」ファイル内でPHPを書いた場合に発生しやすいです。

 

原因はHTMLがPHPとして処理されていないため

通常、ApacheやNginxでは、

.php

拡張子のみPHPとして実行されます。

つまり、

index.html

内にPHPを書いても、単なるHTMLファイルとして扱われるため、PHPは実行されません。

 

一番簡単なのは拡張子を変更する方法

もっとも簡単なのは、

index.html
↓
index.php

へ変更する方法です。

これだけでPHPとして実行されるようになります。

ですが、

「既存HTMLをそのまま使いたい」
「HTML拡張子のままPHPを動かしたい」

というケースもあります。

 

.htmlでもPHPを実行させる方法

Apache設定で、

AddHandler application/x-httpd-php .html

を追加することで、HTMLファイルでもPHPを実行可能になります。

Synologyでは、.htaccess を利用するケースが多いです。

例えば、

/web/.htaccess

に以下を記述。

AddHandler application/x-httpd-php .html

これで、

index.html

内のPHPコードも実行されるようになります。

 

短縮タグ <?= が動かない場合

さらに、


<?= date('Y-m-d') ?>

が動かない場合があります。

この場合は、


<?php echo date('Y-m-d'); ?>

へ変更すると動作するケースがあります。

 

short_open_tag設定も確認

PHP設定によっては、短縮タグが無効化されています。

以下設定を確認。

short_open_tag

ただし、


<?= ?>

は最近のPHPでは基本的に有効なことが多いため、実際には別原因であるケースもあります。

 

SynologyではPHPプロファイル設定も重要

Web Stationでは、

・PHPバージョン
・PHPプロファイル
・Apache/Nginx設定

が複数存在します。

そのため、

「PHPを有効にしたつもりでも、対象サイトで別プロファイルを使っていた」

というケースもあります。

Web Stationの「Webサービス ポータル」で対象サイト設定を確認すると解決する場合があります。

 

まとめ

SynologyでHTMLファイル内のPHPを実行したい場合は、

・拡張子を .php に変更
または
・AddHandler を設定

する必要があります。

また、

・short_open_tag
・PHPプロファイル
・Web Station設定

も合わせて確認すると、原因切り分けがしやすくなります。

特にSynologyは設定箇所が複数あるため、Web Station側の設定確認も重要です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

検索

最近のコメント

最近の投稿

タグ

フィード配信

アーカイブ

外部リンク