セットアップしているベースシステムは、plamo linux 4.21です。
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の末尾に追加します。
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なるコマンドは存在しません。
イメージファイルを50%サイズに縮小する。 $ convert -geometry 50%x50% [sourcefile] [productfile]
イメージファイルを400dots×400dotsサイズに縮小する。 $ convert -geometry 400x400 [sourcefile] [productfile] 画像の縦横比は変更されず、寸法の大きい方が400ドットになるように縮小されます。 たとえば元の画像が800×600であれば400×300になりますし、 元の画像が600×800であれば300×400になります。
・・・できないみたいです。白黒2値にはなるんですけどね・・。
このウェブページの動作確認 (確認後に、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
となっている行の先頭のコメント記号 # を外します
レンタルサーバでperlによるCGIのエラーメッセージを拾いたいとき。
自宅では動くのに、レンタルサーバにアップしてみると動かない。ということはままあります。今までの少ない経験だと、原因は、
が多いのですが、モジュールの不足については、そもそもモジュールが不足しているかどうか、どのモジュールが必要なのかを調べるのは難しいです。
で、 KCatchを使ってみると良いかもしれません。Internal Server Error を補足してウェブブラウザ画面に表示してくれます。
@nifty標準のhomepageサービスである@homepage。 なにやら、慢性的に重たいサーバなんですが、CGIを設置するのも難しい。
その原因の一つが、perlの標準モジュールが用意されていないことだと思います。
モジュール不足であっても、実行結果は単なる「Internal Server Error」 になってしまうので、なにがエラーなのかさっぱりわかりません。
上述のKCatchも、モジュール不足で動作しません ( use strict をコメントアウトすれば行けるんじゃないかと思います... )
思いつく対処法
あらかじめ、標準ライブラリを入れておくのが良いかと思います。
設置先は、レンタルサーバの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 {} \;
つまり、以下のようなかんじにします。
ファイルの中身は簡単になっていますが、 アップグレードの場合には設定項目そのものを書き込む必要が ある項目があります。(例えば文字コード)
ちょっとというか案の定、トラブルはあるのです
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名」でなくて、 「ブログ・ディレクトリ」だと勘違いしてました。 指定したディレクトリに必要なファイルが見付からないので、 アップグレード作業に着手できないみたいなのでありました。
エラーメッセージが出てもよさそうなもんですが・・・。