Rubyから PostgreSQLを使う

 
Rubyから PostgreSQLを使おうとして、ちょっとつまづいたので、後進の人のためにメモ。
入れようとした環境はこんな感じ。

  • Ubuntu 9.04(サーバ版)
  • ruby 1.8.7
  • Rails (2.1.0) + passenger (2.0.1)
  • psql (PostgreSQL) 8.3.9

つまり、少し古い Rubyと Railsが動いていて、かつ、PostgreSQLも動いていて、いま動いているものは変えたくないということ。
 
続きを読む

HootSuite:複数アカウントの追加

 
Twitterのクライアントとして、高機能で評判の HootSuiteを入れたんですが、2つ目、3つ目のアカウントの追加の仕方に迷ったので、メモ。
手順は次の通り。

  1. 画面左上のフクロウをクリック
  2. 設定 ⇒ SNS
  3. SNSを追加
  4. Twitter プロフィールを追加

Facebookや LinkedInのアカウントの追加もこの画面でやるので、SNSと書いてあるんでしょうが、ボクにはわかりづらかったです。
設定 ⇒ アカウントのあたりでずいぶんウロウロしてしまいました。

リダイレクトまとめ

 
いつもいつもなんだっけとなって、ググることになるので、自分用のメモ。ググるんならココをググれと。

  1. <meta http-equiv="Refresh" content="0; URL=http://hoge.jp/">
    
  2. <script type="text/javascript">
      location.replace('http://hoge.jp/');
    </script>
    
  3. # e .htaccess
    Redirect permanent /index.html http://hoge.jp/index.php
    

自分としてよく使う順に。自分で全部いじれる場合は、headerに metaを入れますね。
ただ、サイト引越しで、301リダイレクトを返してやらないといけない場合は、3の .htaccessが安全確実。
カラーミーのように、headerがいじれない場合は仕方がないので、2の javascriptで。
こんな感じです。

EC-CUBE:新着情報でHTMLタグを有効化

スーパー小っちゃなTipsなので、書くかどうか迷ったのですが、7月はブログ強化月間ですので(今決めました)、この手のことを書かないで何を書くということで書いておきます。
 
EC-CUBEの新着情報に、<a href=”hogehoge.com”>お得な情報</a>みたいなリンクを書こうと思っても、<や>が <、> に変換されてしまってリンクになりません。
危ないことされたら嫌だからというのはわかりますが、コメント欄みたいに誰が書くかわからないならいざ知らず、新着情報って管理画面からしか書けないし、ESCAPEしなくていいんじゃないの?ということです。

# e data/Smarty/templates/default/bloc/news.tpl

<!--{$arrNews[data].news_comment|escape|nl2br}-->
          ↓
<!--{$arrNews[data].news_comment|nl2br}-->

Smartyの escapeをとればいいということですね。
 
ついでにコレも。Smartyで var_dumpみたいなことをやるときはコレ。

<{$array|@debug_print_var}>

カラーミーTips

 
カラーミーというより、Smartyの Tipsですが。
文字列の先頭何バイトかを判断して分岐したいケースがよくあります。substr くらいあるんじゃね?と思った貴方。甘いです、激甘です。そんなの Smartyにはないんです。
と、ここまで書いて、言い切っていいのか?と怖くなってググってみたらありました。orz

すべてのPHP関数は、暗黙的に修飾子として使用でき、修飾子は組み合わせることもできます。
{$ym|substr:0:4}

あるんです! あるんですよ、貴方。
と、ここまで書いて、ほんとか? カラーミーで使えたか? と思って試してみました。

Fatal error: Smarty error: [in file:2/product.tpl line 89]:
 [plugin] (secure mode) modifier 'substr' is not allowed (Smarty_Compiler.class.php, line 1905)
 in /home/sites/shop-pro.jp/web/app/libs/smarty/Smarty.class.php on line 1088

やっぱ、カラーミーでは使えませんでした。
ということで、本題に戻ると『文字列の先頭何バイトかを判断して分岐したいケース』をカラーミーではどう書くかです。

<{if $object|truncate:7:"" == "<object"}>
<{/if}>

こうやって書くんですねぇ。ちなみに、truncateの最後の””をつけないと、$object|truncate:7 は、”<object...”を返してくるので、このIF文は falseになります。(悩みました)

proftpdにユーザ追加

proftpd

FTPサーバとして proftpd を立てているんですけど、新しいユーザを追加するとき、いつも、どうやるんだっけ?と悩むので、自分用のメモ。
 
1.proftpdの環境

/etc/proftpd/
/etc/proftpd/proftpd.conf
/etc/proftpd/ftpd.group
/etc/proftpd/ftpd.passwd

 
2.グループの追加
  基本、1ユーザ=1グループにしているので、まずグループを追加します。
  グループIDをどこまで使ったかは、cat /etc/proftpd/ftpd.group で。

ftpasswd --group --file=/etc/proftpd/ftpd.group --name=group_name -gid=5003

 
3.ユーザの追加

ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=user_name --uid=5003
 --gid=5003 --home=/home/www/user_root --shell=/bin/bash

 
4.アクセス環境の設定

e /etc/proftpd/proftpd.conf

DefaultRoot    /home/www/user_root    user_name

<Directory /home/www/user_root/*>
  AllowOverwrite on
  Umask 000
  <Limit WRITE >
    AllowAll
  </Limit>
</Directory>

5.サービスリスタート

/etc/init.d/proftpd restart

プロバイダメールが使いたいときの続き

 
プロバイダメールが使いたいときの続きです。
docomoあてのメールを「ぷらら」に中継してもらって送ろうとしたところまでが前回でした。で、実際やってみたところ、それだけではうまくいかなかったので、やったことの記録メモです。
続きを読む

プロバイダメールが使いたいとき

 
メールアドレスがデフォルトで付いてるプロバイダを使っているのであれば、それを使えばいいと思うんですけど、Interlinkのような固定IPアドレス最安値的なプロバイダを使っていると、メールアドレスをデフォルトでくれるということはないので、プロバイダのメールアドレスが欲しいなと思ったときに困ってしまいます。
続きを読む

SEO対策:基本コース

 
弊社でお受けしているホームページ制作にもれなくついてくる SEO対策について、きちんとまとめたページを作ろう作ろうと思いつつ、日々の制作に追われていっこうにページができないので、とりあえず、こういうことをやってますよということを技術的な観点からまとめておきます。
 
続きを読む

EC-CUBEから学ぶ PostgreSQLのリモート接続

なんかの雑誌みたいな見出しですが、EC-CUBEのインストールをしようとして、PostgreSQLのリモート接続ではじかれたので、対処法をメモ。
インストールのDB設定のところでこんなエラーが出たわけです。

DB Error:
[nativecode=pg_connect() [function.pg-connect]:
Unable to connect to PostgreSQL server: could not connect to server:
Connection refused Is the server running on host "192.168.1.xxx" and accepting TCP/IP connections on port 5432?

TCP/IP接続が許可されてねーんじゃないのということです。
EC-CUBEは、ひとつ前のバージョンをインストールしてるんですけど、どーやってインストールしたんですかね?
 
ググるとここ(質問 > その他 > PostgreSQLでUNIXドメインソケット接続での使用は可能か)にそれらしいことが書いてありました。
ここでは、EC-CUBEのインストーラの方にパッチをあててますけど、今回は真っ当に PostgreSQLの方をリモート接続できるようにしてみます。
 
さらにググって、postgresql.conf と pg_hba.conf に設定を書けばいいということがわかったので、こんな風にしてみた。

# e postgresql.conf
listen_addresses = '192.168.1.3'

# e pg_hba.conf
host  all  all  192.168.1.0/24  trust

 
で、PostgreSQLをリスタートしたら、エラーで起動しないでやんの。

 * The PostgreSQL server failed to start. Please check the log output:
2010-07-03 12:39:31 JST LOG:  could not load root certificate file "root.crt": no SSL error reported
2010-07-03 12:39:31 JST DETAIL:  Will not verify client certificates.
2010-07-03 12:39:31 JST LOG:  could not bind IPv4 socket: Cannot assign requested address
2010-07-03 12:39:31 JST HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2010-07-03 12:39:31 JST WARNING:  could not create listen socket for "192.168.1.3"
2010-07-03 12:39:31 JST FATAL:  could not create any TCP/IP sockets

 
結局、listen_addresses = ‘*’ じゃないといけなかったみたい。なにが問題なんだろうか。動くようになったからいいけど。

# e postgresql.conf
listen_addresses = '*'

« Previous PageNext Page »