Xoopsの最近のブログ記事

Xoopsの動画再生モジュール「CINEMARU」で、アップロードの際に、エラーメッセージ「アップロードに失敗しました(UPLOAD_ERR_NO_TMP_DIR) 」が出た場合の対処方法。

 

・PHPのアップロードファイルの容量制限があるので、その上限をアップする。

→php.iniもしくは、vhost.conf、もしくは、.haccessファイルに、下記を記述する。

php_value post_max_size 32M
php_value upload_max_filesize 32M

 

 参考URL→http://www.xugj.org/modules/d3forum/index.php?topic_id=624

 メモ的記録ですが、CentOS5をインストールした直後には、LDAP環境で使うために、必要なものを多少追加しなければ、なりません。その記録をしておきます。全てyumでインストールできます。

 

  mysql-server (MySQLがインストールされていないことがあるので:mysqldではなく、mysql-serverを入れましょう)

  php-mysql(MySQLとphpが連携するようにする)

 php-mbstring (phpでマルチバイトを使えるようにする)

 

 あと、xoops等をインストールする際には、httpd.confの、memory limitを上げてやる(初期値は16M)ことと、php.ini の[mbstring]ディレクティブを変更してあげると、大丈夫かと。

 前回は、リモート管理に関する機能について、iptalesを用いたファイアウォールで、IPアドレスによる発信元制限をかけることについて触れましたが、httpサーバーである、Apacheにも似たような機能があります。例えば、ログ閲覧等の管理者のみがアクセスすべきページやスクリプトなどに、制限をかけることができます。

 Apacheの設定ファイルはetc/httpd/conf/httpd.confですが、この設定ファイルに、<Directory>ディレクティブや<Files>ディレクティブで、指定のディレクトリやファイルを指定し、Deny Allowディレクティブ等で、アクセスの許可、不許可を記述します。

例)

<Directory /var/www/html/admin/>    
  Order Deny,Allow
  Deny from all
  Allow from 222.222.222.222
</Direcroty>

 

 ※adminというディレクトリについて、ホストがIPアドレス222.222.222.222の場合だけ閲覧を許可し、それ以外のホストは拒否(Forbidden)する。という例。

 サーバーホスティングの設定でよく見かける、「.htaccess」というファイルは、このhttpd.confファイルの、<Directory>ディレクティブ等の記述を、ディレクトリごとに記述できるファイルのことです。共有サーバー等、自分でhttpd.confの編集ができない場合に用いる場合が多いです。逆、httpd.confファイルを編集できる場合は、できるだけ.htaccessファイルを用いずに、httpd.confファイルで指示した方が良いそうです。

 但し、あまりにもディレクティブが増えすぎると、httpd.confも乱雑になってしまうので、いくつかのconfファイルに分けて、登録する方法もあるようです。特にヴァーチャルホストの設定をした場合、それぞれのドメインごとに設定が分かれますので、ドメインごとにconfファイルをつくるのが良いようです。Plesk等の場合は自動的にvhosts.confの様な設定ファイルを生成してくれるので、便利なんですが。

 

社内サーバーが一通りできあがったので、公開サーバーに挑戦することに。

色々事情があって、光回線を2本ほど増やしたので、それらを使って公開サーバーのテストをしています。

手順としては、以下の通り。

1 ダイナミックDNSサービスを使って、ドメインを設定

2 ルーターのアドレス変換機能を使って、httpやssh等のポートのみを開き、サーバー機に渡すようにする

3 サーバー機のファイアウォールの設定をする

4 apache php mysql 等の設定を行う

 

1 ダイナミックDNSサービスには、無料、有料のものがある。有料でいうと、DynDNS等。無料のものが、MyDNSや、ルーター会社がルーター購入者専用に用意しているもの等。

まずは、coregaのルーターで実験したので、coregaの無料ダイナミックDNSサービス「corede.net」でドメインを設定してみる。このサービスでは、corede.netのサブドメインであれば、無料、独自ドメインであれば、有料ということなので、まずはサブドメインから実験してみる。

次に、有料ダイナミックDNSも試してみる。DynDNSは、英語のみだが、設定はDotstar並なので、慣れればそれほど難しくはない。バッファローのルータが、DynDNSに対応しているので、こちらで登録。年間$27.50と、固定IPを取得することと比較すると格安。

最後に無料サービスも試してみる。MyDNSは無料で使えるサービス。但し、ルーターが自動的にIPを更新してくれる、上記のサービスとは異なり、FTP、メール、BASIC認証、手動設定等の方法でIPアドレスの通知が必要。

 

2 ドメインの設定が完了したら、ルーターの設定を変更。アドレス変換機能を使って、ルーターのWAN側のIPアドレスにあるポートに要求がきた場合にローカールアドレスに変換するように設定する。例えば、WAN側のIPが222.222.222.222として、ローカルのサーバ機のローカルIPアドレスが192.168.0.30とすると、222.222.222.222宛に22番ポート(SSH)の要求がきた際に、192.168.0.30のポート22番にわたすように設定する(バッファローのルーターの設定例)ルーターのアドレス変換は、最低限必要なポートだけ開けるようにする。

 

3 サーバー機の側でもポートの設定は必要。特に、SSH(22番ポート)やFTP(21番ポート)については、送信元IPアドレスを設定する等して、誰でもが接続することができないようにすることが肝要。遠隔操作を前提にしているので、webmin(10000番ポート)も設定。これで大体の設定は可能に。もちろんこのポートも発信元IPの制限をかける。

 

4 サーバーの設定。sshやftpは通常使うように設定する。apacheの設定について、今回仮想サーバーの設定を試してみる。上記2番のダイナミックDNSの設定で、複数のドメイン設定をしてみた。その上で、apacheの仮想サーバーを設定。例えば、domain.comのサブドメインをtest.domain.comとして、上記ダイナミックDNSにて両方のドメインを登録したとする。

バーチャルドメインの設定は以下のような感じ。

<VirtualHost 192.168.0.30>
DocumentRoot /var/www/vhosts/domain.com/html
ServerName www.domain.com
<Directory /var/www/vhosts/domain.com/html>
allow from all
Options +Indexes
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.30>
DocumentRoot /var/www/vhosts/domain/subdomains/test/html
ServerName test.domain.com
<Directory /var/www/vhosts/domain/subdomains/test/html>
allow from all
Options +Indexes
</Directory>
</VirtualHost>

これで、www.domain.com とtest.domain.comは別々の内容を表示させることができるようになります。もちろんサブドメインだけでなく、別々のドメインの表示もできます。

 

xoopsの設定もやってみたかったので、色々実験。CentOS5で、標準に用意されていないのは、php-mbstringなので、yumでインストールしておく。また、open_basedirの設定もされていないので、上記バーチャルホスト設定のディレクトリに、

    php_admin_flag safe_mode off
     php_admin_value open_basedir "/var/www/vhosts/domain.com/html:/var/www/vhosts/domain.com/xoops_trust_path"

等の記述を入れておくことを忘れずに。safe_modeもmasterではonにしておき、このディレクトリのみoffにしておくとよいのではないかと思う。

 

XOOPS Cube Legacy 2.1.3

| | トラックバック(0)

 「XOOPS Cube Legacy 2.1.3」テストインストール無事完了。Xreaで問題なく稼動することは確認できたが、やはり細かいバグが残っている感じがする。PHPデバッグをONにしておくと、時々エラーメッセージが表示される。ほとんどSmartyエラーなので、2.0の時とほぼ同じっぽいので、問題はなさげだが、PHPデバックをOFFにしても、時々トップに出てくるエラーが怖い。意味が分らないだけにまだちょっと...。
 あと、参照文献(特にWEB上)が少ないのが気になるところ。2.0JPの方は書籍でほぼ必要なものは取り揃えたので、やはり旧版でも、安定版を使用した方が良い気がしてきた。
 また、Cube Legacyのメニューや管理画面に慣れないという点もある。

 ただ、プロフィールの編集の仕方やパイプの使い方等がかなり便利になっていいる点があるので、ちょっと残念な気もするが...。

 というわけで、しばらくは、2.0JPの方を使ってサイト構築していくことにする。XOOPS Cube Legacyの方は、テストサイトでしばらく環境に慣れていこうと思う。

 前にも触れた、XOOPSには、XOOPSとXOOPS Cube というのがあるらしい。
 X-serverに自動インストール機能がついているのは、「XOOPS 2.0.16a JP」という安定版のシステム。実はこれ、日本人だけでつくったバージョンらしい。これとは別に、本家XOOPSというのがあって、またこれは、これで別らしい。日本には日本のXOOPS Cube日本公式サイトがあって、そこで作られたのが、「XOOPS 2.0.16a JP」。ただし、本家の筋を継いだもの。で、日本独自で開発されたシステムがXOOPS Cube。それを具体化したのが、「XOOPS Cube Legacy 2.1.3」(現在の最新安定バージョン)ということらしい。

 Wikipedia--XOOPS
 Xoops Users Group Japan - 最新のXOOPSを入手する
 Xoops Users Group Japan - XOOPSについて
 あたりに経緯が説明されているので、参照してみては。

 色々実験してみようと、「XOOPS Cube Legacy 2.1.3」の方をインストールしてみようと、試みた。実際には、「ホダ塾ディストリビューション」という、モジュールもパッケージ化されたものをインストールしてみた...が、なかなかうまくいかない。

 最初は、X-serverにインストールしてみたのだが、管理画面が出てこなかったり、モジュールがインストールできなかったりで、断念。
 次に、Xreaにインストール。これも、何度かトライした結果、なんとかインストール完了。色々調べた結果、一つの原因は、どうも、メモリ不足だったらしい。X-serverのデフォルトメモリは15M(?)。「XOOPS Cube Legacy 2.1.3」では、最低16Mは必要とのこと。インストールの際に警告が出る。X-serverのヘルプ通りに、php.iniを最上ディレクトリに新規作成して、16Mの設定をしてみたが、それもうまくいかず。Xoops Users Group Japanあたりをみても、32M程度のメモリ割り当てがないと、モジュールをばんばん動かして、という訳にはいかないらしい。
 ちなみに、Xreaの方では、インストールの際の表示を見ると、割り当て、メモリが90Mになっていたが...本当か...?

 まあ、なんにしろ、Xreaでは、「XOOPS Cube Legacy 2.1.3」も動くらしい。とりあえず、動いてはいる。

 「XOOPS Cube Legacy 2.1.3」だが、なかなか機能的にはすばらしい出来だと思う。まだそれほどは使っていないのだが、軽く触った感じだと、色々な点で関心した。ただ、まだ新しいので、エラー箇所やバグも多そうだ。それが少々心配ではあるが。

 さて、これから、XOOPSを使ったサイトを作るのだが、どちらのバージョンで作るべきかが、ちょっと迷うところである。

 そうそう、それと、一つ触れるのを忘れていたが、「XOOPS Cube Legacy」から、使用文字コードが、EUCから、ユニコードに変更になっている。ユニコード(utf-8)が利用できるようになっている。なので、データベース作成の際には、EUCではなく、utf-8で設定することを忘れないように。