4. 制作ツール
ここではテストサイト機能(SmartRelease)やプレビュー機能、Perl・PHP・データベースなど、 ウェブ制作に役立つ各種ツールを一括してご紹介します。
- 4-1.テストサイト機能
- 4-2.バックアップ
- 4-3.プレビュー機能
- 4-4.Perl
- 4-5.PHP
- 4-6.PHP(CGI 版)
- 4-7.PHP設定変更
- 4-8.データベース
- 4-9.Git
- 4-10.htaccess
- 4-11.スクリプト定期実行ツール
- 4-12.アクセス制御 (BASIC 認証)
- 4-13.エラーページ設定ツール(テストサイト)
- 4-14.SSI
- 4-15.SSH(鍵認証)
- 4-16.WAF(Web アプリケーションファイアウォール)
4-1. テストサイト機能(SmartRelease)
「SmartRelease」は、テストサイト・公開サイト・バックアップサーバーを一元管理できるシステムです。 テストサイトで作成・編集したコンテンツを公開サイトに反映(リリース)したり、公開サイトのデータをテストサイトへ転送したり、両サイトのバックアップやリストアも簡単に行えます。
サーバー構成について
SmartRelease は テストサイト / 公開サイト / バックアップサーバー を組み合わせて運用します。 データベースは同じサーバー(MySQL / PostgreSQL)を共有しますが、テストサイト用と公開サイト用で異なるデータベース名を割り当てることも可能です。
SmartRelease 操作画面について
- (1) 全てリリース:テストサイトのファイルを公開サイトへリリースする(すべて / 選択ファイル / 除外リスト など)。
- (2) 全て転送:公開サイトのファイルをテストサイトへ転送する(すべて / 選択ファイル / 除外リスト など)。
- (3) バックアップ:テスト/公開サイト双方のバックアップ取得やリストア、手動バックアップ、プロテクト設定などを行えます。
- (4) アクセス制限:テストサイトへのアクセスを特定 IP に制限可能です。
- (5) アカウント管理:SmartRelease のログインパスワードを変更できます。
- (6) ヘルプ:SmartRelease 機能に関する操作マニュアルを参照できます。
- (7) 今すぐ公開する:「全てリリース」の画面へ移動します。
- (8) 今すぐ同期する:「ファイル転送」の画面へ移動します。
- (9) 今すぐ元に戻す:「バックアップ」の画面へ移動します(リストアを行う場合など)。
- (10) ご利用ドメイン:現在ご契約中のドメイン名が表示されます。
- (11) ヒストリー機能:直近 30 件の作業履歴を表示します。エラーが発生した場合は赤字で表示されます。
なお、以下の制限事項に抵触するとリリース/転送/バックアップ処理が失敗します:
- ファイル総数が 70,001 ファイル以上
- ファイル総容量が 10GB 以上
- ディレクトリ構造が 41 階層以上
リリースについて
リリースとは、テストサイト上のファイルを公開サイトへコピー&上書きする機能です。
全てリリース
- SmartRelease にログインし、【リリース】 メニューをクリック。
- 必要に応じて「除外リスト」を編集し、公開サイトへ移したくないファイルやフォルダを登録してください。
除外リストに登録したデータは「すべてリリース」から除外されます。 - 【すべてリリース】 をクリックし、テストサイトの全ファイル(除外リスト以外)を公開サイトへ置き換えます。
このとき、公開サイトのみに存在していたファイルやフォルダはすべて削除されます。
ファイルを選択してリリース
テストサイトのコンテンツのうち、一部だけを公開サイトへ置き換える方法です。 フォルダを選択した場合、その配下のファイルすべてが公開サイトに上書きされ、公開サイト側だけに存在したファイルは削除されます。
- 【ファイルを選択してリリース】 をクリック。
- 画面下部のファイル一覧からリリース対象を選択し、【選択したファイルをリリース】 を実行します。
- 最終確認で 【リリース】 をクリックすると実行されます。
動作確認
– テストサイトアクセス時:「テストサイトドメイン名」
– 公開サイトアクセス時:「ご契約ドメイン名」
テストサイトには SSL が標準搭載されていますが、公開サイトで https を利用するには SSL サーバー証明書が有効である必要がります。
ファイル転送について
ファイル転送とは、公開サイトのファイルをテストサイトへコピー&上書きする機能です。
リリースの逆パターンというイメージです。
- SmartRelease にログインし、【ファイル転送】 をクリック。
- 必要に応じて「除外リスト」を編集します。
- 「すべて転送」または「ファイルを選択して転送」を実行します。
バックアップについて
バックアップは「自動バックアップ(毎日深夜など)」と「手動バックアップ」があり、テストサイト/公開サイトそれぞれで一覧表示して管理できます。
バックアップ一覧
【バックアップ】 メニューからテストサイトまたは公開サイトのバックアップ一覧を表示し、コメント編集・リストア・プロテクト設定・削除などを行えます。
リストア
リストアとは、取得済みバックアップを現在の領域にまるごと上書きすることです。リストアすると、バックアップ取得後に作成したファイルなどはすべて削除されます。
バックアップの自動取得タイミング
- 毎日深夜:毎日深夜にバックアップを取得
- リリース実行時:公開サイトのバックアップを取得
- ファイル転送実行時:テストサイトのバックアップを取得
バックアップは最大 30 世代まで保持され、31 世代目が取得されると古いものから削除されます(プロテクトされていない場合)。
アクセス制限について
「アクセス制限」のメニューでは、 IP アドレスを指定して特定のユーザーのアクセスを制限するができます。グローバルメニューの【アクセス制限】をクリックしてください。アクセス制限画面の【登録】をクリックし、許可したい IP アドレスを追加してください。
※ IP アドレスは 4 つの枠にピリオドごとに分けてご入力ください。
※「192.168.0.」のようなレンジ指定でも設定できます。
※「サブネットマスクを登録する場合はこちらにチェックを入れてください。」にチェックをつけると、「192.168.0.1/24」のような「セグメント指定」もできます。
ログイン方法について
SmartRelease へのログインは、以下のいずれかで行います:
- SmartReleaseID とパスワード を利用して SmartRelease のログイン画面へ直接アクセスし、ログイン
- 管理者コントロールパネル ID または ウェブコントロールパネル ID でコントロールパネルに入り、【SmartRelease】 をクリック
SmartReleaseID は固定の個別 ID であり、変更はできません。 パスワードは 【アカウント管理】 で設定・変更してください。
サーバーのディレクトリ構成について
ウェブサーバーに存在する _smartrelease_except
ディレクトリは、バックアップやファイル転送の対象外にしたいファイルを置く場所です。削除すると動作に影響が出る可能性があるため、基本的には変更しないようお願いします。
詳細は 「2-1. サーバーのディレクトリ構成について」 をご確認ください。
4-2. バックアップについて
SmartRelease が提供するバックアップ機能について解説します。
対象領域(ウェブ領域)
「/log」「/_smartrelease_except」を除くルートディレクトリ配下がバックアップ対象です。
※「/log」「/_smartrelease_except」は、バックアップ・ファイル転送・リリースすべての対象外となりますのでご注意ください。
対象領域(データベース)
MySQL データベースのみバックアップ / リストアが可能です。PostgreSQL は対象外となります。
自動バックアップのタイミングについて
SmartRelease は下記のタイミングで自動バックアップを取得します。
- 毎日深夜帯: 1 日 1 回、自動でバックアップを取得
- リリース時: 「すべてリリース」や「ファイルを選択してリリース」実行時、公開サイトのバックアップを取得
- ファイル転送時: 「すべて転送」や「ファイルを選択して転送」実行時、テストサイトのバックアップを取得
- リストア処理時: バックアップ一覧からリストアを行う際、現行カレントディレクトリのバックアップを取得
下記の制限事項に抵触すると、バックアップは失敗しますのでご注意ください。
- ファイル総数が 70,001 ファイル以上
- ファイル総容量が 10GB 以上
- ディレクトリ構造が 41 階層以上
バックアップの取得世代数について
ウェブ領域・データベース ともに最大 30 世代 までデータを管理し、31 世代目を取得すると古いバックアップが自動的に削除されます。
消さずに残しておきたいデータがある場合、プロテクト機能を利用するとバックアップの削除を防止できます。
リストアについて
リストアとは、現在のお客さま領域を、バックアップ取得時点の状態に戻すことです。
バックアップ取得後に作成されたファイルやフォルダはすべて削除されますので、実施の際は十分ご注意ください。
データベースのリストアは、バックアップ一覧から 「どのデータベースを復元するか」 を指定し、必要なものだけを選択してリストアすることが可能です。
SmartRelease でバックアップしたデータの保存先について
ご契約サーバーとは別の専用サーバーへ保存されます。そのため、万が一ご利用サーバーに問題が発生してもバックアップデータの保全性が高くなっています。
プロテクト状態で保存されている「公開(テスト)サイト初期状態バックアップ」の用途
公開サイト / テストサイトの初期状態を取得したバックアップデータが、 「初期状態バックアップ」 としてプロテクトされた状態で保存されています。
そのため、公開サイトやテストサイトをすべて初期化したい場合は、このバックアップデータをリストアしてください。
※ コントロールパネルの設定機能(アクセス制御やスクリプト定期実行ツールなど)はリストアでは初期化されません。
※ ログファイルも初期化対象外です。
バックアップファイルのダウンロード
- ダウンロードファイルの生成
SmartRelease にログインし 【バックアップ】 をクリック、バックアップ一覧画面で 【ダウンロードファイルを生成】 を選択します。 - バックアップデータの選択
ダウンロードしたいバックアップを指定し、 【ダウンロードファイルを生成】 をクリックすると圧縮処理が始まります。
※バックアップデータの容量が大きい場合、生成に時間がかかります(最大 1 時間程度)。 - ダウンロードファイルの生成完了
圧縮処理が完了すると 【Zip ファイルをダウンロード】 ボタンが表示されるので、クリックしてファイルを取得します。
ダウンロードファイルは削除予定日になると自動削除されますが、 【ゴミ箱】 アイコンから手動で削除することも可能です。
4-3. プレビュー機能
プレビュー機能は「ドメイン名の代替」として公開サイトへアクセスする際に利用します。主に、DNS 切り替え前に公開サイトを確認したい場合に役立ちます。
プレビュードメイン名の確認方法
コントロールパネルへログイン後、 【Home】 > 【サーバー情報】 にて「プレビュードメイン名」をご確認いただけます。
4-4. Perl について
Perl のパス
スクリプト先頭行(Shebang)の記述は、
#!/usr/local/bin/perl
または #!/usr/bin/perl
を利用してください。
パーミッション
一般的には 755 を設定しますが、当サーバーではセキュリティ考慮の観点から 705 を推奨しています。
(設置マニュアルがある場合は、それに従って設定してください。)
CGI の設置
「cgi-bin」ディレクトリを用意していますが、Perl CGI は当ディレクトリ以外でも動作します。
ただし、cgi-bin ディレクトリは CGI ファイル専用のため、画像や HTML ファイルは正常に表示されません。
CGI のサポート範囲
以下の CGI はサポート対象外となります。
- お客さまが独自に作成された CGI
- 当社提供 CGI をお客さまが独自カスタマイズされたもの
- 当社提供以外の CGI
4-5. PHP
ここでは、PHP の利用方法、バージョン指定、設定ファイル(php.ini)の変更方法などを解説します。
ご利用可能な PHP のバージョン
ウェブサーバー名 | PHP バージョン | .htaccess 記述 |
---|---|---|
hbv****.secure.ne.jp | PHP 7.4.30 | AddHandler x-httpd-php74 .php |
PHP 8.0.30 ※標準 | AddHandler x-httpd-php80 .php (指定しない場合はこのバージョン) | |
PHP 8.1.29 | AddHandler x-httpd-php81 .php | |
PHP 8.2.23 | AddHandler x-httpd-php82 .php | |
PHP 8.3.11 | AddHandler x-httpd-php83 .php |
PHP のご利用方法
PHP を利用する方法は以下の 2 通りです。
- .htaccess を利用せずに、標準バージョン(8.0.30)を使う
アップロードされた PHP ファイルは特に設定しなくても「PHP 8.0.30」で実行されます。 - .htaccess にバージョン指定を記述して使う
例)AddHandler x-httpd-php74 .php
など。
これを該当ディレクトリの .htaccess に記述することで、そのディレクトリ配下の PHP バージョンを切り替え可能です。
PHP のバージョン指定方法
上の表にあるバージョン以外(7.4.30 / 8.1.29 / 8.2.23 / 8.3.11)を利用したい場合は、 .htaccess にAddHandler x-httpd-phpXX .php
を記述 してください。
※マイナーバージョン表記は不要です。たとえば「7.4.30」の場合、 AddHandler x-httpd-php74 .php
と書きます。
PHP の設定変更方法
php.ini ファイルを編集し、 SuPHP_ConfigPath を用いた設定によって独自の PHP 設定を適用できます。
詳細は 「PHP の設定を変更する」 をご参照ください。
PHP ファイル / ディレクトリのパーミッション
一般的には以下の設定を推奨します。
種別 | 数字表記 | 記号表記 |
---|---|---|
PHP ファイル | 604 / 644 | rw—-r– / rw-r–r– |
PHP ファイルを含むディレクトリ | 705 / 755 | rwx—r-x / rwxr-xr-x |
注意事項・利用制限
- .htaccess 内に
php_value
やphp_flag
は記述できません(500 エラーの原因) - PHP プログラム / php.ini / .htaccess を使用する際は十分に動作検証を行ってください
- 記述ミスなどでサーバー全体への影響が出る可能性があるため、設置場所やテスト時期にはご注意ください
- SslBiz独自に実装しているため、一部動作が保証されない場合があります
- 記述内容が 1 文字でも誤っていると正常に動作しない場合があります
4-6. PHP(CGI 版)について
SslBizサーバーでは、CGI 版 PHP を利用することも可能です。ここでは設定方法を解説します。
PHP 5.6 以上をご利用の方へ
PHP 5.6 以降では cgi.force_redirect
が on
になっているため、 サーバー上で CGI として動作しません。
そのため、php.ini に cgi.force_redirect = 0
を記述する必要があります。
例)
cgi.force_redirect = 0
詳細は 「PHP の設定を変更する」 をご参照ください。
PHP プログラムの準備
1.ファイル拡張子を .cgi に変更してください(Perl CGI と同様です)。
2.PHP ファイルの先頭行(Shebang)に実行パスを記述します。
例)
#!/usr/local/bin/php-cgi-8.0
対応するバージョンごとに下記のように指定してください:
PHP バージョン | Shebang (1 行目) |
---|---|
PHP 7.4 | #!/usr/local/bin/php-cgi-7.4 |
PHP 8.0(標準) | #!/usr/local/bin/php-cgi-8.0 |
PHP 8.1 | #!/usr/local/bin/php-cgi-8.1 |
PHP 8.2 | #!/usr/local/bin/php-cgi-8.2 |
PHP 8.3 | #!/usr/local/bin/php-cgi-8.3 |
3.CGI ファイルをサーバーへアップロードしてください
ファイルのパーミッションは 705 (rwx—r-x) にしてください。
PHP ファイルの拡張子を (.php) のまま CGI 版で動作させる方法
.htaccess に以下を追記します:
AddType application/x-httpd-cgi .php
これにより、.php 拡張子のファイルも CGI 版として実行可能です。
4-7. PHP の設定を変更する
当サーバーでは、php.ini ファイルを編集し、ディレクトリごとに独自の PHP 設定を適用できます。
以下では一例として、register_globals
の値を変更する方法を紹介します。
PHP 設定の変更方法
- コントロールパネルの 【Home】 > 【パス・モジュール情報】 内にある「PHP ini の設定情報」から、 使用する PHP バージョンと同じ 設定情報をコピーし、テキストエディタに貼り付けます。
- そのファイルを 「php.ini」 として保存し、設定を反映させたいディレクトリへアップロードします。
- 同ディレクトリに .htaccess を設置し、下記 2 点を記述します:
– PHP バージョン指定(デフォルト利用なら不要)
–suPHP_ConfigPath
で php.ini 配置ディレクトリを指定(suPHP_ConfigPath /usr/home/ウェブコントロールパネル ID/php.ini ファイルを設置したディレクトリパス)
例)suPHP_ConfigPath /usr/home/ウェブコントロールパネルID/html/php/org_setting
- 以上で、当ディレクトリ以下 において独自の php.ini 設定が適用されます。
- 設定が反映されているか確認するため、phpinfo を表示して動作確認してください。
※ .htaccess で php.ini を直接指定すること(例:suPHP_ConfigPath /usr/home/xxx/php.ini
)はできません。
※ php.ini に必要な項目だけを記述すると正常に動作しない場合があります。必ず SslBiz 標準の設定ファイルをもとに編集してください。
セキュリティ対策
php.ini をウェブ上から閲覧されないように
<Files ~ ".ini">
deny from all
</Files>
のような記述を .htaccess に加えるのがおすすめです。
phpinfo の利用方法
例として、phpinfo() を表示する簡単な手順を示します(Windows / メモ帳使用)。
- 「.htaccess.txt」というファイルを作成し、以下のように記述します
AddHandler x-httpd-php74 .php
(例:PHP7.4 を使用する場合) - テスト用 PHP ファイル「phpinfo.php」を作成し、
<?php phpinfo(); ?>
と記述して保存します。 - 作成した 2 つのファイルを FTP でサーバーにアップロードし、 .htaccess.txt を .htaccess にリネームします。
- ブラウザで
http://example.com/phpinfo.php
にアクセスし、PHP 情報が表示されればOKです。
4-8. データベース
CPI サーバーでは、MySQL(5.7 系 / 8.0 系) と PostgreSQL(13 系)のいずれもご利用いただけます。
またブラウザから MySQL を操作できる phpMyAdmin も用意されています。
データベース情報
下表は各データベースのバージョンやポート番号などの初期設定です。 ユーザー名はいずれも「ウェブコントロールパネルID」で、初期パスワードはサーバー設定完了通知メールに記載されています。
データベースバージョン | ポート番号 | ホスト名 | データベース名 | ユーザー名 | パスワード |
---|---|---|---|---|---|
MySQL 5.7.42 | 3306 | 127.0.0.1 | ウェブコントロールパネルID+任意文字列 | ウェブコントロールパネルID | |
MySQL 8.0.29 | 3307 | 127.0.0.1 | ウェブコントロールパネルID+任意文字列 | ウェブコントロールパネルID | 初期パスワードは通知メールに記載 |
PostgreSQL 13.11 | 5432 | 127.0.0.1 | ウェブコントロールパネルID | ウェブコントロールパネルID | 初期パスワードは通知メールに記載 |
※ MySQL の「任意の文字列」部分は、データベース追加時に入力・設定いただきます。
4-8-1. MySQL 管理画面
MySQL データベースをブラウザ上から管理するためのツールとして、 phpMyAdmin を提供しています。ログイン時に、データベース ID と パスワード を入力してください。
phpMyAdmin のご利用方法はサポート対象外です。必要に応じて公式ドキュメントなどをご参照ください。
ログイン方法
- コントロールパネルにて 【Web】 > 【データベース】 > 【MySQL】 > 【MySQL●管理画面】 をクリックします。
(●には MySQL バージョンが表示されます。例:「MySQL5.7管理画面」など) - phpMyAdmin のログイン画面が開きますので、MySQL の ユーザー名(ウェブコントロールパネル ID)と パスワード を入力し、ログインしてください。
4-8-2. MySQL データベースの追加・削除
サーバーご利用開始時の MySQL データベース数は 0 で、最大 5 まで作成可能です。公開サイトとテストサイトは同じデータベースを共有する形式で運用されます。
データベースの追加
- コントロールパネルの 【Web】 > 【データベース】 をクリックします。
- 作成したい MySQL のバージョンタブ(5.7 または 8.0)を選択します。
- 【新規追加】 をクリックします。
- 文字コードおよびデータベース名を入力し、 【追加する】 をクリックします。
・データベース名はウェブコントロールパネルID_任意文字列
となります。
・任意文字列部分は半角英数字 1~8 文字以内、記号不可となります。 - 追加完了後、メッセージが表示されます。以上で新規データベースの作成は完了です。
データベースの削除
- 削除するデータベースの 【×】(削除) をクリックします。
- 確認画面が表示されるので、 【OK】 をクリックします。
※ 一度削除したデータベースは復旧できません。 - 削除完了後、メッセージが表示され、一覧から該当データベースが消去されます。
4-8-3. MySQL データベースパスワード変更機能
MySQL データベースのパスワードはいつでも変更可能です。変更後は、MySQL に接続する各種アプリケーション・システムの設定ファイルも修正する必要がありますのでご注意ください。
パスワード変更手順
- コントロールパネルの 【Web】 > 【データベース】 > 【MySQL】 をクリックします。
- 【パスワード管理】 をクリックします。
- 変更後のパスワードを入力し、 【変更する】 をクリックします。
パスワードの要件:
- 半角 8~32 文字
- 半角英数字および一部記号(! # % & ( ) * + , - . / ; < = > ? @ [ ] _ { | } ~ ^ ' "
)
- 2 バイト文字(全角など)は利用不可 - 確認画面が表示されるので、 【OK】 をクリックします。
- 変更完了メッセージが表示されます。これでパスワードは更新されました。
4-8-4. PostgreSQL 管理画面
現在ご利用中のプランでは PostgreSQL 用の管理画面 (phpPgAdmin 等)を提供しておりません。必要な場合はお客さま自身で管理ツールを導入する必要があります。
ただし、管理ツールの利用には 「ユーザー権限」 で動作するものでなければなりません。「管理者権限」を要するツールはサーバーの性質上ご利用いただけません。
管理ツールの設置・利用方法に関してはサポート外となりますので、ご自身でご確認をお願いいたします。
4-8-5. PostgreSQL データベースの追加・削除
ご利用開始時の PostgreSQL データベース数は 0 で、最大 1 個まで作成可能です。
公開サイトとテストサイトは同じデータベースを共有します。
データベース名は「ウェブコントロールパネルID」で固定され、変更できません。
データベースの追加
- コントロールパネルの 【Web】 > 【データベース】 > 【PostgreSQL】 をクリックします。
- 【新規追加】 をクリックします。
- データベースの文字コードを選択し、 【追加する】 をクリックします。
データベース名は自動で「ウェブコントロールパネルID」に固定されます。 - 追加完了後、メッセージが表示されます。
データベースの削除
- 削除するデータベースの 【×】(削除) をクリックします。
- 確認画面が表示されるので、 【OK】 をクリックします。
※ 一度削除されたデータベースは復旧できません。 - 削除完了後、メッセージが表示され、一覧から消去されます。
4-8-6. PostgreSQL データベースパスワード変更機能
PostgreSQL データベースのパスワードも変更可能です。パスワード変更後は、PostgreSQL を利用する各種システムの接続設定を修正してください。
パスワード変更手順
- コントロールパネルの 【Web】 > 【データベース】 > 【PostgreSQL】 をクリックします。
- 【パスワード管理】 をクリックします。
- 新しいパスワードを入力し、 【変更する】 をクリックします。
要件:
- 半角 8~32 文字
- 半角英数字 & 一部記号(! # % & ( ) * + , - . / ; < = > ? @ [ ] _ { | } ~ ^ ' "
)
- 全角等の 2 バイト文字は不可 - 確認画面が表示されるので 【OK】 をクリックします。
- 変更完了後、メッセージが表示されます。
4-9. Git
Git は分散型バージョン管理システムで、ファイルの変更履歴(いつ、誰が、どのような更新をしたか)を記録し、 過去のある時点を再現できるようにするための仕組みです。
Git について
分散管理型のため、 リポジトリ (変更履歴の貯蔵庫)をお客さまのローカル環境(PCなど)とサーバーの両方に作成・管理できます。各作業者はローカルリポジトリで作業し、最終的にサーバーのリモートリポジトリへ反映(push)するといった運用が可能です。
Git の仕様について
- リポジトリの作成場所
サーバーのウェブ領域(/usr/home/ウェブコントロールパネルID/
など)任意のディレクトリに作成できます。 - コマンドライン操作
SSH 接続して、Git コマンドを実行してください。
Git のパスは 【Home】 > 【パス・モジュール情報】 > 「Git」 で確認できます。 - リポジトリ種類
リモートリポジトリ / ローカルリポジトリ の両方をサーバー上に作成可能です。 - 対応プロトコル
Local / SSH / Git / HTTP(S) に対応しています。(一部制約あり) - push / pull(clone)
通常はローカルリポジトリからサーバー上のリモートリポジトリへ push するイメージです。
※ git を使うには、ローカル、リモートの両方に git プログラム(または git クライアント)がインストールされている必要があります。
サーバー内でもローカルリポジトリを作成可能ですが、使い方はお客さまのご要望に合わせて調整してください。
以下に、各制約について分かりやすく解説します。
制約1)SslBiz サーバーにリモート/ローカルリポジトリの双方を作成する場合
通信の可否
ローカルリポジトリ | プロトコル | 方向 | リモートリポジトリ | 可否 |
---|---|---|---|---|
SslBizサーバー | local | 双方向 | SslBizサーバー | ✅ 可能 |
SslBizサーバー | HTTP/HTTPS | 右向き | SslBizサーバー | ❌ 不可 |
SslBizサーバー | HTTP/HTTPS | 左向き | SslBizサーバー | ✅ 可能 |
SslBizサーバー | git/ssh | 双方向 | SslBizサーバー | ❌ 不可 |
解説
- SslBizサーバー内では local(ローカル通信)によるやり取りは可能(ローカルリポジトリとリモートリポジトリ間でデータのやり取りができる)。
- SslBizサーバー内のリモートリポジトリに対し、HTTP/HTTPS を用いた「書き込み(右向き)」はできないが、「読み込み(左向き)」は可能。
- git/ssh を使った通信は双方向ともに制限されているため、SSHベースの操作はできない。
制約2)SslBiz サーバー内にローカルリポジトリを作成する場合
通信の可否
ローカルリポジトリ | プロトコル | 方向 | リモートリポジトリ | 可否 |
---|---|---|---|---|
SslBizサーバー | HTTP/HTTPS | 双方向 | 外部のGitリポジトリ(GitHubなど) | ✅ 可能 |
SslBizサーバー | git | 右向き | 外部のGitリポジトリ(GitHubなど) | ❌ 不可 |
SslBizサーバー | git | 左向き | 外部のGitリポジトリ(GitHubなど) | ✅ 可能 |
SslBizサーバー | SSH/local | 双方向 | 外部のGitリポジトリ(GitHubなど) | ❌ 不可 |
解説
- HTTP/HTTPS を利用すれば、外部のGitリポジトリ(GitHubなど)と双方向で通信可能。
- git プロトコルによる「書き込み(右向き)」は制限されているが、「読み込み(左向き)」は可能(例えば、GitHubからのクローンは可能だが、プッシュはできない)。
- SSH/local を用いた接続は双方向ともに制限されているため、SslBizサーバーからSSH経由でGitHubなどのリポジトリと直接やり取りすることはできない。
制約3)SslBizサーバー内にリモートリポジトリを作成する場合
通信の可否
ローカルリポジトリ | プロトコル | 方向 | リモートリポジトリ | 可否 |
---|---|---|---|---|
お客様環境 | SSH | 双方向 | SslBizサーバー | ✅ 可能 |
お客様環境 | HTTP/HTTPS | 左向き | SslBizサーバー | ✅ 可能 |
お客様環境 | HTTP/HTTPS | 右向き | SslBizサーバー | ❌ 不可 |
お客様環境 | git/local | 双方向 | SslBizサーバー | ❌ 不可 |
解説
- お客様環境からSslBizサーバーのリモートリポジトリに対し、SSHを用いた双方向通信が可能(クローン、プッシュ、プルが可能)。
- HTTP/HTTPS を用いた「クローンや取得(左向き)」は可能だが、「プッシュ(右向き)」は制限されている(書き込みができない)。
- git/local での通信は不可。
まとめ
- SslBizサーバー内でのリポジトリ管理
- ローカル(local)通信は可能だが、git/ssh通信には制約が多い。
- HTTP/HTTPS を利用すれば、リポジトリの読み取りは可能だが、書き込みには制限がある。
- SslBizサーバーと外部Gitリポジトリ(GitHubなど)
- HTTP/HTTPS を利用すれば双方向での通信が可能(ただし一部制限あり)。
- git プロトコルによる書き込みは制限されている(リモートリポジトリからのクローンは可能だが、プッシュができない)。
- SSH を利用した通信は制限が多い。
- お客様環境とSslBizサーバー
- SSH による双方向通信は可能。
- HTTP/HTTPS による取得は可能だが、プッシュには制限がある。
- git/local での通信は不可。
SslBizサーバーでGitを運用する際の推奨設定
✅ SslBizサーバー内でのリポジトリ管理には local 通信を利用する
✅ 外部Gitリポジトリ(GitHubなど)とのやり取りは HTTP/HTTPS を利用する
✅ お客様環境とSslBizサーバーの間では、SSHを利用した通信を行う
❌ git/ssh を使った通信は制限が多いため、基本的に利用しない
4-9-1. Git クライアント「SourceTree」の利用方法(Windows)
ここでは、Git クライアント「SourceTree」を使って、お客さま PC にローカルリポジトリを作成し、 サーバー上のリモートリポジトリへ push する流れをご案内します。
以下の例は、サーバー上に既に /usr/home/ウェブコントロールパネルID/remote-repo
というリモートリポジトリが存在する前提です。
1. SourceTree を起動
SourceTree を起動し、画面左上の 【新規/クローンを作成する】 をクリックします。
2. リポジトリのクローン設定
【リポジトリをクローン】 を選択し、各項目を入力します。
- 元のパス/URL
サーバー上のリモートリポジトリを指定します。
例)ssh://ウェブコントロールパネルID@ドメイン名(またはIP):ポート番号/usr/home/ウェブコントロールパネルID/remote-repo
- 保存先のパス
お客さま PC 上の任意フォルダパスを指定します。そこにローカルリポジトリが作成されます。 - 名前
任意のリポジトリ名を入力します。
3. ローカルリポジトリでの作業
作成されたローカルリポジトリが SourceTree に表示されます。 ローカルでファイルを新規作成 / 変更すると、SourceTree の一覧に差分が表示されます。
変更内容を「Index にステージしたファイル」に追加し、コメント(コミットメッセージ)を入力して 【コミット】 を実行します。
4. ローカルリポジトリをリモートリポジトリへ push
- 画面上部の 【プッシュ】 をクリックします。
- 「プッシュ対象?」にチェックを入れ、 【OK】 をクリックすると、サーバー側のリポジトリへ push されます。
- サーバーに SSH 接続後、
git log
コマンドなどでコミット履歴を確認すると、push 内容が反映されているのがわかります。
4-9-2. SslBiz サーバーにリモートリポジトリを作成する方法(Mac)
ここでは Mac のターミナルを使って、SslBiz サーバーへリモートリポジトリを作成する手順をご案内します。 その後、お客さま環境(ローカルリポジトリ)にクローンを作成し、コミット&プッシュを行う流れを説明します。
サーバーにリモートリポジトリを作成する方法
以下の例では、SSH 接続でサーバーにログインし、 /usr/home/ウェブコントロールパネルID/repo
ディレクトリをリモートリポジトリとして作成します。
- Mac の「ターミナル」を起動し、Git の基本設定を行います。
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
※ Mac に Git がインストールされていることが前提です。 ※ 「Your Name」「you@example.com」はお客さま環境に合わせて設定してください。 - SSH でサーバーにログインします。
$ ssh -l ウェブコントロールパネルID -p SSHポート番号 ドメイン名(or IP)
パスワードを入力するとログインできます。入力中は文字が表示されませんが、そのまま入力してEnterしてください。 - リポジトリ用ディレクトリを作成し、bare リポジトリを初期化します。
例)/usr/home/ウェブコントロールパネルID/repo
$ mkdir repo
$ cd repo
$ git init --bare
正常に作成されると
> Initialized empty Git repository in /usr/home/ウェブコントロールパネルID/repo/
のように表示されます。 - HTTP/HTTPS プロトコル経由 で clone や pull する場合は、以下のコマンドを追加で実行してください。
$ git update-server-info
$ mv ./hooks/post-update.sample ./hooks/post-update
$ chmod +x ./hooks/post-update
なお、上記設定により HTTP/HTTPS でのクローン・プルが可能になります。
お客さま環境にリモートリポジトリを clone する方法
続いて、Mac 側のローカルフォルダにクローンを作成します。SSH でクローンする例を示します。
- ローカルリポジトリ用フォルダを作成し、移動します。
例:$ mkdir local-repo
$ cd local-repo
- リモートリポジトリを cloneします。
■SSH 経由で clone する場合$ git clone ssh://ウェブコントロールパネルID@ドメイン名(or IP):SSHポート番号/usr/home/ウェブコントロールパネルID/repo/
※ repo までのパスは、CPI サーバー上のリポジトリの場所に合わせて指定してください。
■HTTP/HTTPS でクローンする場合は、$ git clone http://ドメイン名/repo
のようになります(ドキュメントルート配下に repo を作成している必要があります)。
ローカルリポジトリでのファイル作成~コミット~プッシュ
クローンしたローカルリポジトリ内でファイルを作成し、add → commit → push する手順例です。
- ファイルを作成
$ touch test.txt
- インデックスに追加(git add)
$ git add test.txt
- コミット(git commit)
$ git commit -m "first commit"
※ 日本語コメントは文字化けする可能性があります。ご注意ください。 - リモートにプッシュ(git push)
$ git push -u origin master
SSH のパスワードが求められたら入力してください。 - CPI サーバーでログ確認
ssh
でサーバーに入り、cd repo
してからgit log
でコミット内容を確認できます。
4-9-3. CPI サーバーにローカルリポジトリを作成する方法(Windows/Mac)
こちらは CPI サーバー 側にローカルリポジトリを置き、外部(GitHub 等)のリモートリポジトリと連携するケースを想定した手順です。
Windows の SSH クライアントソフトや Mac のターミナルを利用し、SSH でサーバーへアクセスして操作します。
CPI サーバーにローカルリポジトリを作成する方法
- SSH で CPI サーバーにログイン
$ ssh -l ウェブコントロールパネルID -p SSHポート番号 ドメイン名 (または IP)
- Git の最低限設定
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
$ chmod go-rwx ~/.gitconfig
※ 必要に応じて .netrc ファイルを作成して HTTPS で GitHub へ push できるようにします(HTTP/HTTPS プロトコルを使う場合)。 - GitHub 上のリモートリポジトリをクローンするなどして、CPI サーバー上にローカルリポジトリを配置します。
例)HTTP/HTTPS で GitHub からクローン:$ git clone https://github.com/GITHUB_USERNAME/リポジトリパス
これで CPI サーバー内に「ローカルリポジトリ」が作成され、外部の GitHub リポジトリが「リモートリポジトリ」として扱われます。
CPI サーバーのローカルリポジトリでファイルを作成 → コミット → リモート(GitHub等)へ push
- ローカルリポジトリ用ディレクトリへ移動
例)$ cd ~/local-repo
- ファイルを作成
$ touch test.txt
- インデックスに追加(git add)
$ git add test.txt
- コミット
$ git commit -m "first commit"
※ 日本語コメントは文字化けの場合あり - リモートリポジトリへ push
$ git push -u origin master
– origin はクローンした際に作成されるデフォルトリモート名です。
– master はブランチ名の一例です。
4-9-4. SslBiz サーバーにリモートリポジトリとローカルリポジトリを作成する方法(Windows/Mac)
この手順では、すべてをサーバー内 に配置し、「リモートリポジトリ(bare)」と「ローカルリポジトリ」を分けて作る方法を説明します。
外部リポジトリ(GitHub 等)は使わず、サーバー上だけで完結させるイメージです。
サーバーにリモートリポジトリを作成する方法
- SSH でサーバーにログイン
$ ssh -l ウェブコントロールパネルID -p SSHポート番号 ドメイン名(or IP)
- Git の最低限の設定
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
$ chmod go-rwx ~/.gitconfig - リモートリポジトリ用ディレクトリを bare リポジトリとして初期化します。
例)/usr/home/ウェブコントロールパネルID/remote-repo
$ mkdir remote-repo
$ cd remote-repo
$ git init --bare
成功すると Initialized empty Git repository… というメッセージが表示されます。
HTTP/HTTPS で clone / pull する場合は下記も実行してください:$ git update-server-info
$ mv ./hooks/post-update.sample ./hooks/post-update
$ chmod +x ./hooks/post-update
※ HTTP/HTTPS での push は非対応となります。
サーバーにローカルリポジトリを作成する方法
- ローカルリポジトリ用ディレクトリを作成(同じサーバー上)
例)$ mkdir local-repo
- そこに移動し、リモートリポジトリを cloneします。
Local プロトコルの場合:$ git clone /usr/home/ウェブコントロールパネルID/remote-repo
HTTP/HTTPS で clone する場合は:$ git clone http://ドメイン名/remote-repo
(リモートリポジトリがドキュメントルート配下にあることが前提)
ローカルリポジトリでファイルを作成 → リモートリポジトリに push
- ローカルリポジトリのフォルダに移動
例)$ cd ~/local-repo/remote-repo
- ファイルを作成し、
git add
→git commit
で履歴に登録します。$ touch test.txt
$ git add test.txt
$ git commit -m "first commit"
- リモートリポジトリに push
$ git push -u origin master
※ origin は clone 時に作成されるデフォルトのリモート名です。
4-10. htaccess の設定方法
SslBiz サーバーでは、html ディレクトリ配下に「.htaccess」ファイルを設置することで、ディレクトリ単位の各種設定を行うことが可能です。
ただし、.htaccess の内容によってはウェブコンテンツへのアクセス不能・サーバー負荷増大等のトラブルが生じる場合があります。設定はお客さま自身の責任で十分ご注意のうえ、ご利用ください。
また、お客さま独自のコンテンツ構成によって記述方法が異なる場合もあり、 .htaccess の作成・設置は技術サポート対象外 となります。
.htaccess ご利用にあたっての注意点
- シンボリックリンクをご利用の場合は、以下の記述を行います。
Options +SymLinksIfOwnerMatch
RewriteEngine on - コメントアウトには注意してください。
行の途中に「#」を記述するとエラーになる場合があります。行を分けてコメントアウトするようにしてください。
PHP を利用する
ウェブサーバーで PHP を使う場合、標準バージョンを使うか .htaccess でバージョンを切り替えるかで方法が異なります。
詳細は 「4-5. PHP」 をご参照ください。
php.ini の設定を下位ディレクトリ全体に反映する
suPHP_ConfigPath
ディレクティブを使用して、特定ディレクトリ以下すべてに php.ini を適用できます。
suPHP_ConfigPath /usr/home/ウェブコントロールパネルID/html/example/
※「example」部分は php.ini を設置したディレクトリ名に置き換えてください。
これにより、該当ディレクトリ配下すべてにその php.ini の設定が反映されます。
PHP を .html や .htm などの拡張子ファイルとして実行する
例)PHP 7.1 を .html や .htm 拡張子でも実行したい場合:
AddHandler x-httpd-php71 .php .html .htm
ご利用可能な PHP バージョンは こちら をご確認ください。
シンボリックリンクを有効化する場合
mod_rewrite を利用したリライトやリダイレクト設定を行う際に、シンボリックリンクの許可が必要です。その場合、以下の行を記述してください。
Options +SymLinksIfOwnerMatch
RewriteEngine On
「+」記号をつけ忘れないようにご注意ください。
mod_rewrite を利用する場合
上記と同様に、Options +SymLinksIfOwnerMatch
と RewriteEngine On
を記述し、必要なリライトルールを追加します。
リンク元ファイルとリンク先ファイルは同一ウェブコントロールパネルIDの領域内である必要があります。
リダイレクト(転送)設定する
リダイレクト設定も mod_rewrite
または Redirect
/RedirectMatch
ディレクティブを使って行います。
基本的に Options +SymLinksIfOwnerMatch
RewriteEngine On
が必要です。
例1:www なし → www あり
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.jp
RewriteRule (.*) http://www.example.jp/$1 [R=301,L]
301 リダイレクトは恒久的、302 は一時的なリダイレクトとして運用してください。
例2:強制的に https へリダイレクト
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://www.example.jp/$1 [L,R]
※ https を利用するには SSL サーバー証明書が必要です。
例3:特定ディレクトリ(aaa)→ 別ディレクトリ(bbb)
Options +SymLinksIfOwnerMatch
RewriteEngine On
Redirect permanent /aaa/ http://www.example.jp/bbb/
例4:全リクエスト → トップページ
Options +SymLinksIfOwnerMatch
RewriteEngine On
RedirectMatch 301 .* http://www.example.jp/
例5:アクセス元(User-Agent)ごとの振り分け
Options +SymLinksIfOwnerMatch
RewriteEngine On
# docomo
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ http://example.jp/i/index.html [R]
# SoftBank
RewriteCond %{HTTP_USER_AGENT} SoftBank
RewriteRule ^$ http://example.jp/s/index.html [R]
# au
RewriteCond %{HTTP_USER_AGENT} UP.Browser
RewriteRule ^$ http://example.jp/au/index.html [R]
# Android
RewriteCond %{HTTP_USER_AGENT} Android
RewriteRule ^$ http://example.jp/android/index.html [R]
# iPhone
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule ^$ http://example.jp/iphone/index.html [R]
# iPad
RewriteCond %{HTTP_USER_AGENT} iPad
RewriteRule ^$ http://example.jp/ipad/index.html [R]
表示順序の変更
サーバー側でのデフォルト優先順位は index.html → index.shtml → index.cgi → index.hdml → index.htm → index.php
ですが、 DirectoryIndex
ディレクティブを使い任意の順番に変更できます。
例:index.cgi を最優先に
DirectoryIndex index.cgi index.html
エラーページの表示設定
カスタムエラーページを用意し、エラー発生時に独自ページを表示する設定例です。
例:404 Not Found → /error/404.html
ErrorDocument 404 http://example.jp/error/404.html
指定URLは自サイト内の絶対パス、もしくはフルパスURLを使ってください。
アクセスを制御(拒否/許可)する
order
、allow
、deny
ディレクティブにより、IP 単位のアクセス制御が可能です。 以下の例は一部のみを許可 or 拒否する方法です。
例1:特定 IP(192.0.2.1)のみ許可
order deny,allow
deny from all
allow from 192.0.2.1
例2:特定 IP(192.0.2.1)以外を許可
order allow,deny
allow from all
deny from 192.0.2.1
SSI を「.shtml」以外の拡張子で使用する
通常は「.shtml」拡張子のファイルが SSI として動作しますが、別の拡張子にしたい場合は下記を追記します。
<FilesMatch .html$>
SetHandler server-parsed
</FilesMatch>
MIME タイプを定義する
サーバーに定義されていない MIME タイプを追加する方法です。 例1:.htm や .html を PHP として処理
AddHandler x-httpd-php71 .htm .html
例2:独自 MIME タイプを定義
AddType application/pdf .pdf
AddType image/jpeg .jpeg
定義してもサーバー仕様上ご利用いただけない場合もあります。事前テストをおすすめします。
mod_deflate モジュールの利用方法
mod_deflate はコンテンツを圧縮して転送量を削減し、表示速度を改善する機能です。 一部 MIME タイプ(text/html, text/plain, text/css, など)は自動的に圧縮対象となっていますが、 それ以外を圧縮する場合は下記を記述します:
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/xml
</IfModule>
※圧縮対象から外したい拡張子(例:.php)は SetEnv no-gzip
を使って除外可能です。
<FilesMatch .php$>
SetEnv no-gzip
</FilesMatch>
4-11. スクリプト定期実行ツール
スクリプト定期実行ツールを利用すると、CGI スクリプト(Perl/PHP/Ruby/Python など)を定期的に自動実行できます。予約した時刻や間隔で実行し、データの集計やレポート送信などに活用できます。
注意事項
スクリプト定期実行ツールで CGI を確実に実行するためのポイント:
- CGI 内のコマンドやファイル参照は 絶対パス を使う
- HTTP_XXXX_XXXX のような環境変数は利用できない
実行できないスクリプト例
#!/usr/local/bin/perl
while(<DATA>){ system($_); }
__DATA__
cd /usr/home/ウェブコントロールパネルID/html/temp
tar cvfz backup.tgz /usr/home/ウェブコントロールパネルID/html/example/*
実行可能なスクリプト例
#!/usr/local/bin/perl
while(<DATA>){ system($_); }
__DATA__
/usr/bin/tar cvfz /usr/home/ウェブコントロールパネルID/html/temp/backup.tgz /usr/home/ウェブコントロールパネルID/html/example/*
スクリプト定期実行ツールの設定
- コントロールパネルにて 【Web】 > 【公開サイト】 > 【スクリプト定期実行ツール】 をクリックします。
- 【新規作成】 をクリックします。
- 実行スクリプト / PHP バージョン / スケジュールを選択し、 【追加する】 をクリックします。
– 実行するスクリプト:html ディレクトリ内の.cgi, .pl, .rb, .php, .py, .sh
のいずれか
– PHP のバージョン:.htaccess で切り替えたバージョンと異なる場合は注意
– 実行スケジュール:「毎日*時*分」「毎月*日 *時*分」「**分毎」など幅広く設定可能 - 確認画面で 【設定】 をクリックすると定期実行が登録されます。
※サーバー負荷等によっては指定した時間から多少の遅れが生じる場合があります。 - 削除したい場合は設定一覧から 【×】(削除) をクリックし、 【OK】 を選択すれば完了です。
4-12. アクセス制御 (BASIC 認証)
SslBiz サーバーでは、指定したディレクトリに対して BASIC 認証によるアクセス制御をかけることができます。 一つのディレクトリに複数ユーザーを設定することが可能で、登録済みのパスワードを後から確認・変更することはできません(再設定が必要)。
アクセス制御機能の内部では「.htpasswd」「.htaccess」を使用します。 既にお客さま独自でこれらファイルを設置されている場合は、コントロールパネルでの設定に失敗したり、 意図せぬ影響を及ぼす可能性があるためご注意ください。
アクセス制御の設定
例として、http://ドメイン/secure01/
ディレクトリにアクセス制御を施す場合の手順です。
- FTP クライアントソフトでサーバーへ接続し、
/html
ディレクトリ配下にsecure01
という名称のディレクトリを作成します。 - コントロールパネルにて 【Web】 > 【公開サイト】 > 【アクセス制御(Basic認証)】 をクリックします。
- 【アクセス制御の追加】 をクリックします。
- 【アクセス制御するディレクトリ】 で
/html/secure01
を選択し、アクセス制御に用いるユーザー名・パスワードを入力して 【追加する】 をクリックします。 ユーザー名・パスワードの要件:- ユーザー名: 半角1~219文字以内、英数字と一部記号(
-
_
.
)が利用可能 - パスワード: 半角1~255文字以内、半角の記号が利用可能
- ユーザー名: 半角1~219文字以内、英数字と一部記号(
- 追加完了後、設定完了メッセージが表示されます。
- ブラウザから
/secure01
にアクセスし、認証画面が表示されることを確認してください。
アクセス例:
–http://ドメイン名/secure01
–http://プレビュードメイン名/secure01
アクセス制御の解除
- 解除するアクセス制御の右端にある【×(削除)】をクリックします。
- 確認画面で【削除する】をクリックすると、設定が削除されます。
- 削除完了後、メッセージが表示されます。
PHP をご利用の方へ
アクセス制御以外(PHP など)で既に .htaccess
ファイルを使用している場合は、 コントロールパネルから BASIC 認証を設定・削除すると、既存の .htaccess
が上書きされ 意図しない動き が発生する可能性があります。
そのため、すでに .htaccess
をお使いの場合は 直接ファイルを編集・追記 する方法をおすすめします。 アクセス制御をコントロールパネル操作で行うと、.htaccess
/.htpasswd
に対して変更や削除が行われる点にご留意ください。
4-13. エラーページ設定ツール(テストサイト)
このツールを使うと、テストサイト上で発生した下記エラーコードに対して、 任意の HTML ファイルを表示することができます。
対象のエラーコード: 401 Authorization Required
(認証失敗)、 403 Forbidden
(権限なし)、 404 Not Found
(ページが見つかりません)、 500 Internal Server Error
(サーバー内部エラー)。
なお、/html にアクセス制御(BASIC 認証)を設定している場合や、 既に独自の .htaccess
を設置している場合は、 エラーページ設定ツールから設定できませんのでご注意ください。
エラーページの設定
- あらかじめエラーページ用の HTML ファイルを作成し、 テストサイト領域のウェブサーバーへアップロードしておきます。
- コントロールパネルにて 【Web】 > 【テストサイト】 > 【エラーページ設定ツール】 をクリックします。
- 設定するエラーコードごとに、アップロード済みのファイルを指定し、 【設定する】 をクリックします。
すでに.htaccess
が存在する場合は、設定に失敗する場合があります。 - 確認画面が表示されたら 【OK】 をクリックし、設定を完了してください。
- 設定完了後、メッセージが表示されます。
設定時に html ディレクトリ直下 に.htaccess
ファイルが作成され、その中にErrorDocument 401 /ファイル名
などが書き込まれます。
設定の解除
解除する場合は、FTP で html ディレクトリ にアクセスし、生成された .htaccess ファイルを削除してください。
4-14. SSI
SSI(Server Side Include)は、HTML ファイル内でサーバーサイドの命令を実行し、 CGI の出力やファイル内容などを埋め込む機能です。サーバーがページを生成する時点で実行されるため、 ブラウザには実行結果だけが表示されます。
SSI の利用方法
HTML ファイルに以下のような記述を加えるだけで SSI が使用できます。<!--#コマンド 引数;-->
例)世界標準時(グリニッジ標準時)による現在の日時を表示するには:<!--#echo var="DATE_GMT" -->
SSI を使う場合は、拡張子を通常の「.html」ではなく 「.shtml」 にする必要があります。
ファイルのパーミッションは 644 (rw-r–r–)で問題ありません。
また、 .htaccess ファイル を特別に用意する必要はありません。
※ 別の拡張子で SSI を使用する 場合は、 「SSIを『.shtml』以外の拡張子で使用する」 をご参照ください。
引数の渡し方
SSI から CGI スクリプトへ引数を渡すには、下記のように記述します。
<!--#include virtual="test.cgi?arg1+arg2" -->
ここで arg1
と arg2
が引数となり、test.cgi
側で受け取って処理することが可能です。
4-15. SSH(鍵認証)
SSH(Secure Shell)は、サーバーにリモート接続し、ファイル操作・プログラム実行などを行える機能です。 SslBiz サーバーの場合、鍵認証(公開鍵と秘密鍵)を利用して安全に接続できます。
SSH の利用方法
SSH 接続には以下の準備が必要です。
- 公開鍵と秘密鍵の鍵ペアを生成
- ウェブサーバー(SslBiz サーバー)への 公開鍵 の登録
- PC(または端末)側への 秘密鍵 の保存
鍵ペアを作る際にパスフレーズを設定した場合、SSH 接続時にパスフレーズを求められます。設定しなければ入力は不要です。
SSH 接続に必要な情報
ログイン情報(接続先や認証用情報)は下記の通りです。
- サーバー名(ホスト名):ご契約のウェブサーバー名(例:hbv****.secure.ne.jp)
- ポート番号:コントロールパネルの【Home】>【バージョン・ポート番号】>「SSH(公開サイト / テストサイト)」に記載
公開サイトとテストサイトで別のポート番号を使います。 - ユーザー名:ウェブコントロールパネル ID
- パスフレーズ:設定した場合のみ必要
コントロールパネルの利用方法
SslBiz サーバーのコントロールパネルでは以下の機能を提供しています。
- 公開鍵一覧表示
ウェブサーバーに登録された公開鍵のフィンガープリント / コメントを確認可能。
【×】 ボタンやチェックボックスを使ってキー削除もできます。 - SSH 利用開始/利用停止
ON(有効): 公開鍵が登録されている状態で【ON/OFF】をクリックし、「ON/有効」にすると鍵認証での SSH 接続が可能になります。
OFF(無効): 【ON/OFF】をクリックし、「OFF/無効」にすると SSH 接続を禁止できます(公開鍵は残る)。 - 鍵ペア作成機能
秘密鍵ファイル名(必須)・パスフレーズ(任意)・コメントを入力後、【作成する】をクリックすると鍵ペア(秘密鍵 / 公開鍵)を生成。
公開鍵はサーバーに自動登録され、秘密鍵はダウンロードしてお使いのPCに保存します。
サーバー上から秘密鍵は削除されるため安全です。 - 公開鍵登録機能
ローカル PC で作成した公開鍵をサーバーにアップロードできます。
追加された公開鍵は/home/ウェブコントロールパネルID/.ssh/authorized_keys
に追記されます。
SSH クライアントソフト
PuTTY, TeraTerm, Mac OS 標準ターミナルなど、主要な SSH クライアントで接続可能です。ご利用方法などは、それぞれのソフトのご利用マニュアルなどをご覧ください。
SSH で利用できるコマンド
以下のコマンドがご利用可能です。コマンド利用方法などについてはサポート対象外 となります。
利用可能コマンド一覧:
/bin/cat
/bin/chmod
/bin/cp
/bin/csh
/bin/date
/bin/echo
/bin/ln
/bin/ls
/bin/mkdir
/bin/mv
/bin/ps
/bin/pwd
/bin/rm
/bin/rmdir
/bin/sh
/bin/tcsh
/usr/bin/awk
/usr/bin/basename
/usr/bin/bsdtar
/usr/bin/cut
/usr/bin/diff
/usr/bin/false
/usr/bin/fetch
/usr/bin/find
/usr/bin/grep
/usr/bin/groups
/usr/bin/gunzip
/usr/bin/gzip
/usr/bin/head
/usr/bin/less
/usr/bin/more
/usr/bin/sed
/usr/bin/sort
/usr/bin/tail
/usr/bin/tar
/usr/bin/touch
/usr/bin/tr
/usr/bin/true
/usr/bin/uname
/usr/bin/uniq
/usr/bin/vi
/usr/bin/view
/usr/bin/wc
/usr/bin/xargs
/usr/local/bin/bash
/usr/local/bin/curl
/usr/local/bin/git
/usr/local/bin/git-cvsserver
/usr/local/bin/git-receive-pack
/usr/local/bin/git-shell
/usr/local/bin/git-upload-archive
/usr/local/bin/git-upload-pack
/usr/local/bin/mysql
/usr/local/bin/mysqldump
/usr/local/bin/pg_dump
/usr/local/bin/php-7.4
/usr/local/bin/php-8.0
/usr/local/bin/php-8.1
/usr/local/bin/perl
/usr/local/bin/psql
/usr/local/bin/unzip
/usr/local/bin/vim
/usr/local/bin/wget
/usr/local/bin/zip
MySQL 接続例: mysql -u ウェブコントロールパネルID -h 127.0.0.1 -p -P [ポート番号]
(ポート番号は MySQL 5.7 / 8.0 によって異なります)
SSH 鍵認証の仕様
コントロールパネルで生成される鍵ペアの仕様
利用可能な文字種 | 文字数制限 | 必須 | |
---|---|---|---|
秘密鍵ファイル名 | 半角英数、ハイフン、アンダースコア | 1 ~ 30 文字以内 | 必須 |
パスフレーズ | 半角英数、_#@.,+-;:$%&!= | 5 文字以上~ 50 文字以内 | 省略可※ |
コメント | 制限なし | 50 文字以内 | 省略可 |
コントロールパネルで生成される秘密鍵の仕様
- 種類: RSA2
- 鍵長: 2048 bit
- パスフレーズ: 任意(設定あり / なし)
- コメント: 任意(最大 50 文字)
コントロールパネルの公開鍵登録機能 は RSA2 または ECDSA に対応しており、
RSA2 の場合は鍵長が 2048 bit 以上である必要があります。
注意事項
- サーバー提供時は SSH 接続が無効となっています。
公開鍵を登録して【ON/OFF】をクリックし、「ON/有効」に切り替えてご利用ください。 - 鍵ペアは公開サイトとテストサイト共通です。
接続先のポート番号を変えることで公開サイト / テストサイトを使い分けます。
例) 公開サイト接続:
$ssh -p [公開サイトポート] -l hbv0000000 hbv0000.secure.ne.jp
テストサイト接続:$ ssh -p [テストサイトポート] -l hbv0000000 hbv0000.secure.ne.jp
- ユーザー権限のみ でご利用いただけます。
root 権限が必要な操作は行えません。 - 上述のコマンド以外は使用できません。
- インストール済みのコマンド利用方法もサポート外です。
4-16. WAF(Web アプリケーションファイアウォール)
WAF は、従来のファイアウォールや IDS/ADS では検知しきれないような Web アプリケーションへの攻撃 を検出・防御できる仕組みです。
たとえば「SQL インジェクション」パラメータを含むリクエストがあれば、その通信を遮断するなどの対策が可能になります。
SslBiz サーバーのプランでは WAF を標準機能として提供しております。WAF が攻撃検知を行った際にアラートメール通知を送る機能はありません。
4-16-1. WAF 機能の ON/OFF 方法
- コントロールパネルにて 【Web】 > 【公開サイト】 > 【WAF】 をクリックします。
※テストサイトの場合は 【Web】 > 【テストサイト】 > 【WAF】 - 「設定状況」の 【ON/OFF】 ボタンをクリックして切り替えます。
反映には数分かかる場合があります。
公開サイト / テストサイトの初期設定は「ON / 有効」です。
WAF を有効化したことでウェブサイトの表示や動作に支障が出る場合は、 一度「OFF / 無効」にして現象が改善するかを確認し、 そのうえで WAF ログを確認・シグネチャ除外設定を行い、 有効状態でも問題なく運用できるようご調整ください。
4-16-2. WAF のログについて
WAF の検出ログは、コントロールパネルからの「ログ詳細」画面や、サーバー上の /log
ディレクトリから確認できます。
WAF の検出ログの確認方法
- コントロールパネルにて 【Web】 > 【公開サイト】 > 【WAF】 をクリックします。
- 「ログ詳細」の 【表示】 をクリックします。
- 画面左上のプルダウンメニューから対象期間(「本日」「今月」「先月」)を選択します。
- 検知がある場合、日時 / 動作(MONITOR or BLOCK) / クライアントIP / メソッド / URL / 検出シグネチャなどが一覧表示されます。
- MONITOR:ログには残るがリクエストは拒否しない。
- BLOCK:リクエストを拒否し、クライアントへメッセージを返す。
WAF のログのダウンロード方法
FTP から:
- FTP アカウントでログインディレクトリを
/
または/log
に設定し、
/log ディレクトリへアクセスします。 waf-detect.log
が当日分、waf-detect.log.yyyymm
が 1 か月分のログファイルです。
必要なファイルをダウンロードしてください。ログは 3 ヶ月前まで保存され、以降は自動削除されます。
なお、 /log ディレクトリ名やログファイル名を変更すると WAF が正常に動作しなくなるためご注意ください。
コントロールパネルから:
- コントロールパネルにて 【Web】 > 【公開サイト】 > 【WAF】 > 【表示】 をクリックします。
- 画面左上のプルダウンで対象期間を選択し、ログ情報を表示します。
- 【CSV 出力】をクリックすると waf-log.csv ファイルが PC にダウンロードされます。
この方法では「本日 / 今月 / 先月」以外の期間のログを取得することはできません。
WAF のログの見方
/log ディレクトリ内の WAF ログ(例:waf-detect.log
)は以下のフォーマットで記録されます。 1 行につき 1 件の検出状況がスペース区切りで並び、最後に検出情報などが付加されます。
- 時刻: エポックタイム(1970/01/01 00:00 UTC からの秒数をミリ秒単位)
- 接続時間: クライアント接続時間(ミリ秒)
- クライアントホスト: 接続元 IP アドレス
- 処理結果: 常に
TCP_MISS/000
- ファイルサイズ: 送信データ量(バイト)
- 要求メソッド: GET / POST 等
- URL: 接続先 URL
- ユーザ名: 常に
-
- hierarchy code:
DIRECT/[接続先IPアドレス]
- Content-Type: 送受信ファイルの Content-Type (不明時は
-
) - 検出情報(DETECT-STAT): 攻撃検出名、シグネチャ ID など
- 動作(ACTION): MONITOR(監視) or BLOCK(拒否)
- 判定情報(JUDGE): MONITOR or BLOCK、URL設定など
- 検索キー(SEARCH-KEY):
時刻.apacheコネクションID
検出情報には「シグネチャ名」や「URL デコードエラー」等が含まれます。 こちらを確認し、サイトの動作に支障がある場合は特定シグネチャを除外して運用します。
4-16-3. 通信を遮断した際の表示画面
WAF が通信を遮断すると、ブラウザには遮断メッセージ画面が表示されます。 WAF が有効な状態で WAF-TEST-SIGNATURE
を含む URL にアクセスすると遮断を確認できます。
- 公開サイト:
http://
/ドメイン名
/WAF-TEST-SIGNATUREhttp://ドメイン名/WAF-TEST-SIGNATURE
- テストサイト:
http://テストサイトドメイン名/WAF-TEST-SIGNATURE
4-16-4. 特定シグネチャの除外方法
.htaccess ファイルに特定の記述を追加することで、WAF が検知するシグネチャを部分的に除外できます。 (すでに .htaccess が存在する場合は追記してください。)
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig シグネチャ名1,シグネチャ名2
</IfModule>
例) signature1
と signature2
を除外する場合。 シグネチャ名の確認は前述のログ情報から行えます。
親ディレクトリと子ディレクトリの関係
親ディレクトリにある SiteGuard_User_ExcludeSig
の設定は子ディレクトリに継承されます。
ただし、子ディレクトリ側でも SiteGuard_User_ExcludeSig
を記述すると、親の設定は継承されず子ディレクトリの設定が優先されます。
親ディレクトリ:
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig signature1,signature2
</IfModule>
子ディレクトリ:
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig signature3
</IfModule>
上記では子ディレクトリは signature3
のみが除外されます。
上位階層の設定を無効化(継承解除)する方法
子ディレクトリに以下を記述すると、上位階層の除外設定を継承しなくなります。
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig clear
</IfModule>
これにより当該ディレクトリおよび下層は除外設定なしの状態になります。
除外設定の応用
- 攻撃検出はコントロールパネルの WAF ログ表示で確認できます。(【Web】 > 【公開サイト】 > 【WAF】 > 【表示】 など)
.htaccess
に以下のような記述を行うことで、シグネチャ除外を柔軟に設定できます:- SiteGuard_User_ExcludeSig <シグネチャID|名前|urldecode|all|clear>
- SiteGuard_User_ExcludeSig_With_ParamName <シグネチャ等> <パラメータ名>
- <Files ~ “filename.php$”> … </Files> と組み合わせる方法
記述は下記の通りです。
特定のシグネチャを指定して除外
SiteGuard_User_ExcludeSig
[ シグネチャ ID|シグネチャ名|urldecode|all|clear ]
.htaccess 記述例)
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig xss-tag-1,xss-tag-filter
</IfModule>
urldecode:URL デコードエラーによる検出を除外
all:すべてのシグネチャと URL デコードエラーによる検出を除外
clear:上位階層設定を解除
特定ファイルの除外
<Files ~ "filename.php$">
SiteGuard_User_ExcludeSig
[ シグネチャ ID|シグネチャ名|urldecode|all|clear ]
</Files>
この場合、設置した階層以下の filename.php が除外されます。
.htaccess 記述例)
<Files ~ "sample.php$">
SiteGuard_User_ExcludeSig all
</Files>
クエリを指定した除外
SiteGuard_User_ExcludeSig_With_ParamName
[ シグネチャ ID|シグネチャ名|urldecode|all|clear] [パラメータ名 ]
.htaccess 記述例)
SiteGuard_User_ExcludeSig_With_ParamName all xss
記述例の「all xss」 は、xss パラメータに対してすべて(all)を許可しています。
すべてを許可しない場合は [ シグネチャ ID|シグネチャ名|urldecode|all|clear ] を指定することができます。
シグネチャを指定する場合は SiteGuard_User_ExcludeSig_With_ParamName xss-tag-1 xss となります。
IPアドレスを指定した除外方法
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig ip(IP アドレス)
</IfModule>
■接続元 IP アドレス「192.168.0.1」からのアクセスを除外する場合
.htaccess 記述例)
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig ip(192.168.0.1)
</IfModule>
■接続元 IP アドレス「192.168.0.1」「192.168.0.2」「192.168.0.3」からのアクセスを除外する場合
.htaccess 記述例)
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig ip(192.168.0.1)
SiteGuard_User_ExcludeSig ip(192.168.0.2)
SiteGuard_User_ExcludeSig ip(192.168.0.3)
</IfModule>
IP アドレスが複数ある場合は、 1 行ずつ IP アドレスを記述してください。
■接続元 IP アドレス「192.168.0.1」「192.168.0.2」「192.168.0.3」からのアクセスを除外するが、”/usr/home/ウェブコントロールパネル ID/html/ディレクトリ名/test” では除外しない場合
この場合、.htaccess を 2 ファイルご用意いただく必要があります。
.htaccess(1つ目) 記述例)
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig ip(192.168.0.1)
SiteGuard_User_ExcludeSig ip(192.168.0.2)
SiteGuard_User_ExcludeSig ip(192.168.0.3)
</IfModule>
この .htaccess は “/usr/home/ウェブコントロールパネル” に設置します。
.htaccess(2つ目) 記述例)
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig clear
</IfModule>
この .htaccess は “/usr/home/ウェブコントロールパネル ID/html/ディレクトリ名/test” に設置します。