plamo4.21->webpage
戻るボタンで戻りませう。

webページ作成

セットアップしているベースシステムは、plamo linux 4.21です。

sitecopy

webサイトをアップロードします。

インストール

とくに難しいことはないです。 $ ./configure
$ make
# make install

とっかかり

作業ディレクトリと設定ファイルを作成します。 $ mkdir -m 700 .sitecopy '作業ディレクトリ
$ touch .sitecopyrc ' 設定ファイル
$ chmod 600 .sitecopyrc

設定ファイルを編集します。こんなのを使ってます。

#
site nifty
  server ftp12.nifty.com 'アップロード先のFTPサイト
  url http://homepage2.nifty.com/unzu-gumi/
  username [username]
  password [password]
  remote /homepage/'アップロード先のディレクトリ
  local ~/work/www/nifty/homepage/'手元のディレクトリ
  exclude "*#"
  exclude *~
  exclude "*.xcf"
  exclude ".*"
# symlinks maintain 'FTPでは使えない
  permissions all 
#
詳しくは、man sitecopy のなかで、CONFIGURATION の項目を参照します。

アップロード先のファイル配置を sitecopy に把握させます。 既存のアップロード先が存在し、手元のファイルより古い場合。 $ sitecopy --fetch [sitename] 既存のアップロード先のファイルをいったんダウンロードして更新していく場合。 $ sitecopy --fetch [sitename]
$ sitecopy --synch [sitename]
アップロード先にファイルが存在しない場合。 $ sitecopy --init [sitename] これで準備ができました。

日々のつかいかた

ローカルでファイルを修正してから、sitecopyでサーバへアップロードします。 $ sitecopy --update [sitename]

emacs

自動折り返しを禁止する

勝手に行を分割されてしまうのが気持ち悪いので少し触っておきます。

~/.emacsの末尾に追加します。

htmlファイルを編集するときの自動折り返しさせない

(add-hook 'yahtml-mode-hook
          '(lambda ()
            (auto-fill-mode -1)
           ) t)
ちなみに、htmlファイルを編集するときの自動折り返し桁数を指定するとき
(add-hook 'yahtml-mode-hook
          '(lambda ()
            (setq fill-column 78)
           ) t)

入力補完

定型句の入力などに。使い方はこちら

以下を ~/.emacsに追加することで,登録文をキーワードから展開できるようになります。

(setq abbrev-file-name "~/.abbrev_defs") ;;保存ファイル
(setq save-abbrevs t)
(quietly-read-abbrev-file)
(global-set-key "\M- " 'expand-abbrev) ;;展開するキーの設定

こことか ここを参考にしました。

ImageMagic

主なコマンド

ImageMagicなるコマンドは存在しません。

example

イメージファイルを50%サイズに縮小する。 $ convert -geometry 50%x50% [sourcefile] [productfile]

イメージファイルを400dots×400dotsサイズに縮小する。 $ convert -geometry 400x400 [sourcefile] [productfile] 画像の縦横比は変更されず、寸法の大きい方が400ドットになるように縮小されます。 たとえば元の画像が800×600であれば400×300になりますし、 元の画像が600×800であれば300×400になります。

イメージファイルをグレイスケールにする。

・・・できないみたいです。白黒2値にはなるんですけどね・・。

apache2

このウェブページの動作確認 (確認後に、sitecopyでウェブサーバにアップロードします。) を兼ねて、自宅内ウェブサーバを立ち上げてます。自宅からしか見えません。

インストール

とくに難しいことはないです。 $ ./configure
$ make
# make install

設定ファイル

デフォルトでは /usr/local/apache2/conf/httpd.confです。 このファイルを以下のように書き換えます。

apacheが動作するユーザを指定します

User [username]
Group [groupname]

サーバ名を指定します

ServerName	grape

トップページのディレクトリを指定します

# DocumentRoot   "/usr/local/apache2/htdocs"
DocumentRoot	"/home/xxx/www"

自宅内のみにアクセス制限

# <Directory "/usr/local/apache2/htdocs">
<Directory "/home/xxx/www">
    〜
    〜
    #
    # Controls who can get stuff from this server.
    #
    #Order allow,deny
    #Allow from all
    Order deny,allow
    Deny from all
    Allow from 192.168.0.0/24
</Directory>

CGIフォルダにCGI実行許可を与えます。

<Directory "/home/xxx/www/cgi">
    Options +ExecCGI
</Directory>

CGIとして実行するファイルを *.cgiのみとします

# AddHandler cgi-script .cgi

となっている行の先頭のコメント記号 # を外します

レンタルサーバでのエラー

KCatch

レンタルサーバでperlによるCGIのエラーメッセージを拾いたいとき。

自宅では動くのに、レンタルサーバにアップしてみると動かない。ということはままあります。今までの少ない経験だと、原因は、

が多いのですが、モジュールの不足については、そもそもモジュールが不足しているかどうか、どのモジュールが必要なのかを調べるのは難しいです。

で、 KCatchを使ってみると良いかもしれません。Internal Server Error を補足してウェブブラウザ画面に表示してくれます。

@nifty

@nifty標準のhomepageサービスである@homepage。 なにやら、慢性的に重たいサーバなんですが、CGIを設置するのも難しい。

その原因の一つが、perlの標準モジュールが用意されていないことだと思います。

モジュール不足であっても、実行結果は単なる「Internal Server Error」 になってしまうので、なにがエラーなのかさっぱりわかりません。

上述のKCatchも、モジュール不足で動作しません ( use strict をコメントアウトすれば行けるんじゃないかと思います... )

思いつく対処法

  1. とりあえず use strictをコメントアウトしてみます。
  2. perl moduleを入れてみます [→参考]

あらかじめ、標準ライブラリを入れておくのが良いかと思います。

Movable Type

設置先は、レンタルサーバのfasnetです。

上手く動作出来なくなったことがありました(画像のアップロード+縮小ができなくなった)。

メールで問い合わせしたら、サーバの管理者さんがメモリ使用量の制限をキツくしたためだったとのことで、制限を緩めて頂いて解決しました。

設置

ver 3.171での記録はこちらです。

お引っ越し

ver 3.171の記録は こちらです。

アップグレード

3.171から3.33へアップグレードしました。

ここ を見ながら作業しました。

なお、3.171で使っていたテンプレートは表示が変になって使いものにならなかったので、全部捨てて新しく3.3のデフォルトからやりなおしました。

バックアップ

ともかく、データベースを含めて、バックアップはサボらないように。 トラブルがあったらデータはさっくり消えてしまいますよ。

やりかたは、上記の参照ページか、お引越の記録を見てみてください

ファイルの展開

ローカルでファイルの展開とパーミッションの設定をして、sitecopyでアップします sitecopyを使うと、パーミッションもコピーしてくれるのでラクです。

ディレクトリ構成

参考ページとは違って次のようにしてます。

パーミッション

fasnetではディレクトリ配置が比較的ですが、パーミッションの指定が他よりもキツめになっています。ローカルで指定するとすれば、こんなかんじ。

$ cd xxx/mt 
$ chmod 701 mt
$ cd mt
$ find . -type d -exec chmod 701 {} \;
$ find . -type f -exec chmod 600 {} \;
$ find . -name "*.cgi" -exec chmod 700 {} \;

$ cd xxx/mt
$ chmod 705 mt-static
$ cd mt-static
$ find . -type d -exec chmod 705 {} \;
$ find . -type f -exec chmod 604 {} \;
つまり、以下のようなかんじにします。

設定ファイル

ファイルの中身は簡単になっていますが、 アップグレードの場合には設定項目そのものを書き込む必要が ある項目があります。(例えば文字コード)

トラブル

ちょっとというか案の定、トラブルはあるのです

mt.cgi の実行画面がまっしろけ

KCatchを使って調べてみると

Undefined subroutine &Jcode::euc_utf8 called at extlib/Jcode.pm ....
なるエラーメッセージが。

サーバが元々持っているJcode.pmとmovabletypeと一緒にいれていたextlib/Jcode.pm が、衝突してこうなることがあるらしいです。

ということで、extlibに入っているJcode.pmを削除してみたところ、エラーを解消することができました。

データベースのアップグレードが終わらない

「データベースのアップグレードを開始します」と云ったきり、何も始まらないのです・・・

原因は設定ファイル(mt-config.cgi)が間違ってました。

StaticWebPath が「スタティック・ディレクトリのURL名」でなくて、 「ブログ・ディレクトリ」だと勘違いしてました。 指定したディレクトリに必要なファイルが見付からないので、 アップグレード作業に着手できないみたいなのでありました。

エラーメッセージが出てもよさそうなもんですが・・・。



tsushiro.s, 2003-2006. [→戻る]