最新のインターネット環境では、コンテンツ配信ネットワーク(CDN)が、ウェブサイトの速度と安定性を改善するための重要なツールとなっています。軽量のブログプログラムとして、TypeChoはCDNを簡単に統合することができ、それによりWebサイトの読み込み速度とユーザーエクスペリエンスを最適化することもできます。この記事では、PHPコードを介してTypeChoでCDN加速を構成する方法を詳細に紹介します。
まず、CDNサービスを購入し、対応するCDNノードドメイン名を取得したことを確認してください(たとえば、cdn.example.comなど)。次に、Typechoの構成ファイルconfig.inc.phpを編集する必要があります。
config.inc.phpファイルを開き、次のコードを見つけます。
define('__TYPECHO_UPLOAD_DIR__', __TYPECHO_ROOT_DIR__ . '/usr/uploads');
次のように、CDNノードのドメイン名に変更します。
define('__TYPECHO_UPLOAD_DIR__', 'http://cdn.example.com/uploads');
このようにして、TypeChoのアップロードディレクトリはCDNノードを指し、ファイル分布の加速を可能にします。
ディレクトリのアップロードに加えて、CDNを介して静的リソース(CSS、JSファイルなど)のロードを加速することもできます。これを達成するには、TypeChoテーマのヘッダーファイルを編集する必要があります(/usr/themes/default/header.php)。このファイルに次のPHPコードを追加して、静的リソースを動的にロードします。
<?php if ($this->options->useCDN): ?>
<link rel="stylesheet" type="text/css" href="<?php $this->options->themeUrl('style.css'); ?>">
<script type="text/javascript" src="<?php $this->options->themeUrl('script.js'); ?>"></script>
<?php else: ?>
<link rel="stylesheet" type="text/css" href="<?php $this->options->themeUrl('style.css'); ?>">
<script type="text/javascript" src="<?php $this->options->themeUrl('script.js'); ?>"></script>
<?php endif; ?>
管理者がCDN加速を簡単に有効またはオフにするためには、TypeChoバックエンドの設定インターフェイスにオプションを追加する必要があります。テーマファイル(たとえば、/usr/themes/default/options.phpなど)で、次のHTMLコードを追加します。
<p><label for="useCDN">使用CDN加速します:</label></p>
<select id="useCDN" name="useCDN"></select>
<option value="0" <?php if ($this->options->useCDN == '0') echo 'selected'; ?>>閉鎖</option>
<option value="1" <?php if ($this->options->useCDN == '1') echo 'selected'; ?>>開ける</option>
次に、functions.phpファイルに設定を保存するコードを追加して、オプションを有効にします。
public static function setOptions($theme) {
Typecho_Widget::widget('Widget_Options')->to($options);
$useCDN = $options->themeFile($theme . '/options.php');
if ($useCDN->plugcdn == '1') {
$options->plugin('PlugCDN')->useCDN = 1;
} else {
$options->plugin('PlugCDN')->useCDN = 0;
}
これまでのところ、TypeChoでCDNコンテンツ分布機能を正常に構成しています。構成ファイルを変更し、PHPコードを追加し、バックグラウンド設定でCDNを有効にすることにより、Webサイトの読み込み速度とパフォーマンスを効果的に改善できます。このようにして、あなたのウェブサイトはCDNを使用して静的リソースを配布し、サーバーの負担を減らし、より高速で安定したアクセスエクスペリエンスをユーザーに提供できます。