plamo7.3x->webpage

webページ作成

sitecopy

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

インストール

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

とっかかり

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

設定ファイルを編集します。こんなのを使ってます。 詳しくは、man sitecopy のなかで、CONFIGURATION の項目を参照します。

#
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 
#

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

日々のつかいかた

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

emacs

設定ファイルは、~/.emacs.d/ 以下になりました。

BSキーとDeleteキー

設定ファイル key_el を有効化するとDeleteキーがカーソル位置の 文字を削除する(Ctrl-dと同じ)ようになります。

ファイル名を*.elとすると、有効化しますのでファイル名をリネームします。 $ cd ~/.emacs.d/site-start.d/
$ mv key_el key.el

自動折り返しを禁止する

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

設定ファイル( ~/.emacs.d/init.el )に追加します。

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

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

自動折り返しを禁止する

ビープ音が煩わしいとき。画面点滅に置き換える or 警告を無効化します。

設定ファイル( ~/.emacs.d/init.el )に追加します。

;; 警告音の代わりに画面点滅
(setq visible-bell t)
;; 警告音も画面点滅もすべて無効化
(setq ring-bell-function 'ignore)

入力補完

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

以下を設定ファイルに追加することで,登録文をキーワードから展開できるようになります。

(global-set-key "\M-/" 'expand-abbrev) ;;展開するキーの設定(通常は C-x ')

ここを参考にしました。

インデント

perlのインデントはタブ文字でなくスペースで。

;; perlではインデントをスペースで
(setq cperl-indent-tabs-mode nil)

ホイールマウス

マウスのホイールでのスクロール行数を指定するとき

;; ページスクロール
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)
;; 5行ずつ
(global-set-key   [mouse-4] '(lambda () (interactive) (scroll-down 5)))
(global-set-key   [mouse-5] '(lambda () (interactive) (scroll-up   5)))
;; 1/3画面
(global-set-key [mouse-4] '(lambda () (interactive) (scroll-down (/ (window-height) 3))))
(global-set-key [mouse-5] '(lambda () (interactive) (scroll-up   (/ (window-height) 3))))

起動時から画面分割させない

起動直後は、上半分が開くように指定したファイル、下半分に初期メッセージでウィンドウが分割されて表示されます。 C-x 1 で上半分の1画面表示にすれば良いのですが、いちいち面倒なので初期メッセージの表示を止めます。

;; 起動直後の画面分割をしない(初期メッセージを表示しない)
(setq inhibit-startup-message t)

エラー対策

Symbol's value as variable is viod: default-buffer-file-coding-system

.h ファイルを編集したあとで、保存しようとしたらエラーになって保存できませんでした。

最近はデフォルトの文字コードが指定されなくなったのだそうですが、 一部のモードでエラーになることがあるみたいです。

;; デフォルトの文字コードを指定
(setq default-buffer-file-coding-system 'utf-8)

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になります。

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

彩度を0にすればいけるのではないかと...

apache

自宅内のみ参照可能なwebサーバにしてます。公開しているwebページをローカルで動作確認する用。

別途インストールした場合は、起動スクリプト( /etc/rc.d/init.d/httpd )のapachectlへのパスを修正する必要があります。

CGIを使う

本来はCGIとHTMLは別ディレクトリにするべきなのでしょうが、 当方ではCGIはhtmlドキュメントと同じディレクトリに収めています。

なので、それ用の設定をします。

[/etc/httpd/httpd.conf]

# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
....
LoadModule cgid_module modules/mod_cgid.so
....
DocumentRoot "/home/www"
<Directory "/home/www">
    ....
   Options Indexes FollowSymLinks ExecCGI
    ....
</Directory>
....
<IfModule mime_module>
     ....
    AddHandler cgi-script .cgi
     ....
</IfModule>
....
※上記は、HTMLドキュメントの表示は設定済な状態で、CGIを実行するために追加で設定する部分です。 他に、User, Group, DocumentRoot等の指定が必要です。

レンタルサーバ

さくらインターネットを使っています。

パーミッション

とくに、CGI絡みはパーミッションが合わないとエラーになったり、きちんと表示できなかったりします。

指定の内容はこんな感じ

findコマンドで設定するとすれば、こんな感じ。

(CGI)
$ find . -type d -exec chmod 701 {} \;
$ find . -type f -exec chmod 600 {} \;
$ find . -name "*.cgi" -exec chmod 700 {} \;
$ find . -name "*.html" -or -name "*.css" -or -name "*.jpg" -or -name "*.png" -exec chmod 604 {} \;
(HTML)
$ find . -type d -exec chmod 705 {} \;
$ find . -type f -exec chmod 604 {} \;

sitecopyコマンドならパーミッションも同期させてくれるので、ローカルでパーミッションを指定してからsitecopyでupdateさせるのがラクです。

CGI

デバッグ

[参考]

KCatch

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

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

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

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



tsushiro.s, 2003-2019.