2009/08/09
2009/07/08
MercurialをCoreserverで稼働させる
人やwebに教えてもらいながら実施。
事前の確認
===========
手元のクライアントに Mercurial がインストールされていること
サーバで CGI が動くこと(サーバ仕様を確認する)
サーバでシェルが使える(ssh でログインできる)こと
サーバで Python 2.3 以降が使えること (python -V で確認) <<Vは大文字で
サーバで C コンパイラが使えること (which gcc で確認) << ほんとに必要かな?
Coreserverでは、CGIも使えるし、ssh,PythonもOK、gccもOK
まずインストール
==============
http://mercurial.selenic.com/release/
からダウンロード
サーバ側で
$mkdir tools
$cd tools
ここで最新バージョンをhttp://mercurial.selenic.com/release/ で確認後
ftpでクライアント経由でコピーした (^_^;)
$tar -xvzf mercurial-1.3.tar.gz
$cd mercurial-1.3
$python setup.py install --home=$HOME/local --force
これでインストール完了。簡単です。butここからが結構手間です。
ちょっと確認してみましょう。
------
$ export PYTHONPATH=$HOME/local/lib/python
$ export PATH=$PATH:$HOME/local/bin
$ hg debuginstall
Checking encoding (UTF-8)...
Checking extensions...
Checking templates...
Checking patch...
Checking commit editor...
Checking username...
No username found, using 'me@sxyz.coreserver.jp' instead
(specify a username in your .hgrc file)
No problems detected
$
------
なんかできているようです。
確認のためのデモジトリ作成
====================
クライアント側で、デモレポジトリを作成しておく方法がwebには出ていたけど
サーバ側で作成するので簡単にできるみたい。
サーバ側:
$cd ~/hg/repos
(デポジトリ置き場のディレクトリを作成し、そこに移動する)
$mkdir test
$cd test
$hg init
$vi ./.hg/hgrc でhgrcに以下の内容を記載:
################
[web]
push_ssl = false
allow_push = *
################
※ これを忘れるとwindowsからpushするときにエラーになってしまいます。
Mervurialは基本的に sslを使うことになっている模様。
参考(http://d.hatena.ne.jp/torutk/20070914/p1)
サーバ側(クライアントから実行の場合は実行ユーザ注意)でcloneを実行してみる
$ hg -v clone ssh://scm.xyz.com//virtual/xxx/hg/repos/test
running ssh scm.xyz.com "hg -R /virtual/xxx/hg/repos/test serve --stdio"
The authenticity of host 'scm.xyz.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is ・・・・・・
Are you sure you want to continue connecting (yes/no)? yes
me@scm.xyz.com's password:
destination directory: test
no changes found
updating working directory
resolving manifests
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
remote: Warning: Permanently added 'scm.xyz.com,xx.xx.xx.xx' (RSA) to
the list of known hosts.
$
よろしいらしい
web経由のアクセス設定
==================
インストールのときにmercurialのインストールモジュールを解凍したところにある
hgweb.cgi とhgwebdir.cgi というファイルが、webアクセスのときに使うcgiファイルらしい。
hgweb.cgiはひとつのレポジトリにアクセスするためのcgi
hgwebdir.cgiは、設定ファイルに記述されたグループをアクセスできるようにするcgi
今回は、複数のレポジトリ管理を考えてhgwebdir.cgi にて設定
hgwebdir.cgiをアクセスルートにコピーする
$cp ./hgwebdir.cgi ~/publuc_html/scm.xyz.com
hgwebdir.cgiの以下を変更
★以下のパスを変更してコメントアウト
(インストールするとローカルディレクトリ配下のlocal/lib/python にライブラリが入る)
################
#import sys
#sys.path.insert(0, "/path/to/python/lib")
↓
import sys
sys.path.insert(0, "/virtual/xxx/local/lib/python")
################
★こちらはコメントアウト
(あとでやろうと思って忘れて失敗。日本語を使いたいときには
ここで忘れずにやりましょう)
################
#import os
#os.environ["HGENCODING"] = "UTF-8"
↓
import os
os.environ["HGENCODING"] = "UTF-8"
################
次にhgweb.config と言うファイルを作成
$vi gweb.config
で以下を記載
################
[collections]
/virtual/xxx/hg/repos/ = /virtual/xxx/hg/repos/
################
ここでwebアクセスのテストであくせすしてみる
こんな感じ http://scm.xyz.com/hgwebdir.cgi/test
おおっ!読めました。
ちなみに、レポジトリを多数作らない場合は
hgweb.cgiを以下の変更でOK
まず日本語を使えるようにして
################
#import os
#os.environ["HGENCODING"] = "UTF-8"
↓
import os
os.environ["HGENCODING"] = "UTF-8"
################
あとはレポジトリの場所の指定を書き換えてやる
################
application = hgweb("/path/to/repo", "repository name")
↓
application = hgweb("/virtual/xxx/hg/repos/test", "test")
################
これで、hgwebdir.cgiをindex.cgiに変更しておくとアクセスしやすい
次はセキュリティ設定
ベーシック認証を設定
==================
まず、セキュリティアップのためのベーシック認証を .htaccess に設定
################
AuthUserFile /virtual/xxx/.htpasswd
AuthGroupFile /dev/null
AuthName MembersOnly
AuthType Basic
<Limit GET POST PUT>
require valid-user
</Limit>
################
.htpasswd というパスワードファイルを作って/virtual/xxx/に入れておく
(細かいことは省略、ベーシック認証の設定をご参考に)
ということで、ここからは使い勝手向上のためにURLをきれいに
(もちろんこれは、hgwebdir.cgiを使う場合の設定)
URLアクセス調整
===============
アクセスするURLを http://scm.xyz.com/test という形式にしたいので
.htaccessに以下を設定
################
RewriteEngine On
RewriteRule ^$ hgwebdir.cgi [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) hgwebdir.cgi/$1 [QSA,L]
################
hgwebdir.cgi に以下を設定(なるべく初めの方に記載するのが良いらしい)
################
import os
os.environ['SCRIPT_NAME'] = ''
################
※ import os は一回やれば良いと思うので、文字コードの設定と並べて
初めの方に持ってくればきれいかも。
参考(http://8-p.info/mercurial-dreamhost.html
http://www.selenic.com/pipermail/mercurial/2008-March/017455.html
http://d.hatena.ne.jp/a666666/20080812 )
さてさて、これでアクセスもしやすくなりました。
これでクライアントからの、hgコマンドやTortoiseHgから利用可能。
あとは、レポジトリ毎のユーザ管理とかバックアップの設定でしょうか。
以下のサイト、参考にさせていただきました。 (ありがとうございました)
http://www.dodgson.org/omo/t/?date=20070519
http://8-p.info/mercurial-dreamhost.html
http://www.horaguchi.net/search.php?q=mercurial
http://w.nikori.tk/index.php?xrea/mercurial
http://mercurial.selenic.com/wiki/HgWebDirStepByStep
http://d.hatena.ne.jp/torutk/20070914/p1
http://www.selenic.com/pipermail/mercurial/2008-March/017455.html
http://d.hatena.ne.jp/a666666/20080812
2009/07/01
Coreserverのシェル変更
早速テストサイト用にモジュールをコピー、DBをコピー準備し、ftpで送り込む
sshを使うべく、サイトのメニューでホストを登録してログイン
ログインまではうまくいったものの
ls といったいつものコマンドでエラー発生。どうやらrbashに設定されている模様。
-rbash: /bin/ls: restricted: cannot specify `/' in command names
というエラーが出るので、bashに変更
.bashrc というファイルを作って
-----------------
if test $BASH == "/bin/rbash"
then
/bin/bash
fi
---------------
いつもこんなことしたっけな?
301リダイレクトの設定
現サイトの検索結果より古サイトの検索結果が出てしまうような状態。現サイト、立ち上げた人っていかがなもんでしょうか。
ホームページはサーバも別に作る直すこととして、ドメインは現サイトのものを使うように手続きをとりつつ、取り急ぎ古くてもう何とかしたいサイトは、少しばかり引っ越しのお知らせを表示した後、301リダイレクトで、現サイトのドメインに向けるよう設定。
301リダイレクトは .htaccess変更すればいいや、と
Optionsが使えないサーバもあったので、以下の2種類を準備。
.htaccess その1
Redirect 301 / http://www.domain-now.com/
.htaccess その2
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain-now.com/$1 [R=301,L]
と、ところが、Niftyのサーバーは、.htaccessを許してくれなかった・・・
そこで、急遽html の metaタグで対応。
<meta http-equiv="Refresh" content="0;URL=新URL ">
0秒でリダイレクト。これは301リダイレクトと検索エンジンが認識を
してくれるようです。
この数字が0でないとYahooでは302リダイレクトと認識してくれるみたいです。
Yahooの説明
http://info.search.yahoo.co.jp/archives/002842.php
Googleでもそうなのか?とりあえず、0でのリダイレクトは301と
認識してくれるのは確かみたいですが、302はどうかなあ?
http://sebastians-pamphlets.com/google-and-yahoo-treat-undelayed-meta-refresh-as-301-redirect/
SEO対策のためにと、301リダイレクトを考えていたので、とりあえず目的は達成。
Googleデモサイト移行の場合は301リダイレクトを推奨
http://www.google.co.jp/support/webmasters/bin/answer.py?hl=jp&answer=83105
2009/06/24
Joomlaのお引っ越し coreserver から さくら へ
Coreserverからディレクトリはtarで移動、DBは、coreserverの保存を
使ってファイルに保存、さくらサーバ側でmysqlコマンドでデータを流す。
(詳細は下に)
いきなり Internal Serverエラーが出現。
理由がわからないので、いろいろと試行錯誤したところ、結局さくらの
レンタルサーバ側では、.htaccessで使えないものが多く変更が必要。
1) php_value 等が使えないので、PHPに関する設定はphp.iniにて設定
→ 結局、さくらサーバのコントロールパネルの「PHP設定の編集」から
以下を設定。
(参考サイトには2種類表記してくれてあるが私のサーバは以下の設定でないと使えない)
+++++++++++++++++++++
default_charset UTF-8
mbstring.language Japanese
mbstring.internal_encoding UTF-8
mbstring.encoding_translation OFF
mbstring.http_input auto
mbstring.http_output pass
++++++++++++++++++++++++
2) Optionsも使えないので、Joomlaの設定でもコメントしても問題ないらしい
以下をコメントアウト
→ Options +FollowSymLinks
こんな感じで新しいサイトにお引っ越し完了。
さくらの .htaccessに関してはこちらに情報あり
http://faq.sakuratan.com/wiki/wiki.cgi?.htaccess
参考にしたJoomla On さくらサーバの情報はこちら
http://old.forum.joomla.jp/component/option,com_smf/Itemid,0/topic,87.0/
メモまでにDBは
1) 接続して
mysql -u USERNAME -h mysqlxxx.db.sakura.ne.jp -p
ぱすわーどいれる
mysql> connect DBNAME
2) データ設定して、、終わり
mysql> SET FOREIGN_KEY_CHECKS = 0;
mysql> \. mysql_db.dump
mysql> SET FOREIGN_KEY_CHECKS = 1;
mysql> quit
coreserverとさくらはsshが使えるので楽です。
phpMyAdminがだいた使えるので、同様の処理は可能のはずですが。
(手順は・・・覚えてないです。ごめんなさい・・・)
2009/06/04
サイト登録 これだけやれば十分かなあ? URLをメモ
-----robot search -----
yahoo
<https://siteexplorer.search.yahoo.co.jp/>https://siteexplorer.search.yahoo.co.jp/
Google
<https://www.google.com/webmasters/tools/dashboard?pli=1>https://www.google.com/webmasters/tools/dashboard?pli=1
MSN
<http://webmaster.live.com/>http://webmaster.live.com/
サイトマップ
<http://www.xml-sitemaps.com/>http://www.xml-sitemaps.com/
URLを入れて、サイトマップをつくる
できたファイルのうち、sitemap.xml というファイルを
サイトのトップページと同じフォルダに入れる。
Googleで登録する。
----- 簡単登録サイト----
以下、参考までに効果のほどは不明
(たぶん上だけで充分みたいだが)
yahooの簡単登録
<http://submit.search.yahoo.co.jp/add/request>http://submit.search.yahoo.co.jp/add/request
Googleの簡単登録
<http://www.google.co.jp/addurl/?hl=ja&continue=/addurl>http://www.google.co.jp/addurl/?hl=ja&continue=/addurl
MNS
<http://beta.search.msn.co.jp/docs/submit.aspx?FORM=WSDD2>http://beta.search.msn.co.jp/docs/submit.aspx?FORM=WSDD2
その他も登録サイト
<http://ask.jp>ask.jp 検索
<http://ask.jp>ask.jpは登録不要(自動)
<http://static.ask.jp/docs/help/help_siteregistered.html>http://static.ask.jp/docs/help/help_siteregistered.html
Baidu 百度登録
<http://www.baidu.jp/search/url_submit.html>http://www.baidu.jp/search/url_submit.html
OpenDirectory
<http://www.dmoz.org/World/Japanese/add.html>http://www.dmoz.org/World/Japanese/add.html
--- 無料で登録できるサイト ----
yahooカテゴリ登録 (無料)
カテゴリから「登録・変更・削除」を指定
以下に登録方法が記載されている。
http://dir.yahoo.co.jp/pg/submit/guide/index.html
たとえば、
http://dir.yahoo.co.jp/Business_and_Economy/
ネットアイランド
http://www.netisland.jp/
申し込みはここ
http://www.netisland.jp/addurl.htm
百度(Baidu)
http://www.baidu.jp/search/url_submit.html
---その他の無料で登録できるもの
「ブログ検索」
<http://ask.jp>ask.jp を利用 ping送信設定をしておくとよい
PING送信先:<http://ping.ask.jp/xmlrpc.m>http://ping.ask.jp/xmlrpc.m
blogについては
PINGサービス(http://pingoo.jp/)などを利用
「口コミ検索」(ブログ登録)
<http://shooti.jp/>http://shooti.jp/
「みんなのお気に入りに登録」
<http://directory.infoseek.rakuten.co.jp/>http://directory.infoseek.rakuten.co.jp/
※ ターゲットとなるユーザが使いそうであれば利用
----
その他の検索サイトの情報
infosheekは、楽天傘下になり楽天のIDが使える。
Infosheekは現在、旧オーバチュア(まあ、今はyahooってことか)
提供のロボット型検索エンジンを使っているのでyahooに登録
しておけばいいということ。
aol
Googleのロボット検索、登録不要
http://search.jp.aol.com/aol/about#wr
excite
オーバーチュアのロボット検索、登録不要
http://www.excite.co.jp/search_help/web_registration/
---ディレクトリ検索への有料登録---
yahoo ビジネスエクスプレス (\52,500〜)
http://business.yahoo.co.jp/bizx/index.html
exite
X-listingのX-reccomend (クロスリコメンド)による登録
<http://www.xlisting.co.jp/Service/Xrecommend/index.html>http://www.xlisting.co.jp/Service/Xrecommend/index.html
goo
X-reccomend (クロスリコメンド)による登録 有料(\42,000〜)
<http://dir.goo.ne.jp/dir_registration.html>http://dir.goo.ne.jp/dir_registration.html
他 x-reccomend によるディレクトリ登録
biglobe
nifty
ocn
ODN
livedoor (\36,750〜)
<http://dir.livedoor.com/jentry/>http://dir.livedoor.com/jentry/
----- その他サイトの告知 ----
yahoo ジオシティーズ ホームページ告知
http://messages.yahoo.co.jp/bbs?action=t&board=1834611&sid=1834611&type=r&first=1
----サイト分析ツール ------
<http://www.google.com/analytics>http://www.google.com/analytics
画像ファイルを共有するサービス 単なる一覧メモ
と聞かれたので、ちょっと調べていたことをまとめた。
GUIの好き嫌いや、連動したいblogサイトのことや、画像を送る
相手のコトを考えて選ぶことになるので、ひとそれぞれ
選択条件が違い、どれが一概に良いとは言えません。
ということで、私は目的や相手によっていくつかを使い分けているところです。
以下、簡単なメモ
------------------------
http://jp.zooomr.com/
簡単な日本語有り
容量無制限
日本語が使えるし、ファイル名がそのままタイトルになる
(flickrと同じ)
http://photobucket.com/
比較的有名なサービス、英語のみ
複数ファイル選択可能
タイトルがファイル名からとれない。
タイトルには日本語利用可能
共有するには比較的使いやすいと思う
MySpace/FaceBook/Blogger に利用可能
時間によってサイトが遅いことがあり
http://www.bubbleshare.com/
英語のみ
MacのiPhotoのアップローダ有り
アップローダなしでも複数選択でアップロード可能
http://www.zorg.com/
日本のサイト
SNS形式の共有サービス
アップロードは一枚ずつ、月刊100枚まで。
10GBまで無料
携帯からのアップもできる。
http://www.buzznet.com/
口コミサイト
http://www.zoto.com/
無制限、英語のみ
年間$19.95 60日間おためしで無料利用可能
http://www.23hq.com/
最初の2週間は、300ファイルまでアップロード可能
その後は月30枚までアップロードが無料
2682円/年 でリミットが無くなる
Flickr 使い方はこのブログの情報が便利
http://blogging.from.tv/archives/000068.html
http://www.mypicturetown.com/pictureBank/Top_ja.do
ニコンのピクチャータウン
日本のサイトなので日本語で使うには使いやすい。
Windows/Macとも対応しており、アップローダがある。
ニコンのコンパクトデジカメ、CoolPixをもっていると
もっとつかいやすいかも。
フォト蔵にも公開可能
http://photozou.jp/
日本の画像共有サイト
月2GBまでアップロード可能
https://www.photoshop.com/express/index.html
adobe photoshopのオンライン版
簡単な画像処理ができる
=========クライアントアプリとの連携 ======
クライアントソフトとの使いやすさでは、Googleの
picasa3を使って、picasa サービスと同期するのは簡単
http://picasa.google.co.jp/
MacのiPhotoからは、Flickr、Facebook macのmobile.me
に簡単に送ることができる。
今のところ、MacとWin環境共通にできず、でもまあ
どちらも目的が違うのであんまり気にならないでいるところ。