GUiLZ Project Personal & Experimental Blog

tips

激しく久しぶりの更新ですが、今回は手がけている XOOPS を利用したWebサイトで使ったハックを少し。

Weblinks というモジュールにはいくつかの連携機能があり、その中の一つに Webphoto モジュールを呼び出して、画像アルバムからサムネイル画像を引っ張ってきて表示できるという機能があります。

これはとても便利でいい感じなのですが、そのサムネイル画像をクリックすると Webphoto モジュール内の各画像ページに飛んでしまう仕様となっています。私の希望としては、ページ遷移なしでサムネイルをクリックすると画像が拡大するようにしたかったので、その部分を書き換えてみました。

Continue reading

At the SugarCRM event
Creative Commons License photo credit: bpedro

某社に顧客管理システムとして SugarCRM を納入した時、自動採番(オートインクリメント) 機能が欲しいと言われていたので、その追加をした時のコードと、郵便番号から住所変換した時のコードと、住所からGoogleマップを呼び出す用に改良した時のコードをまとめて。

前提環境は SugarCRM 5.5 ja-Dev 版ですが、5.2 とか他のバージョンでも使えるかもしれません。あと、以前に書いたコードを思い出しながら書いてるので、うまく動かない可能性もあります。その場合はご連絡いただけると助かります。

Continue reading

Brushed gold with white mount
Creative Commons License photo credit: Mark Faulkner Photography

  • 2014/06/26追記
    この記事の内容は、BaserCMS 1.xで検証した内容であり、現在の最新版である3.xでは使えない可能性があります。おそらく最新の環境でテストされたと思われる記事からピンバックをいただきましたので、そちらもあわせてご参照ください。
    http://blog.s-giken.net/51.html

 

あけましておめでとうございます。今年は例年以上に正月気分にならなかった正月でしたが、皆様いかがお過ごしでしょうか。

……って、今ごろ新年の挨拶かよとか思われそうですが、このネタは1月2日に投稿予定だったものの、このブログを置いてた SaaSes Industria が絶不調だったため、サーバーが復旧するまで待とうと、色々試したり問い合わせを行っていた間中寝かしていたので、こんな有様となっております。結局 Industria はまともにならず今でもクソ重いので、さくらのVPS に出戻りました。

ということで、ネタの鮮度的にはアレな感じになりましたが、新年の休みを潰して BaserCMS のテーマファイルを作成してた際に作成・利用した Tips 的な内容を、備忘録として新年一発目のネタとさせていただきます。

Continue reading

the Mac Pro setup
Creative Commons License photo credit: blakespot

いままでも スタードメイン でドメインを取得すると、10GBの無料サーバー機能が付いてきましたが、それがさらにパワーアップした「スターサーバープラス」が今日から始まりました。

正直、普通の個人ユーザーや中小企業のWebサイトを作るなら、ドメインさえ スタードメイン で契約すれば、毎月のサーバー代が要らなくなるかも、というほどのインパクトです。

Continue reading

たまたまネットを検索していたら、DNS設定をチェックして、採点してくれるサイトがあったのでご紹介。

DNSValidation.com
http://www.dnsvalidation.com/

操作は簡単で、ドメイン名を入れて Run Report! ボタンをクリックするだけ。しばらく待つと、DNSの採点をしてくれます。

参考までに、このブログの情報は以下の通り。

減点されているのは、

  • Nameservers on Separate Networks
  • SOA Number Format
  • Check MX Records for Duplicates
  • Check SMTP Greeting

で、上から

  • ネームサーバーはネットワーク上で離れたIPアドレスを使った方がいい
  • シリアルのフォーマットが望ましくない形になっている
  • MXレコードのサーバーIPアドレスに同じものがある
  • SMTPのグリーティングメッセージが各サーバーで同じになっている

って感じのエラー内容が書かれてました。

私の場合、DNSサーバーはドメインレジストラのものを利用して、自分では滅多に立てないので、こういうエラーが出ていても直しようがなかったりしますが、自分でネームサーバーを立てたりする方は設定の確認や参考になるかもしれませんね。(guilz.orgは、スタードメイン のDNSサーバーを利用しています)

ちなみに上記エラーですが、Nameservers on Separate Networks は、3つあるネームサーバーのうち、2つが同じアドレス帯にあるだけですので、実際は問題じゃなかったりします。SOA Number Format も書き方の作法的な部分なので、ちゃんとカウントアップされれば問題ない、重箱の隅的なエラーです。

あと2つはGoogle Appsの問題なので、Googleさんの対応に期待ですね。基本最近のDNSサーバーだと、どこもA+くらいのスコアにはなるんじゃないでしょうか。

余談ですが、RedHatはさすがの満点でしたw マイクロソフトも見習いましょうww

WordPress 3.1.3 日本語版が出たので自動アップデートを試みたものの、Apache環境のWordPressは問題ないのだが、nginxで動かしているこのサイトだけ何故か失敗。

ログを見てみると、

upstream timed out (110: Connection timed out)

ということだったので、本家のwikiを調べたところ、fastcgi_read_timeout が関係しているらしいと判明。デフォルトは60秒だから、それを180秒にしてやったところ、無事に自動アップデートが完了した。

あわせて、関係ないとは思うけど send_timeout の値もデフォルトが60秒なので、180秒にした。

書き方はこんな感じ。

server {
	fastcgi_read_timeout 180;
	…
	…
}

fastcgi_read_timeout はHttpCoreモジュールの設定ではないので、server 以下に書いた。この辺りよく分かっていないので http 以下でもいいのかもしれないけど、wikiでの書き方もそうなってたので、まあそのままで。

send_timeout は http 以下に書いた。

http {
	send_timeout 180;
	…
	…
}

もし同じ症状の方がいたら、参考までに。

順番が逆になったけど、SaaSes Industria Smallの初期状態とかいろいろ。

申し込んでから利用できるまでには、10分程度の時間しかかからなかった。さくらのVPS よりも早かったかな。急いでいる時にはありがたいかも。

デフォルトでは必要最低限のサービスしか立ち上がっていないため、特に各種設定ファイルを編集しなくても問題なさげ。初期ブート時で400MB程度メモリの空きがある。

初期状態では22番ポートしか開いていないので、セキュリティ面でもまだ安全なほうか。現時点ではCentOS x64のみ選択できる。yum check-update したところ、全てのパッケージが最新で、更新が必要な物はなかった。これには好感。

あとは さくらのVPS でもやったように、sshdのポート番号を変えたり、iptablesの設定を変えたりといった感じ。

あとは今回、nginx を利用したWebサーバーにする予定なので、その辺りの設定などをまた別記事にでもまとめます。

個人向けの提供を待ちきれず、知人がやっている会社でIndustriaを申し込んでもらい、試してみた。

早速使用してみたところ、もともとのXenを動かしているサーバーの時計が狂っているのか、18時間ぐらい前の時刻になっている。

Xenはホストとの間で自動時刻調整されるため、普通に時刻合わせをしてもダメなので、以下のようにした。

/etc/sysctl.conf に以下の行を追加して再起動する。

xen.independent_wallclock = 1

その場で変更したい場合は、rootになって以下のコマンドを打ってやる。

echo 1 > /proc/sys/xen/independent_wallclock

そのあとで

/usr/sbin/ntpdate ntp1.jst.mfeed.ad.jp

とすれば、正しい時刻が反映された。

ただ、再起動するとホストOS側の時刻に再設定されてしまうので、/etc/rc.d/rc.local あたりに、

/usr/sbin/ntpdate ntp1.jst.mfeed.ad.jp

と追加で書いた。これで再起動しても、常に時刻は正しく設定されるようになった。

 
余談だが、Industriaのデフォルトではntpが入っていないので、

yum install ntp

として、事前にインストールする必要がある。XenのホストOSと時刻が同期するから不要という事かもしれないが(さくらのVPS にはデフォルトで入っている)、ホストOSの時計が狂っていたのでは意味がないので、ホストOS側の時刻は正確に保っていただければと思う。

数年前にも一度これで悩んで、最近再び同じ事で悩むハメになったので、今度こそ忘れないように記録しておく。

ぴろり様が作成された、以下のスクリプトを改造して自分のサーバーのデータ領域とMySQLの両方をバックアップさせるようにしたのだが、このスクリプトはさくらインターネット用に作成されたものであるため、FreeBSDベースのものだった。

MySQLのデータベースをダンプして圧縮して90日間分保存するスクリプト
http://www.magicvox.net/archive/2009/02172054/

そのため、私が使っているさくらのVPS(CentOS) では date -v というオプションが存在せず、バックアップは正常に取れるものの、自動削除がうまくいかない。これをLinuxで利用できるように修正したときのメモ。

date -v -"30"d

というコマンドは、30日前の日付を求めるコマンドとなるが、これはLinuxだと

date --date="30 day ago"

と置き換えられる。

上記スクリプトでは、

RMFILE=mysql.`date -v -"$KEEPDAY"d +'%y%m%d'`.gz

という行を、

RMFILE=mysql.`date --date="$KEEPDAY day ago" +'%y%m%d'`.gz

とすることで、エラーもなく正常動作するようになった。

ドメインキング から、XOOPS Cube Legacy で作成していたサイトを さくらのVPS に移したのだが、モジュールインストール時に以下のようなエラーが出てインストールできなくなってしまった。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=MyISAM’ at line XXX

どうやらMySQL 5.5系では ‘TYPE=MyISAM’ 指定が無効になっており、’ENGINE=MyISAM’ とSQL文を書いてやらないとダメな模様。このサーバーではremiレポジトリからPHP 5.3系・MySQL 5.5系がインストールされているため、既にインストールされていたモジュールは問題なかったものの、モジュールの新規インストールで問題が出たようだ。

その後、いくつかのモジュールのSQLを確認したが、確認した限りのモジュール全てで ‘TYPE=MyISAM’ が使われていたため、全部置換するのも面倒だなーと思っていたら、XOOPS Cubeの公式フォーラムに投稿されていた以下のハックで解決。

MySQL 5.5.4 でトラブル
http://xoopscube.jp/forum/6771

 

class/database/sqlutility.php

function splitMySqlFile(&$ret, $sql)
{

直下に、以下の行を挿入。

$sql = str_replace( 'TYPE=MyISAM', 'ENGINE=MyISAM', $sql );

これでモジュールのインストールができるようになった。

スポンサードリンク

Twitter
利用中のサービス

GUiLZ Project では、以下のサービスを利用しています。


関連サイト
巡回先サイト様
アーカイブ