Perlで動的ホームページを構築する

PHP/Perlとは

PHP/Perlとは、動的なホームページ生成を行うことができるプログラム言語で、動的なホームページの代表であるblog、CMS、SNS、ECサイト、ショッピングモールのオープンソースWebアプリケーションは、主にPHP/Perl言語によって開発されております。これらのWebアプリケーションを利用するには、WebサーバでPHP/Perlを利用する必要がります。

※オープンソースWebアプリケーションの代表には、XOOPS、WordPress、Movable Type、Joomla!、OpenPNE、EC-Cubeなどがあります。
※PHPについては、「PHPで動的ホームページを構築する」をご覧ください。

ファイル名/ファイルアクセス権/Webアプリケーションの実行権

ファイル名

Perlプログラムは、ファイル名の拡張子を「.cgi」と指定してください。Perlプログラムをインデックスページとして指定したい場合は、コントロールパネルに関するマニュアル「インデックスページの設定」にてご指定ください。

ファイルアクセス権/Webアプリケーションの実行権

他社の共有サーバ方式のレンタルサーバの中には、同じ共有サーバを利用している全てのユーザ様のWebアプリケーションが、同じ実行ユーザ権限で動作しているものがあります。この場合、他ユーザー様からファイルの中身を覗かれたり(=ファイルの読み込み)、ファイル へ書込みを行うことができてしまうため、セキュリティ的にあまり望ましくない環境だといえます。

弊社では、共有サーバ方式のレンタルサーバ環境でありながら、同じ共有サーバを利用してるユーザ様のWebアプリ ケーションは全て異なる実行ユーザ権限にて動作する(ファイルをアップロードしたFTPユーザーとして動作します)ようになっておりますので、自分の Webスペ-ス内へは、他ユーザー様からはアクセスができないようにファイル/webアプリケーションの権限を適切に設定し高いセキュリティを確保することが可能です。詳細には、「ファイルのアクセス権/Webアプリケーションの実行権」をご覧ください。

Perlの利用

弊社WebサーバでPerlによる動的なホームページを公開するには、コントロールパネルからPerlの利用を有効にする必要があります。(初期状態は、Perlは無効となっております)

詳しくは、コントロールパネルに関するマニュアル「Perl(CGI)の設定」をご覧ください。

Perlスクリプトの文字コード・改行コードについて (シフトJISは使用しないでください)

Perlスクリプト自身の文字コードは「UTF-8」もしくは「EUC」で、改行コードを(LF)にして記述してください。Windowsの標準文字コードである「シフトJIS」は、「文字化けの問題」が発生するだけでなく「セキュリティ的な脆弱性問題」もあるため、弊社サポート外とさせていただいております。また、Perlでは改行コードが(LF)でない場合、「500 Internal Server Error(内部サーバエラー)」となり実行が中断されます。

Windows標準の「メモ帳」でPerlスクリプトを記述すると、文字コード「シフトJIS」+改行コード(CR+LF)で保存されます。他の「テキストエディタ」では、文字コード「UTF-8」もしくは「EUC」の改行コード(LF)で保存可能なものもあります。また、FTPソフト「FFFTP」では、パソコン側で文字コード「シフトJIS」+改行コード(CR+LF)で保存されたものを「EUC」+改行コード(LF)に文字コード変換してアップロードできます。

ご参考 「UTF-8」「EUC」+改行コード(LF)にて保存可能なソフト
  • フリーソフトのテキストエディタ「TeraPad」
  • シェアウェアソフトのテキストエディタ「秀丸エディタ」
Windows版FTPフリーソフト「FFFTP」で「シフトJIS」改行(CR+LF)→「EUC」改行(LF)文字コード変換してアップロードする方法
方法1 .phpファイルを1つずつ文字コード変換を確かめながらアップロード

FTPアップロードする前にツールバー(上部)にある下記の2つのボタンをクリックしてからFTPアップロードを開始してください。

  1. 「A」ボタン(カーソルをボタン上空に移動すると「アスキー転送モード」と表示)
  2. 「Euc」ボタン(カーソルをボタン上空に移動すると「ホストの漢字コードはEUC」と表示)
方法2 自動認識で文字コード変換しながらアップロード

下記の手順のとおり設定をおこなって拡張子「.cgi」ファイルを自動認識し、アップロードする際に文字コード変換されるように設定してください。

  1. メニュバーにある「接続(F)」-「接続(C)」をクリックし「ホスト一覧」画面を開いてください。
  2. ご利用のホストを一覧から選択し、右にある「設定変更(M)」をクリックし「ホストの設定」画面を開いてください。
  3. 「ホストの設定」画面で「文字コード」タブを選択後、「ホストの漢字コード(K)」を「EUC」をクリックし[OK]ボタンをクリックしてください。
  4. 「ホスト一覧」画面にて[閉じる]ボタンをクリックしてください。
  5. メニュバーにある「オプション(O)」-「環境設定(S)」をクリックし、「オプション」画面を開いてください。
  6. 「オプション」画面にて「転送1」タブを選んで、転送モードを「ファイル名で切替(X)」をクリックしてください。
  7. 「アスキーモードのファイル名(F)」の中にある[追加(I)」ボタンをクリックし、ポップアップされる「ファイル名」画面に「*.cgi」と入力し[OK]ボタンをクリックしてください。
  8. 「オプション」画面の下部にある[OK]ボタンをクリックしてください。

以上で、拡張子「.cgi」ファイルを自動認識しアップロードする際に文字コード変換されるように設定できました。FTPアップロードする際には、ツールバー(上部)にある下記の2つのボタンをクリックし自動認識でFTPアップロードを開始してください。

  1. 「AB」ボタン(カーソルをボタン上空に移動すると「ファイル名で転送モード切替え」と表示)
  2. 上記の設定で「Euc」ボタン(カーソルをボタン上空に移動すると「ホストの漢字コードはEUC」と表示)は自動選択されています

※ただし、方法2では拡張子「.cgi」以外のファイルが自動認識されない場合もございますので、ご注意ください。

Perlからメールを送信する

お問合せフォーム等のWebアプリケーション(Perl)からメールを送信することができます。詳しくは、「PHPやPerlからメールを送信する(Sendmailの使用等)」をご覧ください。

PerlからMySQLデータベースを利用

弊社レンタルサーバサービス エントリプラン・SaaS型メールプランを除く全てのプランでMySQLデータベースをご利用いただけます。詳しくは、機能紹介「詳細内容:データベース(MySQL)」をご覧ください。

MySQLデータベースは、弊社コントロールパネルよりDB情報の入手・操作が可能です。

PerlからMySQLデータベースを利用するには、下記の手順にてご利用ください。

  1. 弊社コントロールパネルに管理者ログインし、「データベース機能(MySQL)のパスワード変更」にて、お客様ご希望のDBパスワードに変更してください。
    ※このDBパスワードを忘れないように保管しておいてください。
    ※既にDBパスワードをおわかりの場合は、この手順は行わないでください
  2. データベース機能(MySQL)の登録状況確認」よりDBサーバ名(Host) / DB名(Database Name) / DBユーザ名(DB username) / DBパスワード(DB password=上記1のDBパスワード)をご確認いただき、Perlにてご利用ください。
    • Perlモジュール「DBI::mysql / DBD::mysql」等をご利用ください。利用方法については、該当モジュールのリファレンスをご覧ください。
  3. データベースを直接操作(テーブル作成やデータインポートなど)する場合は、「データベース機能(MySQL)の操作(phpMyAdmin)」にて操作可能です。

※MySQLにてテーブルを作成の際に、データベース、テーブルもしくはフィールドに適切な文字コードを指定してください。文字コードが不適切な指定の場合は、文字化けの原因となります。
※弊社レンタルサーバでは、共有スペースでのCPANモジュールのご提供は行っておりません。ご利用の際は、お客様のWebスペースに設置してご利用ください。

PerlからSQLiteデータベースを利用

  • Perlモジュール「DBI::SQLite / DBD::SQLite」等をご利用ください。利用方法については、該当モジュールのリファレンスをご覧ください。

※弊社レンタルサーバでは、共有スペースでのCPANモジュールのご提供は行っておりません。ご利用の際は、お客様のWebスペースに設置してご利用ください。

  • コントロールパネル