Railsインスコまとめ(Ubuntu12.04で)と、気になっている事。 [Linux]
前回にやったことをまとめておく。
まとめるとか言ってる割には、APTで入れる物をいちいち分けてるねぇ。installしてる所は、パッケージ名を続けていっぺんに入れても大丈夫なはず。また、実証するのは面倒なので、とりあえずこれでRailsができるってところまでは、ある程度いけていると思う。
細かいグダグダでダメな経緯はこっち。
http://miff.blog.so-net.ne.jp/2013-02-17-1
あ、PostgreSQLの設定ファイルの変更も忘れずに。その後の、デーモンのrestartも忘れずに。
ハマった所で気になったコト。
postgresというユーザーにpasswdでパスワードを付けた。
その時はまだダメだった。
結局、config/database.yml の問題(host: localhost が要らない)と分かったわけだが、そこで腑に落ちない状況が見られた。別にRails使っている分には問題ないのかもしれないけど、以前に以下のようなコードでエラーを確認して接続の状態を見ていた。
というソースでは、前までいけてたんだけど、localhostという文字列は受け入れられなくなっていた。その前に最後の引数の、空白がダメになっていた。なので、
pg = PGconn.connect("", 5432,"","","","postgres","password")
と、つなぎ先を入れないでみるとエラーが出なくなる。その上、同様にしてパスワードが空白でも通るようになる。パスワードを設定したにもかかわらずである。要するに以下の様な
pg = PGconn.connect("", 5432,"","","","postgres","")
パスワード空白じゃダメだって、localhostの時にエラーで言ってたじゃんよぉ。
でも、地元で使う分には、特にパスワードなしでもエラーが出なくなる。多分、他のホストから要求された場合は、パスワード無しにはいる設定にできないってことなのかな(とちょっとポジティブに捉えてみる)。
いや、パスワード付けたから、パスワード無しがエラー無しで通っちゃうのマズいと思うんですけど…。もしかすると、DBにつながってないけど、エラーで処理せずにオブジェクトをnilで返しているとか、そういうのか? 今後の勉強のために調べておいた方がいいかな。返ってくるpgの中身見るとか、その後にSQL発動してみるとか、そこまでやらんでもActive Recordでいじってみるとか。
それと腑に落ちない点ふたつめ。
WindowsとMacでpgAdmin(http://www.pgadmin.org/)を入れたのだが、Macでは見れているのに、Windowsではつなげない。ファイアウォールの設定かなぁと思って、
C:\Program Files (x86)\pgAdmin III\1.16\pgadmin3.exe
に権限を与えてみたり、Windows側のポート5432を開けてみたりしたんだけど、一向に繋がる気配がない。何が問題ないんだろうか。これもWindowsから、LinuxにSSHで開発している時に少し面倒になりそう。
それと今の所、どこに使っているテーブルがあるのかが見当たらない。そもそも、テーブルの中身をいじるんじゃなくて、外側のデータベースの固まりしか見れないのかもしれない。でも、MySQLの時はテーブルの中身を見れていたし、psqlのメニューもあるので使えないはずはないと思ってはいるのだが…。
Macで見れていたと思っていたら、自分の中のPostgreSQLのデーモンとつなげていたという悲しいお知らせ。結局Ubuntuのサーバの方につなげてみたら、Windowsと同様に「Server doesn't listen」状態に。これは恐らくサーバ側に何かしないとつなげませんな。nmapでUubntuサーバをポートスキャンしてみたら、きちんとportが開いてるみたいだから、それは大丈夫なんだが、まだファイアーウォールとかがあるのかな。SSHとか普通に使えるのにねぇ。ん〜、sudo ufw status でも動いてないって言うしな。
うん、ガッツリport開いてるよね。何が悪いんだか全然分からん。サーバ側の設定ファイルもかなりいじったんだけどな。今のところ、同じサーバで動くRailsではデータをストアできているので、サーバ側の設定をしてないとしか思えないんだけど、今までいじった程度ではダメなんだろう。サーバはWindowサービスを入れてないので、地元でGUIのツールをいじる事が出来ないんだよね。
GUIでどうしても見ておきたい。なんか負けた気がするし、楽にできた方がいい場合だって多い。SSHでpsql使えばいいんじゃねぇと言われれば、その通りなのかもしれないけど。
$ sudo aptitude update $ sudo aptitude upgrade $ sudo aptitude install ruby1.9.1 $ sudo aptitude install ruby1.9.1-dev $ sudo aptitude install rubygems $ sudo gem1.9.1 install rails $ sudo aptitude install sqlite3 $ sudo aptitude install libsqlite3-dev $ sudo aptitude install postgresql $ sudo aptitude install postgresql-server-dev-9.1 $ sudo aptitude install nodejs
まとめるとか言ってる割には、APTで入れる物をいちいち分けてるねぇ。installしてる所は、パッケージ名を続けていっぺんに入れても大丈夫なはず。また、実証するのは面倒なので、とりあえずこれでRailsができるってところまでは、ある程度いけていると思う。
細かいグダグダでダメな経緯はこっち。
http://miff.blog.so-net.ne.jp/2013-02-17-1
あ、PostgreSQLの設定ファイルの変更も忘れずに。その後の、デーモンのrestartも忘れずに。
ハマった所で気になったコト。
postgresというユーザーにpasswdでパスワードを付けた。
その時はまだダメだった。
結局、config/database.yml の問題(host: localhost が要らない)と分かったわけだが、そこで腑に落ちない状況が見られた。別にRails使っている分には問題ないのかもしれないけど、以前に以下のようなコードでエラーを確認して接続の状態を見ていた。
#!/opt/local/bin/ruby1.9 require 'rubygems' require 'pg' pg = PGconn.connect("localhost", 5432,"","","","postgres","")
というソースでは、前までいけてたんだけど、localhostという文字列は受け入れられなくなっていた。その前に最後の引数の、空白がダメになっていた。なので、
pg = PGconn.connect("", 5432,"","","","postgres","password")
と、つなぎ先を入れないでみるとエラーが出なくなる。その上、同様にしてパスワードが空白でも通るようになる。パスワードを設定したにもかかわらずである。要するに以下の様な
pg = PGconn.connect("", 5432,"","","","postgres","")
パスワード空白じゃダメだって、localhostの時にエラーで言ってたじゃんよぉ。
でも、地元で使う分には、特にパスワードなしでもエラーが出なくなる。多分、他のホストから要求された場合は、パスワード無しにはいる設定にできないってことなのかな(とちょっとポジティブに捉えてみる)。
いや、パスワード付けたから、パスワード無しがエラー無しで通っちゃうのマズいと思うんですけど…。もしかすると、DBにつながってないけど、エラーで処理せずにオブジェクトをnilで返しているとか、そういうのか? 今後の勉強のために調べておいた方がいいかな。返ってくるpgの中身見るとか、その後にSQL発動してみるとか、そこまでやらんでもActive Recordでいじってみるとか。
それと腑に落ちない点ふたつめ。
WindowsとMacでpgAdmin(http://www.pgadmin.org/)を入れたのだが、Macでは見れているのに、Windowsではつなげない。ファイアウォールの設定かなぁと思って、
C:\Program Files (x86)\pgAdmin III\1.16\pgadmin3.exe
に権限を与えてみたり、Windows側のポート5432を開けてみたりしたんだけど、一向に繋がる気配がない。何が問題ないんだろうか。これもWindowsから、LinuxにSSHで開発している時に少し面倒になりそう。
それと今の所、どこに使っているテーブルがあるのかが見当たらない。そもそも、テーブルの中身をいじるんじゃなくて、外側のデータベースの固まりしか見れないのかもしれない。でも、MySQLの時はテーブルの中身を見れていたし、psqlのメニューもあるので使えないはずはないと思ってはいるのだが…。
Macで見れていたと思っていたら、自分の中のPostgreSQLのデーモンとつなげていたという悲しいお知らせ。結局Ubuntuのサーバの方につなげてみたら、Windowsと同様に「Server doesn't listen」状態に。これは恐らくサーバ側に何かしないとつなげませんな。nmapでUubntuサーバをポートスキャンしてみたら、きちんとportが開いてるみたいだから、それは大丈夫なんだが、まだファイアーウォールとかがあるのかな。SSHとか普通に使えるのにねぇ。ん〜、sudo ufw status でも動いてないって言うしな。
$ nmap localhost Starting Nmap 5.21 ( http://nmap.org ) at 2013-02-17 22:50 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.00047s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 5432/tcp open postgresql Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
うん、ガッツリport開いてるよね。何が悪いんだか全然分からん。サーバ側の設定ファイルもかなりいじったんだけどな。今のところ、同じサーバで動くRailsではデータをストアできているので、サーバ側の設定をしてないとしか思えないんだけど、今までいじった程度ではダメなんだろう。サーバはWindowサービスを入れてないので、地元でGUIのツールをいじる事が出来ないんだよね。
GUIでどうしても見ておきたい。なんか負けた気がするし、楽にできた方がいい場合だって多い。SSHでpsql使えばいいんじゃねぇと言われれば、その通りなのかもしれないけど。
タグ:Rails3
コメント 0