PHP 8.2/ Smarty

Win

OSが「Windows Server 2022」 のWindows専用サーバーの PHP / Smartyについて、具体的な使用例などをご案内いたします。

このページは、OSが「Windows Server 2022」のWindows専用サーバーにインストールされているPHP8.2系の概要ページです。

※ OSが「Windows Server 2019」のWindows共用・専用サーバーのPHP (PHP8.1系)についてはこちらをご覧ください。

※ 2024年9月以前にセットアップされた、OSが「Windows Server 2019」のWindows専用サーバーのPHP (PHP7.4系)についてはこちらをご覧ください。

※ OSが「Windows Server 2016」のWindows共用・専用サーバーのPHP (PHP7.1系)についてはこちらをご覧ください。

ご利用頂いているサーバーのOSのバージョンは、利用しているドメインのウェブサーバーのユーザーページ(コントロールパネル)へログインし、ユーザーページ左下の「ご利用バージョン」欄に記載されています。

PHP 8.2系について

「PHP」とは、HTMLファイルの中に直接プログラムを書き込むタイプのスクリプト言語です。

PHPの特徴として、手軽に高度なスクリプトを動作させられる点、SQL Serer や MySQL などのデータベースへの接続が標準でサポートされているため連携が容易に行える点、Perl(CGI)に比べると動作が軽快で、サーバーへの負荷も軽くなる点が挙げられます。

  • PHPは、FastCGIで動作します。
  • PHPのバージョンは、8.2.24です。
  • PHPの実行ユーザーは、お客様のユーザーになります。
  • Pearの利用はできません。テンプレートエンジン Smarty は利用できます。
SPPDレンタルサーバーのPHPの特徴
phpの動作する拡張子について

拡張子 .php のファイルが php8のスクリプトとして動作します。(.php8では動作しません)

サービスの種類PHPの拡張子
Windows専用サーバー.php
PHPプログラムのパーミッションについて

PHPプログラムを動作させるために、パーミッションの設定の必要はありません。また、PHPプログラムはお客様のユーザーで実行されますので、標準の設定でPHPプログラムからファイルに書き込みを行うことができ、ディレクトリやファイルの権限の変更は必要ありません。

PHPの設定の詳細
インストールされている PHP拡張機能一覧
機能名 具体的な拡張機能名/DLL(上級者向け)
日本語機能 mbstring 関数(php_mbstring.dll) / iconv 関数
圧縮機能 BZ2 関数 (php_bz2.dll) / ZIP 関数 / zlib 関数
画像処理機能 GD 関数-Freetypeサポート有り( php_gd.dll ) / Exif 関数
ソケット関数 ソケット関数 (php_sockets.dll)
SQL Server SQLSRV関数 (php_sqlsrv_82_nts_x64.dll)
MySQL MySQLi 関数 (php_mysqli.dll) / MySQL nd関数
PDO PDO-MySql 関数 (php_pdo_mysql.dll) / PDO-SQLSRV 関数 (php_sqlsrv_82_nts_x64.dll)
FTP FTP 関数
XSL XSL 関数 (php_xsl.dll)
XML SimpleXML / XML 関数 / libxml / dom(DOM/XML)
SOAP SOAP 関数 (php_soap.dll)
OpenSSL OpenSSL関数 (php_openssl.dll)
cURL cURL関数 (php_curl.dll)
国際化関数 国際化関数 (php_intl.dll)
その他 GetText (php_gettext.dll) / hash(mhashサポート有り)

Imagick関数は、インストールされていません。Imagick側でphp8.2対応版がリリースされ次第、インストール予定です。

PHP.INIの設定(抜粋:上級者向け)
主なphp.iniの設定項目
項目名 php.iniの値
mbstring.language Japanese
mbstring.encoding_translation OFF
display_errors OFF
default_mimetype text/html
default_charset UTF-8
session.use_cookies 1(On)
session.use_only_cookies 1(On)
max_execution_time 60
upload_max_filesize 20M
post_max_size 20M
short_open_tag OFF ※1
memory_limit 128M

※1 short_open_tagがOFFの場合、<? は使えず、<?php との記載が必須になります。

Smartyについて

「Smarty」とは、PHPスクリプトからデザイン部分を切り離してWebサイトの構築を行うための機能(テンプレートエンジン)です。Smartyを利用することで、PHPスクリプトとHTMLのデザインが分離されますので、見通しの良いWEBアプリケーションを構築することが可能です。

Smartyの利用方法

PHPプログラムに下記を記述して頂くことで、Smarty機能が有効となります。なお、OSが Windows Server 2022 の専用サーバーの場合はバージョン3.1.33をご利用頂けます。

require 'Smarty-3\libs\Smarty.class.php';    // Smarty 3系を利用する場合

なお、Smarty が内部的に必要とする templates / templates_c フォルダーにつきましては、以下の作成例をご参照の上、任意の場所にお客様にて作成ください。

  • フォルダー作成例1 (FFFTP)
  • フォルダー作成例(FFFTP)
  • フォルダー作成例2 (FFFTP)
  • フォルダー作成例(FFFTP)
  • フォルダー作成例3 (FFFTP)
  • フォルダー作成例(FFFTP)
Smartyの具体例

下記に具体的な使用例を記述させて頂きます。プログラムの記述方法につきましては、サポートの対象外となりますので、後述の 参考書籍などをご参照ください。

※ 以下の例では、templates / templates_c フォルダーを www と同じ階層の / に作成しております。

[Smartyを利用したPHPプログラム]

ファイル名:index.php
アップロード先:/www/

<?php
require_once('Smarty-3\libs\Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = '../templates/';  #templates フォルダーの場所
$smarty->compile_dir = '../templates_c/'; #templates_c フォルダーの場所
$smarty->assign('message', 'Hello, smarty!');
$smarty->display('index.tpl');
?>

[Smartyのテンプレートファイル]
ファイル名:index.tpl
アップロード先:/templates/

<html>
<head>
<title>test</title>
<body>
{$message}
</body>
</head>
</html>
Smartyのお薦め参考情報

Smarty 3系の公式マニュアル(外部サイトへのリンク)