サーバのGitにローカルPCからsshで接続

レンタルサーバにインストールしたGitにリポジトリを作成して、ローカルのPCからsshで接続してみる。

まず、初期設定としてユーザーを登録する。

git config --global user.name "ユーザー名"
git config --global user.email "メールアドレス"

次にリポジトリの作成。

$ mkdir git
$ cd git
$ mkdir sandbox.git
$ cd sandbox.git/
$ git init

何もないとよく分からないので、適当にファイルを作って登録する。

$ date > date.txt
$ git add date.txt
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached ..." to unstage)
#
#       new file:   date.txt
#
$ git commit -m "Test"
[master (root-commit) f013bcb] Test
 1 file changed, 1 insertion(+)
 create mode 100644 date.txt
$ git status
# On branch master
nothing to commit (working directory clean)

ローカルPCにTortoiseGitをインストールする。(ランゲージパックも)
でも、その前にmsysgitが必要。
インストーラーを使ってインストールするだけなので手順は省略。

なお、TortoiseGitのサイトに「msysgit 1.8.3 と TortoiseGit 1.8.3 を一緒に使うな」と書いてあるので、とりあえずmsysgitは1.8.1.2を使用(なぜか1.8.2.xはない)。

クライアントPC上の適当なフォルダで右クリックし、「Gitクローン(複製)」を実行。
右クリックメニュー

ダイアログに接続情報を入力して、OKをクリック。
Gitクローン

SSHのパスワードを求められるので入力。
パスワード入力

サーバのリモートリポジトリからローカルリポジトリが作成された。
Gitクローン成功 同期されたファイル

以下の点でかなりハマった。
①クローンの作成時に「bash: git-upload-pack: command not found TortoiseGit」というエラーが発生して失敗
調べてみるとサーバ側でgit-upload-packにパスが通っていないことが原因とのこと。
しかし、普通にsshで接続した際には間違いなく~/local/bin/にパスが通っている。

試しにTortoiseGitではなくEclipseのEGitでやってみるが、同じエラーが発生。
途方に暮れていたところ、以下の情報に辿り着く。

EGit fails with “git-upload-pack: command not found”

要するに、.bash_profileにPATHの設定を書いても読んでくれず、.bashrcに書かないといけないらしい。
.bashrcにPATHの設定を書いたところ、解消した。

②クローンの作成時に「’/git/sandbox.git’ does not appear to be a git repository」というエラーが発生して失敗
①が解消したと思ったら、さらにエラーが。
google先生もよく分からない様子。
エラーメッセージをジーっと見つめていたら閃いた。
「/git/sandbox.git」を探しに行っているようだが、これは「~/git/sandbox.git」ではなく、本当に「/git/sandbox.git」を探しに行ってしまっているのではないかと。
試しにURLを「ホスト名/home/xxxxx/git/sandbox.git」に変えてみたら解消した。

レンタルサーバにGitを導入

レンタルサーバにGitを導入する。

<参考サイト>
さくらのレンタルサーバ(スタンダード)にGitをインストール
さくらレンタルサーバーにGitをインストールする改良版

$ cd ~/tmp/
$ wget --no-check-certificate https://www.kernel.org/pub/software/scm/git/git-1.8.3.2.tar.gz
$ tar zxf git-1.8.3.2.tar.gz
$ cd git-1.8.3.2
$ ./configure -prefix=$HOME/local
$ gmake
(省略)
gmake: *** [git-credential-store] Error 1

エラーが出て失敗。
「gmake: *** [git-credential-store] Error 1」でググったところ、以下のサイトにバージョンが新しすぎてエラーになる的な情報を発見。1.7.x系に落として再チャレンジ。

<参考サイト>
Git導入へ(1)~さくらインターネットに。

$ wget --no-check-certificate https://git-core.googlecode.com/files/git-1.7.12.4.tar.gz
$ tar zxf git-1.7.12.4.tar.gz
$ cd git-1.7.12.4
$ ./configure -prefix=$HOME/local
$ gmake
$ gmake install
$ git --version
git version 1.7.12.4

無事成功。
ちなみに、Redmineのインストール時に$HOME/local/binにPATHを通してある。
もしPATHが通っていない場合は$HOME/.bash_profileに設定しておく。

レンタルサーバにRedmineを導入③

遂にRedmine本体をインストール。

が、はじめに結論から言うと、失敗。
Redmineのインストールそのものは成功していると思われるが、レンタルサーバのApacheを経由してアクセスすることができず。。。

以下、作業手順。

まずはインストール。

$ wget http://rubyforge.org/frs/download.php/76013/redmine-1.3.3.tar.gz
$ tar zxf redmine-1.3.3.tar.gz
$ mv redmine-1.3.3 ~/var/lib/

続いてDBの設定を変更。

$ cd ~/var/lib/redmine-1.3.3/config/
$ cp database.yml.example database.yml
$ vi database.yml

「production:」を残して全て削除。
「production:」の設定を以下のように変更。(今回はMySQL)

production:
  adapter: mysql
  database: ホスティング会社から指定されたデータベース名
  host: ホスティング会社から指定されたDBサーバのホスト名
  username: ホスティング会社から指定されたDBユーザー名
  password: ホスティング会社から指定されたDBユーザーパスワード
  encoding: utf8

次に全般的な設定の変更。
とりあえずメールの設定のみ。

$ cp configuration.yml.example configuration.yml
$ vi configuration.yml

「production:」のブロックのみ以下のように変更。
(今回はサーバ上のsendmailを使う設定に)

production:
  email_delivery:
    delivery_method: :sendmail

次にenvironment.rbの設定。

$ vi environment.rb

「ENV[‘RAILS_ENV’] ||= ‘production’」のコメントを外す。

次にDBの初期化とデフォルトデータのロード。
~/var/lib/redmine-1.3.3/config/にて実行。
最後のデータロードでは言語を聞かれるので「ja」を入力。

$ rake generate_session_store
$ rake db:migrate RAILS_ENV=production
$ rake redmine:load_default_data RAILS_ENV="production"
Select language: ar, bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja
====================================
Default configuration data loaded.

次にCGIの設定。

$ cd ~/var/lib/redmine-1.3.3/public/
$ cp dispatch.cgi.example dispatch.cgi
$ vi dispatch.cgi

先頭行を以下のように変更。

#!/usr/local/bin/ruby

さらに.htaccessの設定。

$ cp htaccess.fcgi.example .htaccess
$ vi .htaccess

「Options +FollowSymLinks +ExecCGI」をコメントアウト。

最後にpublicディレクトリをHTTPでアクセスできるところにシンボリックリンク。
で、ブラウザからアクセスしたら、
———————————————————————————
Application error

Rails application failed to start properly
———————————————————————————
だそう。orz
dispatch.cgiをシェルから直接動かすと原因がわかるという情報があったので試す。

$ ruby dispatch.cgi
/home/ユーザー名/var/lib/redmine-1.3.3/vendor/rails/actionpack/lib/action_controller/cgi_process.rb:22:in `__send__': undefined method `env_table' for nil:NilClass (NoMethodError)
    from /home/ユーザー名/var/lib/redmine-1.3.3/vendor/rails/actionpack/lib/action_controller/cgi_process.rb:22:in `dispatch_cgi'
    from /home/ユーザー名/var/lib/redmine-1.3.3/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:101:in `dispatch_cgi'
    from /home/ユーザー名/var/lib/redmine-1.3.3/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:27:in `dispatch'
    from dispatch.cgi:10

いろいろ調べてみたら、Passengerというのが入っていないのが原因っぽいが、とりあえずここで断念。
つづく。(といいのだが…)

レンタルサーバにRedmineを導入②

続いて、Railsをインストール。
バージョンは先のサイトのRedmine 1.3.xの対応バージョンに記載されていた2.3.14を指定。

$ gem install -v=2.3.14 rails --include-dependencies
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
Fetching: rake-10.0.4.gem (100%)
Fetching: activesupport-2.3.14.gem (100%)
Fetching: activerecord-2.3.14.gem (100%)
Fetching: rack-1.1.6.gem (100%)
Fetching: actionpack-2.3.14.gem (100%)
Fetching: actionmailer-2.3.14.gem (100%)
Fetching: activeresource-2.3.14.gem (100%)
Fetching: rails-2.3.14.gem (100%)
Successfully installed rake-10.0.4
Successfully installed activesupport-2.3.14
Successfully installed activerecord-2.3.14
Successfully installed rack-1.1.6
Successfully installed actionpack-2.3.14
Successfully installed actionmailer-2.3.14
Successfully installed activeresource-2.3.14
Successfully installed rails-2.3.14
8 gems installed
Installing ri documentation for rake-10.0.4...
Installing ri documentation for activesupport-2.3.14...
Installing ri documentation for activerecord-2.3.14...
Installing ri documentation for rack-1.1.6...
Installing ri documentation for actionpack-2.3.14...
Installing ri documentation for actionmailer-2.3.14...
Installing ri documentation for activeresource-2.3.14...
Installing ri documentation for rails-2.3.14...
Installing RDoc documentation for rake-10.0.4...
Installing RDoc documentation for activesupport-2.3.14...
Installing RDoc documentation for activerecord-2.3.14...
Installing RDoc documentation for rack-1.1.6...
Installing RDoc documentation for actionpack-2.3.14...
Installing RDoc documentation for actionmailer-2.3.14...
Installing RDoc documentation for activeresource-2.3.14...
Installing RDoc documentation for rails-2.3.14...

$ rails -v
Rails 2.3.14

無事にインストール完了。

レンタルサーバにRedmineを導入①

レンタルサーバにRedmineを導入する。

私が借りているinetdのサーバにはRuby1.8.6が入っているようなので、入れられるRedmineは1.3.xが最も高いバージョンのよう。

http://www.redmine.org/projects/redmine/wiki/RedmineInstall?version=146

まずはRailsを入れるためにRubyGemsをインストールする。

上記サイトに「RubyGems <= 1.7」と書いてあったので1.7.2をインストールしようとしたらエラーが発生。順番にバージョンを落として試したところ、結局1.4.2まで落とさないとインストールできなかった。

以下、インストール手順。

$ wget http://rubyforge.org/frs/download.php/73882/rubygems-1.4.2.tgz
$ tar zxf rubygems-1.4.2.tgz
$ ruby setup.rb --prefix=$HOME/local
$ mv ~/local/bin/gem18 ~/local/bin/gem

.bash_profileに以下の3行を追加

export RUBYLIB=${HOME}/local/lib
export GEM_HOME=${HOME}/local/lib/rubygems
export PATH=${PATH}:${HOME}/local/bin:${GEM_HOME}/bin

環境変数を適用して実行(バージョンを表示してみる)

$ source ~/.bash_profile
$ gem -v
1.4.2

無事にインストール完了。

WordPressでプラグインをインストールしたらエラー

管理画面でプラグインの新規追加をしたら、「Abort class-pclzip.php : Missing zlib extensions」というエラーが発生して失敗した。

php.iniに「extension=zlib.so」を追加することで解消。

WordPressの自動更新をするためにも上記の設定は必要。

<参考サイト>
WordPressで自動アップグレードできないときの対処方法(Abort class-pclzip.php : Missing zlib extensions)

← 前のページ