Born Neet
Win上のCentOSにApache/PHP/MySQLを入れてCakePHPを動かすところまで
- 2009-05-06 (Wed)
- OpenID
やった。
WEB+DB PRESS Vol.50にCakePHP+OpenIDのサンプルが載ってて、動かしてみたくなったので。
フレームワークはあんま得意じゃないことだし、リハビリがてらお勉強。
以下手順。
久々なので文章がおかしいのはご勘弁。
(あとなんか情報抜けてるかもなのでお気軽に突っ込んで下さい)
CentOS導入
VMWare Playerはインストール済みなので割愛。
CentOS 5.3仮想マシンをダウンロード&解凍。
VMWare Playerからこのファイルを開けば起動できちゃう。
(ログインはroot/bagsideで)
なんとお手軽な!
ちなみに上記のサイトはCentOS以外にもいろいろ仮想マシンが置いてあって超便利です。
お次はApache/PHP/MySQL
インストール
yum -y install httpd php php-mysql mysql-server
Apache設定
vi /etc/httpd/conf/httpd.conf
修正
ServerName localhost:80
AllowOverride All(<Directory "/var/www/html">内)
追記
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
MySQL設定
パスワードはサボって空白のまま。なので設定なし。
mysql -u root
からSQLを叩いてデータベース・テーブルを作成。
作成後は、
use DB名;
desc テーブル名;
で確認できる。
起動
/etc/init.d/httpd start
/etc/init.d/mysqld start
CakePHP導入
ダウンロード・展開
wget http://cakeforge.org/frs/download.php/717/cake_1.2.3.8166.tar.gz/donation=complete
tar -zxvf cake_1.2.3.8166.tar.gz
リンク・権限
ln -s /root/cake_1.2.3.8166/app/webroot /var/www/html/cake
chmod 755 /root
chmod 757 /root/cake_1.2.3.8166/app/tmp
chmod 757 /root/cake_1.2.3.8166/app/tmp/cache
設定
vi /root/cake_1.2.3.8166/app/config/database.php
ID・パスワード・DB名を設定
とりあえずこれでhttp://localhost/cake/にアクセスすれば動く。
Web+DB Pressのサンプルを動かす
wget http://gihyo.jp/assets/files/magazine/wdpress/2009/50/WDB50-PHP01-openid-bbs.zip
ungip WDB50-PHP01-openid-bbs.zip
mv wd50 /var/www/html
http://localhost/wd50/openid_bbs/で動作。
めでたしめでたし。
オマケ:telnetでホストOSからアクセス
※ セキュリティ上ダメダメなので注意!
yum -y install telnet-server
vi /etc/hosts.allow
追記
in.telnetd : xxx.xxx.xxx.xxx
vi /etc/securetty
追記
pts/0
vi /etc/pam.d/remote
コメントアウト
#auth required pam_securetty.so
/etc/init.d/xinetd restart
ifconfig
このIPアドレス表示を使う
これでWindows上からTeraterm等でrootログインできます。
以上、あぁやっぱり時間空けちゃうとブログ能力落ちるなー。
Googleの検索結果に投票機能が!?
- 2009-05-05 (Tue)
- Web
ページタイトルの右に順位UP/除外のボタンが・・・!
なんて驚いてみたけど、labsの方で昔からやってたのか。
そういやこの記事を当時見た記憶があるかも。
それにしてもGoogleなんか迷走してる?
Google AppがJavaに対応したりでやっぱGoogleやるなって感じだけど、
本業の検索エンジン周りはあんまりパッとしないような…。
[追記]
SearchWikiっていうのか。
投票機能っていうか、パーソナライズな感じかな。
…どうやらだいぶ前から提供してるらしい。
全然気づかなかったなぁ、恥ずかしい限りです^^
[さらに追記]
正式公開は5月7日だったようですね。
詳しくはこちらから→ASCII.jp:新Google検索にSEO/SEM業界は大困惑?
ブログ再開
- 2009-05-05 (Tue)
- お知らせ
お久しぶりです。tnantokaです。
実に約1ヶ月半ぶりの更新となります。
ここ最近バタバタしておりまして、
とてもブログに手をつけていられる状態ではありませんでした。
その間いろいろと考えさせられることもありましたが、
とりあえず復帰することにしました。
まずはリハビリがてら旧LighediTor(名前変えるつもりです)のメンテでもやろうかなぁと思います。
あとOpenIDは仕事でも使うので引き続き。
今後徐々に更新頻度を戻していきますので、
改めてよろしくお願いしますm(_ _)m
ブログの文字色を濃くしました
- 2009-03-20 (Fri)
- お知らせ
最近目が悪くなってきたのか、自分でも見づらかったので…。
デザインをできるだけ壊さないよう、色合いはそのままで暗くした。
(16進数の各桁を2ずつ減らすという微妙な作業によって)
color: #8c8c8c; /* default */
color: #6a6a6a; /* dark */
こんな感じ。
若干ダサくなったけど、まぁしかたないでしょう。
※ テンプレート作者さん、すいません。。。
初めてのPerl:ディレクトリ内のhtmlファイルに含まれる英単語数を数える(ついでにgoogleのapiで翻訳)
- 2009-03-07 (Sat)
- Perl
(ようやく)Perl始めました。
ちょっと前から入門書とかは読んだりしてたんだけど、
発売前から楽しみにしてた、
が、あまりにもわからなくて凹んだので。
やっぱプログラミングはコーディングして覚えないとね。
ちょうど記事タイトルのようなことがやりたかったこともあり、Perlで頑張ってみました。
というわけで、以下がPerl入門~サンプルコードによるPerl入門~(便利すぎ!!)を参考に作ったソースです。
ディレクトリ内htmlの英単語をカウント
ちなみに環境は、VMWare Playerでお手軽にVista上でLinux(Ubuntu) - Born Neetで入れたUbuntu。
perlやるならやっぱUnix系かな、と。(perlもcpanも元から入ってて楽だったし)
#!/usr/bin/perl
use strict;
use warnings;
my @files = glob '*.html';
my %count;
foreach my $file ( @files ) {
open( my $fh, '<', $file ) or die "Can't open $file: $!";
my $content;
{
local $/ = undef;
$content = readline $fh;
}
$content =~ s/<head>.*<\/head>|<[^>]+?>//gs;
my @words = split( /\W+/, $content );
foreach my $word ( @words ) {
if( $word ) {
$count{ lc $word }++;
}
}
}
my @sorted = sort { $count{ $b } <=> $count { $a } } keys %count;
foreach my $key ( @sorted ) {
print $key ."\t" . $count{ $key }, "\n";
}
Google Language APIで翻訳
CPAN・モジュールのお勉強を兼ねて、Google AJAX Language APIで翻訳してみる。
参考→Google AJAX Language API で翻訳する/楽
#!/usr/bin/perl
use strict;
use warnings;
use WebService::Simple;
my $api = WebService::Simple->new(
base_url => "http://ajax.googleapis.com/ajax/services/language/translate",
response_parser => "JSON",
params => {
v => '1.0',
langpair => 'en|ja',
},
);
sub translate {
my $response = $api->get({
q => shift,
});
return $response->parse_response->{ responseData }->{ translatedText };
}
print translate('test'); # 試験
これを1つ目のコードとマージして、
foreach my $key ( @sorted ) {
print $key ."\t" . translate($key) . "\t" . $count{ $key }, "\n";
sleep 1;
}
みたいにすれば英単語を数えつつ、翻訳も出来る。
(googleに怒られないように一応1秒待つようにした)
結果と微調整
結果がこちら↓
$ head -20 analyze.txt the その 7280 quot quot 4476 a 1つの 4280 to ?へ 4120 is なる 3192 of の 3088 and および 2367 it それ 2073 that あの 1902 this この 1804 in インディアナ 1627 function 関数 1604 be 存在する 1322 can ?できる 1165 are なる 1158 for ?のために 1093 you あなた 1044 not ?でない 901 The その 897
…とここで、大文字/小文字を区別しちゃってることに気づく。
(例:theとThe)
そう何度もgoogleにリクエストを送りたくないということで、
以下のような急造スクリプトで対応。
(全部小文字にして単語数を合計)
#!/usr/bin/perl
use strict;
use warnings;
open( my $fn, '<', 'analyze.txt' ) or die '$!';
my %lower;
my %ja;
while ( my $line = readline $fn ) {
my ( $en, $ja, $c ) = split( "\t", $line );
$lower{ lc $en } += $c;
$ja{ lc $en } = $ja;
}
foreach my $word ( sort { $lower{ $b } <=> $lower{$a} } keys %lower ) {
print $word . "\t" . $ja{$word} . "\t" . $lower{$word} . "\n";
}
微調整した結果がこちら↓
ちゃんとtheとTheが合計されてる。
スクリプトには無駄が多そうだけど、初めだし、期待通り動いてるのでまぁよしとする。
$ head analyze2.txt the その 8177 a 1つの 4499 quot quot 4476 to ?へ 4240 is なる 3198 of の 3106 and および 2439 it それ 2403 this この 2249 that あの 1944
つまづいたとこ
perlcodesampleがかなり充実してたので、コーディング自体は特に困らなかった。
一番時間かかったのはCPANのモジュールを使うところ。
以下その時のメモ。
まずは、
$ cpan
で設定。
全部Enter連打で。
Enterで駄目なところは地域・国・サーバの指定ぐらいなので、そこは適当に番号で選ぶ。
設定が終わると、プロンプトが
cpan>
になるので
cpan> install WebService::Simple
等、インストールしたいモジュール名を入れる。
あとは依存してるモジュールとかも勝手に入れてくれるので、(またもや)Enter連打で答えていく。
インストールが終了したら、
cpan> q
で終了。
とここまでは特に問題はなかった。
が、モジュールを使用したファイルを実行すると、
Can't locate WebService/Simple.pm in @INC
と怒られた。
(いろいろ苦労しつつ)結局、
$ perl -I/home/ユーザ名/.cpan/build/WebService-Simple-0.15/lib ファイル名.pl
でいけたけど…
なんか面倒くさい、本当にあってるのか?
2009/03/08 15:40 追記
やっぱ間違ってました。
perlcodesampleさんからコメントもらった(ありがとうございます!)ので改めてやり直してみると、
テストで、
# Failed test 'param is uri escaped' # at t/01_escape.t line 16. # got: '?param=%E7%8C%AB' # expected: '?param=' # Looks like you failed 1 test of 2.
なんてエラーが出てた。
ダメもとで、'param is uri escaped'で検索したら、
URI::Escapeってモジュールがあったので、これだ!と思ってinstall。
sudo cpan cpan> install URI::Escape cpan> install WebService::Simple
無事、
perl ファイル名.pl
だけでいけるようになりました。
モジュール自体に必要なものは自動でインストールされるけど、
テストで使ってるやつはそうじゃないってことなのかな?
やっぱわからないことだらけだなー。
頑張ろーっと。
2009/03/08 16:00 追記2
インストールされた場所を確認しようとしたら、
perldoc -l WebService::Simple You need to install the perl-doc package to use this program.
なんてエラーが出るので、
sudo aptitude install perl-doc
とかやる必要有り。
perldoc -l WebService::Simple /usr/local/share/perl/5.8.8/WebService/Simple.pm
Ubuntu(debian)特有っぽい。よくわかんないけど。
- Search
-
Loading
- Feeds
- Links
- スポンサードリンク