|
|
CMS/LAMPシステムの構築
|
|
CMS/LAMPシステムとはApacheとPHPの設定MySQLの導入と基本設定MySQLのコントロールHTTPSのためのルーター設定phpMyAdminのインストールデータベースの作成と削除XOOPS CubeのインストールWordPressのインストールMovableType3のインストールMovableType4のインストールMovableType5のインストールosCommerceのインストールデータベースのバックアップデータベースのリストア |
まずApacheのセキュリティの設定を見直すことCMS※ は サーバー※ に インストール※ して利用する アプリケーション※ ですが、「サーバーの管理者がインストールを行って管理する」という一般的なサーバーアプリケーションの運用スタイルはとらないのが普通です。 サーバー管理者が行うのは、 構築中のLinuxサーバー にCMSが導入できる環境を整えるまでが仕事で、CMSは通常、個々の コンテンツ※ を構築する クライアント※ ユーザーが好みのものを選んでサーバーに アップロード※ して使用する、という利用スタイルが一般的です。 つまり、「 構築中のLinuxサーバー でコンテンツを運用するのは自分一人だけ。」というのであればあまり心配しなくてもかまいません。 しかしコンテンツスペースを第三者に貸し出す場合にはCMSの導入から先を他人に委ねることになります。 従ってCMSを導入する際には、 Apache※ の セキュリティ※ についてもう一度見直しを行う必要があります。
Apacheでユーザーディレクトリを公開して第三者にコンテンツスペースを貸し出す場合は、まず、
もちろん、貸し出すのが
バーチャルホスト※
PHPの設定の確認と修正phpスクリプトからの設定の確認方法構築中のLinuxサーバー がこの コンテンツ※ に従ってセットアップされていれば、既に PHP※ はきちんと導入されているはずですので、その動作と設定を確認してみましょう。
まず
サブネット
内の適当な
クライアント機※
から
SSHクライアント※
で
構築中のLinuxサーバー
に
ログイン※
します
それから
su
コマンド※
で
アカウント※
を
"root"
に変更し、
echo
コマンドをつかってPHPの設定確認用のPHP
スクリプト※
"phpinfo.php"
を
Apache※
のドキュメントルート
コマンドがちょっと複雑でわかり難いかもしれませんが、要は、 "<?php phpinfo() ?>" という内容の テキスト※ ファイルを作成しているだけです。 次に、 HTTP※ でアクセス可能な任意の クライアント※ から、 構築中のLinuxサーバー に Webブラウザ※ で
http://www.obenri.com/phpinfo.php
や
http://192.168.100.11/phpinfo.php
のようにアクセスしてみてください。 PHPがきちんとインストールされ、Apacheが稼動していれば以下のようなページが表示されます。
システムにインストールされているPHPの設定(WBEL3の例) WBEL※ や CentOS※ に インストール※ されているPHPは、日本語への対応を含めて一般的なCMSならばそのまま利用できるような デフォルト※ 設定になっています。 従って通常はPHPの設定を変更する必要はありませんが、導入するCMSの説明の中に設定に関する指示がある場合には適宜修正する必要があります。 また、CMSの導入後にエラーが発生するときは、そのエラーメッセージに従って適宜設定を変更する必要があるかもしれません。 設定の修正や方法はPHPの初期設定ファイルの書き換えで行いますが、その方法は以下で説明します。 "/etc/php.ini"の編集による設定の変更PHPの設定は、その初期設定ファイルである "/etc/php.ini" を picoエディタ などで修正して行います。 "/etc/php.ini" は結構大きな設定ファイルですので、 cp コマンドでバックアップを作成してから作業するようにします。
↓
デフォルトの"/etc/php.ini" 利用するCMSに特に指定がない限りは、php.iniはデフォルトのままでも大丈夫なことが多いのですが、CMSのマニュアルで設定変更の指示がある場合は該当するパラメータを変更する必要があります。 また最近のCMSはかなり大きな仕事をPHPに依存することがあり、PHPがデフォルトで使用する メモリ※ の容量では不足することがあります。 こういう場合は具体的なエラーは表示されませんが、例えば操作中に「ページが見つからない。」あるいは「真っ白な画面で何も表示されない。」といった状況になりますので、こういう場合はPHPの使用メモリ量を増やす必要があります。 PHPが使用するメモリの容量の設定は、WBEL3やCentOS3では 232行目あたり 、WBEL4及びCentOS4では 246行目あたり 、CentOS5では 314行目あたり にあります。
WBEL3、CentOS3、WBEL4、CentOS4ではこのようにデフォルトでは8 MB※ になっていますので、例えば、 |
||||||||||||
| サーバー機が実装しているメインメモリの容量に合わせて調整します。 |
のように増やすときちんと動作するようになります。 CentOS5ではデフォルトで 128MB の設定になっていますが、これは利用されるCMSのメモリ要求量の増大に合わせて、というよりも、PHP自身の動作に必要メモリ量が増えたことと、近年のホスト機が潤沢にメモリを搭載しているケースが大部分であることから、かなり余裕を持った設定になっている、と解釈してください。 従ってCentOS5でPHPを利用する場合、 サーバー機※ の搭載メモリ容量が少ないとき(概ね512MB以下)は、適宜小さな数値に変更しなければならない可能性がある点に注意してください。 ところでLAMPによるCMSでは、写真などの画像データを Webサーバー※ アップロード※ する場合、 FTP※ ではなくPHPを利用して HTTP※ で行うのが普通です。 一般にFTPによるファイル転送では、それを実行するのは通常サイトオーナー自身ですから、転送可能なファイル容量に制限をかける必要はありません。 しかしユーザーからの投稿写真などを掲載するスタイルのCMSでは、安全のためにアップロード可能なファイル容量に制限をかけておくのが望ましいでしょう。 PHPがHTTPのPOSTメソッド(クライアントからサーバーへデータを送る手続き)で扱えるデータ量の上限の設定は、WBEL3やCentOS3では 373行目あたり 、WBEL4及びCentOS4では 388行目あたり 、CentOS5では 477行目あたり にあります。単位はMBです。
また、PHPがアップロードを許可するファイル容量の上限の設定は、WBEL3やCentOS3では 482行目あたり 、WBEL4及びCentOS4では 501行目あたり 、CentOS5では 582行目あたり にあります。こちらも単位はMBです。
一般的なCMSの運用では、アップロードの対象は写真などが主ですから通常これらの値は、先に説明したPHPの使用メモリの量を合わせてデフォルト値の、
でも不都合はないはずです。 しかし、例えば バイナリ※ プログラムの投稿サイトを運営するような場合は、上限が2Mでは不足かもしれません。
またこのセクションでも解説している
phpMyAdmin※
などの、
クライアント※
からHTTPで接続して
MySQL※
を制御するプログラムを使用する場合、データベースのリストア作業はすなわちファイルのアップロード作業ということになりますから、こういうケースでは一時的にでもファイルサイズの制限を緩めなければならなくなるでしょう
設定のルールとしては理屈からいうと、
PHPの使用メモリ量 ≧ POSTで扱うデータ量 ≧ アップロードファイル容量
|
||||||||||||
|
いちいち設定を変更するのが面倒だからといって、これらの値をむやみに大きくするのはもちろんNGです。
大きなファイルをアップロードする必要がなくなったら、速やか最適値に戻すようにしましょう。 |
という序列である必要がありますから、例えば12MBのファイルのアップロードを許可したい場合は、
のように設定を変更します。 "/etc/php.ini" では、このようにPHPの動作に関する基本的な設定を行いますが、その他の細かい設定の修正についてはCMSのマニュアルなどを参考に適宜行ってください。
また、
"/etc/php.ini"
の
ディレクティブ※
を修正して保存したら、必ずApacheの再起動または設定の再読み込み作業
PHPはApacheのモジュールとして動作していますので、これで設定の変更を有効にすることができます。 また、PHPによるアップロードファイルサイズの制限については "/etc/php.ini" だけではなく、Apacheの設定である "/etc/httpd/conf.d/php.conf" にも別途記述されていることがありますから、こちらの設定もあわせて確認する必要がありますので注意してください。 "/etc/httpd/conf.d/php.conf" については以下に引き続いて説明します。 phpスクリプトの記述とHTMLとの関係について |
||||||||||||
|
PHPは通常、例えば以下のように HTML※ 形式で書かれたテキストの中に、 赤字 のようにPHPスクリプトの位置を指定して埋め込む形で記述されます。
PHPスクリプトを埋め込んだHTMLファイルは、特定の拡張子のファイルとすることでPHPスクリプトが埋め込まれていることを判定し、実行するようになっています。 その判定を行うための設定は、 "/etc/httpd/conf.d/php.conf" に記述されていますが、内容はOSの種類によって異なります。 "/etc/httpd/conf.d/php.conf"の編集(WBEL3,4 CentOS3,4)
まず、picoエディタで
"/etc/httpd/conf.d/php.conf"
を開きます
↓
デフォルトの"/etc/httpd/conf.d/php.conf"(WBEL3,4 CentOS3,4) この "/etc/httpd/conf.d/php.conf" の内容から "#" でコメントアウトされた部分を除くと(つまり有効な設定のみを抜き出すと)以下のようになります。 つまりPHPに関するApache上のデフォルトの設定では、 1."*.php"という名前のファイルをPHPスクリプトとして処理する。 2. クライアント※ から受け付けるリクエストのデータ容量を約500 KB※ に制限する。 3.ファイル名"index.php"は省略可能 となっています。 1. についてですが、通常はこの設定でも何ら問題はありません。しかしCMSの種類によっては "*.php3" や "*.php4" のように、拡張子の後ろにバージョンの数字を付加したファイル名でPHPスクリプトを扱うものがありますから、このままでは "*.php3" や "*.php4" はただのテキストファイルとして処理され、Webブラウザでアクセスすると画面にその内容が表示されるだけになってしまいます。 そこでこのようなファイル名を扱うCMSを利用する場合には、とりあえず以下のように設定を追加しておくとよいでしょう。
|
|||||||||||||
| CMSによっては "DirectoryIndex" ディレクティブにも追加を行う必要があるかもしれません。 |
これで、 "*.php" の後に任意の一文字がくっついたファイルもPHPスクリプトとみなされて実行可能になります。 2. については、例えばクライアントからの写真データの アップロード※ など受け付けるCMSを運用する場合、ひょっとしたら500KBというデータ量の制限によって満足に働くことができないかもしれません。 当たり前に考えればこういう場合は、
のように修正することで許容できるデータ容量を調整することができますが、オススメは、
のように 設定そのものを無効化してしまうことです 。 このページの前半で説明したとおり、PHPによるアップロード可能なファイルサイズはPHPそのものの動作設定 "/etc/php.ini" の中の "memory_limit" 、 "post_max_size" 、 "upload_max_filesize" の各 ディレクティブ※ 記述で制限されています。 ですからこの "/etc/httpd/conf.d/php.conf" で "LimitRequestBody" を有効にしてしまうと、アップロードファイルサイズの変更を行おうとするたびに 四つの設定を見直さなければならない ということになります。 つまり "/etc/httpd/conf.d/php.conf" で "LimitRequestBody" の設定そのものを無効化して、「ファイルのアップロードに関する設定は"/etc/php.ini"のみで行う」ことで設定を簡素化し、惑いの種を減らしてしまおう、という考え方です。 |
||||||||||||
|
|
"/etc/httpd/conf.d/php.conf"
への設定の追加や修正を行ったら、必ずApacheの再起動または設定の再読み込み作業
"/etc/httpd/conf.d/php.conf"の編集(CentOS5)
picoエディタで
"/etc/httpd/conf.d/php.conf"
を開きます
↓
デフォルトの"/etc/httpd/conf.d/php.conf"(CentOS5) この "/etc/httpd/conf.d/php.conf" の内容から "#" でコメントアウトされた部分を除くと(つまり有効な設定のみを抜き出すと)以下のようになります。 つまりPHPに関するApache上のデフォルトの設定では、 1."*.php"という名前のファイルをPHPスクリプトとして処理する。 2.ファイル名"index.php"は省略可能 となっています。 通常はこの設定でも何ら問題はないのですが、CMSの種類によっては "*.php4" や "*.php5" のように、拡張子の後ろにバージョンの数字を付加したファイル名でPHPスクリプトを扱うものがありますから、このままでは "*.php4" や "*.php5" はただのテキストファイルとして処理され、Webブラウザでアクセスすると画面にその内容が表示されるだけになってしまいます。 そこでこのようなファイル名を扱うCMSを利用する場合には、とりあえず以下のように設定を追加しておくとよいでしょう。
|
||||||||||||
| CMSによっては "DirectoryIndex" ディレクティブにも追加を行う必要があるかもしれません。 |
これで、 "*.php4" 及び "*.php5" もPHPスクリプトとみなされて実行可能になります。
また、MySQLの操作に
phpMyAdmin※
を使用する場合
拡張モジュールのインストールは yum を利用して簡単に行うことができますので、忘れないうちにやっておきましょう。
拡張モジュールの追加や
"/etc/httpd/conf.d/php.conf"
への設定の追加や修正を行ったら、必ずApacheの再起動または設定の再読み込み作業
|
|
CMS/LAMPシステムとは
<<Previous
|
Next>>
MySQLの導入と基本設定
|
| このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。また、本サイトの更新情報をメールで知らせてほしい方は ここ からご登録ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |