コメントありがとうございます。 残念ながら、もうSlingboxを使っていないた…
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側の設定確認も重要です。
検索

コメントを残す