2011/02/15

Wordpressをcoreserverにインストールする

coreserverには、CGIインストールの機能があってWordPress ME 2.2.3のインストールがかんたんにできるのだけれど、やっぱり使うなら最新のものを使ってみたいよね、ということで始めた、Wordpressインストールと設定


・DBを作成しておく
(coreserverの場合は、「データベース」のメニューから作成。UNICODEに設定するのを忘れずに。

・Wordpressをダウンロードする。 http://ja.wordpress.org/  今回は 3.0.4 を利用

・zipまたはtar.gzのファイルを解凍して、サーバのドキュメントルートにftpする
(coreserver の場合、自分のディレクトリ/public_html/(ドメインまたはサブドメインのフォルダ)/以下

・ドメインにアクセスしてみる
※このとき index.html などは、名前を変更してアクセスされないようにしておくほうが良いかも

・wp-config.phpが無いから作成するか質問をしてくるので、作成のボタンを押してウィジェットを使って作っていく。
まずは、DBの設定を聞かれるので、入力。
次にサイトの情報を聞かれるので、入力。ここで入力したメールアドレスにパスワード情報などが送られてくるから使えるアドレスを入れる。
最新版はここでパスワードも設定できる。

インストール、とすると、アクセス権がないので、表示された内容をコピーして wp-config.phpを作るようにと言ってくる。

(アクセス権は、一時的にドキュメントルートに、747を設定すると書き込める。)

で、アクセス権を設定してやり直すか、手動でwp-config.phpを作って、ドキュメントルートに置くとインストールは簡単に終了。

※ちなみに、wp-config.php は、ウィザードを使わずにwp-config-sample.php のDBの部分を書き換えて作成しても良い。

以上で、インストールは完了。


次に、coreserver上ではphpがセーフモードで動いているので、特定のテーマなどのアップロードのファイルをcgiモードで動かすために
wp-admin/ フォルダに以下の内容の.htaccessファイルを作っておく。

===================
#set CGI-mode for some php files
<Files ~ "^(async-upload|media-upload|update-core|update|plugins|plugin-install|plugin-editor|theme-editor|plugins|theme-install|themes)\.php$">
AddHandler application/x-httpd-phpcgi .php
</Files>
===================

動かす必要があると思われるphpファイルは以下
(上記.htaccessないで設定しているもの。設定がうまくいっていないと、インストールや編集時にパーミッションのエラーを出す)
メディアデータアップロード
/wp-admin/media-upload.php
/wp-admin/async-upload.php
自動アップグレード
/wp-admin/update.php
/wp-admin/update-core.php
プラグインのインストール、編集、削除
/wp-admin/plugin-install.php
/wp-admin/plugin-editor.php
/wp-admin/plugins.php
テーマのインストール、編集、削除
/wp-admin/theme-editor.php
/wp-admin/theme-install.php
/wp-admin/themes.php


上記の設定がうまくいっていないと、例えば、テーマのインストールで
/virtual/xxxx/public_html/xxxx/wp-content/uploads のアクセス権がない、などのエラーが出る。

参考にさせてもらいました。 http://memo.mkmin.com/wordpress/?p=6


そうこうしているうちに、wordpress 3.0.5がリリースされた模様。
ftpの設定を入れておくと、自動アップデートが簡単にできる。
coreserverで、該当のフォルダ用のftp設定をしておくと良いですね。


>次にテーマのインストールをしなくちゃね

2009/12/27

WindowsVista のフォルダ表示でグループ表示をやめるには

とっても簡単に出来て欲しいことなのに、Windows Vistaではよくわからないことがある。

今日も、あるとき急にフォルダの表示が、グループ表示されることがある。
名前の最初の文字や更新日時などでグループ分けして表示されちゃうのだ。

変え方がわからない、そもそもグループ表示なんてしてくれとお願いした覚えはない。
名前グループ化されると、更新日時に変えられない。

。。。またですか、Vistaさん。

いろいろ変えていてやっと発見。
メニューの表示で変更できるらしいが、メニューの出てこない私の設定だと、マウスの右クリック→「並べ替え」→「更新日時」(など)を指定。
そのしたの「グループで表示」と「並べ替え」と「重ねて表示」はどれかひとつが選択される設定の模様。(XPの時はグループで表示は設定のひとつだったような)
「グループで表示」なんて誰が考えたんだろう(?)な変な仕様。
そのしたの「重ねて表示」という項目もさらに不可思議な表示をする模様。

これでやっと戻せる。

それにしても、勝手にグループ表示するなんてことはやめて欲しい。お願いだから。
英語圏では便利なのかしらん。

2009/07/08

MercurialをCoreserverで稼働させる

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のシェル変更

いくつかめの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