「2009年2月」の記事

Windows XP+VMware Player+Ubuntu Desktopの環境構築 #7 【vi, vimの基本操作】[Permanent Link]

Windows XP+VMware Player+Ubuntu Desktopの環境構築 #6 【Sambaサーバの導入】で、WindowsとVMwareのUbuntuとのフォルダ共有を行いました。

今回はちょっと道を逸れてvi。

ところで、Web制作をデザインから入った人で、Windowsにするか、MacOSにするかで迷っているのはよく見かけますが、WindowsにするかLinuxにするか、あるいはMacOSにするかLinuxにするかで迷っているのは見たことがありません。Linuxの存在を知らない人も見かけます。パソコンと言えばWindowsかMac。今のMacOSはUNIXですが、それでもLinux(BSDとかでもいいのですが)は選択肢の蚊帳の外ですね。LinuxではAdobe製品を使えないのが大きいのでしょうか。あとOffice。というか、ソフトが動けばOSは何でもいいのか。Ubuntuがあるからこれから普及していくだろうかな。でも、デザイナーはwhat you see is what you getなのです! Macの見た目に興味はあっても、中身(UNIX)に興味はないのです(^_^; (きっと)

そんなことはどうでもいいとして、Windowsに慣れてしまった身にはviは辛いです。まず操作がわからん。そこで挫折。よくある。なんとしても操作を覚えなきゃならん。

$ vi

とタイプするとvimが立ち上がる。

$ vim

とタイプしても結果は同じ。

~                              VIM - Vi IMproved
~
~                               version 7.1.138

Ubuntu 8.04ではvimがデフォルトなのですね。

基本のコマンドをメモ。これを覚えなきゃ始まらない。

起動と終了
vi [filename] 開く。
:w 保存する。
:q 終了する。
:wq 保存して終了する。
ZZ 保存して終了する。
:e! 保存前に戻す。
:w! 上書き保存する。
:q! 保存しないで終了する。
:sh シェルを実行する。戻るにはCtrl + D。あるいはCtrl + Zでviを中断。viに戻るにはfg
:pre 強制保存する。
移動
h 左に1文字移動する。2文字移動するには2h
j 下に1文字移動する。2文字移動するには2j
k 上に1文字移動する。2文字移動するには2k
l 右に1文字移動する。2文字移動するには2l
0 行の先頭に移動する。
$ 行の末尾に移動する。
b 前の単語に移動する。2単語前に移動するには2b。句読点を無視するにはB
w 後の単語に移動する。2単語後に移動するには2w
編集
i 挿入する。
a 追加する。
c 変更する。例えば行末まではc$、単語末尾まではcw。など色々組み合わせる。
cc 行全体を変更する。
C カーソル位置から行末までを変更する。c$と同じ。
r 1文字を変更する。
R Escを押すまで変更する(1行まで)。
s 置換する。2文字分は2s
S 行全体を置換する。
~ 大文字と小文字を変更する。
s 置換する。
d 削除する。1語はdw。1語(単語の末尾まで)はde
dd 行全体を削除する。2行削除するには2dd
D カーソル位置から行末までを削除する。
x 1文字削除する。2文字なら2x
y ヤンク。
Y 行全体をヤンク。yyと同じ。
p 配置する。カット&ペーストのペースト。全ての削除を取り消す。
. コマンドを繰り返す。
u 最後のコマンドを取り消す。
U その行を元に戻す。

まだまだあるけれど、ひとまず以上を知っていれば、なんとなく使えた気になります。

$ sudo shutdown -h now
ポイントを現金でキャッシュバック

Windows XP+VMware Player+Ubuntu Desktopの環境構築 #6 【Sambaサーバの導入】[Permanent Link]

Windows XP+VMware Player+Ubuntu Desktopの環境構築 #5 【WWWサーバの設定というか】の続きです。

ホストのWindowsから直接ファイルを操作するために、Sambaサーバを導入してみます。

taskselにてSamba File serverをインストールします。

$ sudo tasksel

tasksel

ここで、Windowsのワークグループを確認しておきます。「マイ コンピュータ」-「コンピュータ名」-「変更」を見ると、ワークグループが「WORKGROUP」と設定されていたので、Sambaのそれも同じにします。

共有ディレクトリですが、ローカルでしか使わないので、認証なし&ゲストユーザでのアクセスで済ませてしまおうと思います。

$ sudo chown nobody /home/ユーザ/www

smb.confの編集。

$ sudo vi /etc/samba/smb.conf

27行目(viで行番号を表示するには:set nu。非表示は:set nonu。)。デフォルトのまま。

workgroup = WORKGROUP

91行目。匿名アクセスの許可。

security = share

以下3行を追加。

unix charset = UTF-8
display charset = UTF-8
dos charset = CP932

新たに[www]セクション([www]ってのは適当)を作って、共有ディレクトリの設定を記述。

[www]
path = /home/ユーザ/www
writable = yes
guest ok = yes
guest only = yes

保存してSambaを起動。

$ sudo /etc/init.d/samba start

Windowsの「マイ ネットワーク」-「ネットワーク接続」-「ネットワーク全体」-「Microsoft Windows Network」-「Workgroup」を開くと、ゲストOSのUbuntuが見えます。

Samba on Windows network

さらに一階層下へ行くと、wwwフォルダがあるので、右クリックから「ネットワークドライブの割り当て」にて、アクセスしやすくしておきます。wwwを開くと、前回作ったファイルindex.phpが見えます。試しにWindowsでindex2.phpを作ってみます。

ls -oすると、以下のように出力されました。

合計 8
-rw-r--r-- 1 ユーザ 32 2009-02-08 15:02 index.php
-rwxr--r-- 1 nobody 26 2009-02-08 18:33 index2.php

上手くいったようです(^^) これでホストWindows XPで開発してVMware PlayerのゲストUbuntuで動かす基礎がおおよそできた感じでしょうか。

$ sudo shutdown -h now
ポイントを現金でキャッシュバック

Windows XP+VMware Player+Ubuntu Desktopの環境構築 #5 【WWWサーバの設定というか】[Permanent Link]

Windows XP+VMware Player+Ubuntu Desktopの環境構築 #4 【SSHサーバの導入】で、WindowsからVMwareのUbuntuにSSHで接続しました。

Ubuntu.vmxをダブルクリックしてUbuntuを立ち上げます。立ち上げたらPuTTyjpでSSHにて接続し、ログインします。今後の操作はリモートで行います。このあたりは、Webデザイナーでも普段よくすることかと思います。

例によって、アップデート。

$ sudo apt-get update
$ sudo apt-get upgrade

プロセスの確認。

$ sudo pstree
init─┬─NetworkManager───{NetworkManager}
     ├─NetworkManagerD
     ├─acpid
     ├─apache2───5*[apache2]
     ├─atd
     ├─avahi-daemon───avahi-daemon
     ├─console-kit-dae───61*[{console-kit-dae}]
     ├─cron
     ├─cupsd
     ├─dbus-daemon
     ├─dd
     ├─dhcdbd───dhclient
     ├─gdm───gdm─┬─Xorg
     │           └─gdmgreeter
     ├─6*[getty]
     ├─guestd
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    ├─hald-addon-inpu
     │                    └─2*[hald-addon-stor]
     ├─hcid───2*[bluetoothd-serv]
     ├─klogd
     ├─mysqld_safe─┬─logger
     │             └─mysqld───9*[{mysqld}]
     ├─sshd───sshd───sshd───bash───pstree
     ├─syslogd
     ├─system-tools-ba
     └─udevd

ApacheとMySQLが動いています。

UbuntuのIPにてWWWブラウザからHTTP接続できますが、いちいちIPを入力するのも面倒だと思っていたところ、C:\WINDOWS\system32\drivers\etc\hostsに以下のように記述するとhttp://ubuntu/でアクセスできるようになりました。

ゲストのIP ubuntu

ubuntu server 1

ネットワーク内からアクセスできる(はず)なので、一々本番サーバにアップロードしてWindowsやMacで表示確認するより楽ですね。

さて、Apacheの設定。

$ ls -aoR /etc/apache2
/etc/apache2:
合計 56
drwxr-xr-x   7 root  4096 2009-01-16 00:36 .
drwxr-xr-x 126 root 12288 2009-02-08 14:16 ..
-rw-r--r--   1 root 10587 2008-06-25 22:49 apache2.conf
drwxr-xr-x   2 root  4096 2009-01-16 00:36 conf.d
-rw-r--r--   1 root   378 2008-06-25 22:49 envvars
-rw-r--r--   1 root     0 2009-01-16 00:36 httpd.conf
drwxr-xr-x   2 root  4096 2009-01-16 00:36 mods-available
drwxr-xr-x   2 root  4096 2009-01-16 00:36 mods-enabled
-rw-r--r--   1 root    59 2008-06-25 22:49 ports.conf
drwxr-xr-x   2 root  4096 2009-01-16 00:36 sites-available
drwxr-xr-x   2 root  4096 2009-01-16 00:36 sites-enabled

/etc/apache2/conf.d:
合計 12
drwxr-xr-x 2 root 4096 2009-01-16 00:36 .
drwxr-xr-x 7 root 4096 2009-01-16 00:36 ..
-rw-r--r-- 1 root  269 2008-06-25 22:49 charset

/etc/apache2/mods-available:
合計 356
drwxr-xr-x 2 root 4096 2009-01-16 00:36 .
drwxr-xr-x 7 root 4096 2009-01-16 00:36 ..
-rw-r--r-- 1 root  332 2008-06-25 22:49 actions.conf
-rw-r--r-- 1 root   66 2008-06-25 22:49 actions.load
-rw-r--r-- 1 root  815 2008-06-25 22:49 alias.conf
-rw-r--r-- 1 root   62 2008-06-25 22:49 alias.load
-rw-r--r-- 1 root   60 2008-06-25 22:49 asis.load
-rw-r--r-- 1 root   72 2008-06-25 22:49 auth_basic.load
-rw-r--r-- 1 root   74 2008-06-25 22:49 auth_digest.load
-rw-r--r-- 1 root   74 2008-06-25 22:49 authn_alias.load
-rw-r--r-- 1 root   72 2008-06-25 22:49 authn_anon.load
-rw-r--r-- 1 root   85 2008-06-25 22:49 authn_dbd.load
-rw-r--r-- 1 root   70 2008-06-25 22:49 authn_dbm.load
-rw-r--r-- 1 root   78 2008-06-25 22:49 authn_default.load
-rw-r--r-- 1 root   72 2008-06-25 22:49 authn_file.load
-rw-r--r-- 1 root   90 2008-06-25 22:49 authnz_ldap.load
-rw-r--r-- 1 root   70 2008-06-25 22:49 authz_dbm.load
-rw-r--r-- 1 root   78 2008-06-25 22:49 authz_default.load
-rw-r--r-- 1 root   82 2008-06-25 22:49 authz_groupfile.load
-rw-r--r-- 1 root   72 2008-06-25 22:49 authz_host.load
-rw-r--r-- 1 root   74 2008-06-25 22:49 authz_owner.load
-rw-r--r-- 1 root   72 2008-06-25 22:49 authz_user.load
-rw-r--r-- 1 root 3110 2008-06-25 22:49 autoindex.conf
-rw-r--r-- 1 root   70 2008-06-25 22:49 autoindex.load
-rw-r--r-- 1 root   62 2008-06-25 22:49 cache.load
-rw-r--r-- 1 root   70 2008-06-25 22:49 cern_meta.load
-rw-r--r-- 1 root   58 2008-06-25 22:49 cgi.load
-rw-r--r-- 1 root   68 2008-06-25 22:49 cgid.conf
-rw-r--r-- 1 root   60 2008-06-25 22:49 cgid.load
-rw-r--r-- 1 root   76 2008-06-25 22:49 charset_lite.load
-rw-r--r-- 1 root   58 2008-06-25 22:49 dav.load
-rw-r--r-- 1 root   36 2008-06-25 22:49 dav_fs.conf
-rw-r--r-- 1 root   79 2008-06-25 22:49 dav_fs.load
-rw-r--r-- 1 root   68 2008-06-25 22:49 dav_lock.load
-rw-r--r-- 1 root   58 2008-06-25 22:49 dbd.load
-rw-r--r-- 1 root  107 2008-06-25 22:49 deflate.conf
-rw-r--r-- 1 root   66 2008-06-25 22:49 deflate.load
-rw-r--r-- 1 root  122 2008-06-25 22:49 dir.conf
-rw-r--r-- 1 root   58 2008-06-25 22:49 dir.load
-rw-r--r-- 1 root  575 2008-06-25 22:49 disk_cache.conf
-rw-r--r-- 1 root   89 2008-06-25 22:49 disk_cache.load
-rw-r--r-- 1 root   64 2008-06-25 22:49 dump_io.load
-rw-r--r-- 1 root   58 2008-06-25 22:49 env.load
-rw-r--r-- 1 root   66 2008-06-25 22:49 expires.load
-rw-r--r-- 1 root   72 2008-06-25 22:49 ext_filter.load
-rw-r--r-- 1 root   89 2008-06-25 22:49 file_cache.load
-rw-r--r-- 1 root   64 2008-06-25 22:49 filter.load
-rw-r--r-- 1 root   66 2008-06-25 22:49 headers.load
-rw-r--r-- 1 root   62 2008-06-25 22:49 ident.load
-rw-r--r-- 1 root   68 2008-06-25 22:49 imagemap.load
-rw-r--r-- 1 root   66 2008-06-25 22:49 include.load
-rw-r--r-- 1 root  420 2008-06-25 22:49 info.conf
-rw-r--r-- 1 root   60 2008-06-25 22:49 info.load
-rw-r--r-- 1 root   60 2008-06-25 22:49 ldap.load
-rw-r--r-- 1 root   76 2008-06-25 22:49 log_forensic.load
-rw-r--r-- 1 root  185 2008-06-25 22:49 mem_cache.conf
-rw-r--r-- 1 root   87 2008-06-25 22:49 mem_cache.load
-rw-r--r-- 1 root 6279 2008-06-25 22:49 mime.conf
-rw-r--r-- 1 root   60 2008-06-25 22:49 mime.load
-rw-r--r-- 1 root   89 2008-06-25 22:49 mime_magic.conf
-rw-r--r-- 1 root   72 2008-06-25 22:49 mime_magic.load
-rw-r--r-- 1 root  663 2008-06-25 22:49 negotiation.conf
-rw-r--r-- 1 root   74 2008-06-25 22:49 negotiation.load
-rw-r--r-- 1 root  133 2008-11-26 07:14 php5.conf
-rw-r--r-- 1 root   59 2008-11-26 07:14 php5.load
-rw-r--r-- 1 root  589 2008-06-25 22:49 proxy.conf
-rw-r--r-- 1 root   62 2008-06-25 22:49 proxy.load
-rw-r--r-- 1 root   87 2008-06-25 22:49 proxy_ajp.load
-rw-r--r-- 1 root   97 2008-06-25 22:49 proxy_balancer.load
-rw-r--r-- 1 root   95 2008-06-25 22:49 proxy_connect.load
-rw-r--r-- 1 root   87 2008-06-25 22:49 proxy_ftp.load
-rw-r--r-- 1 root   89 2008-06-25 22:49 proxy_http.load
-rw-r--r-- 1 root   66 2008-06-25 22:49 rewrite.load
-rw-r--r-- 1 root 1122 2008-06-25 22:49 setenvif.conf
-rw-r--r-- 1 root   68 2008-06-25 22:49 setenvif.load
-rw-r--r-- 1 root   66 2008-06-25 22:49 speling.load
-rw-r--r-- 1 root 2158 2008-06-25 22:49 ssl.conf
-rw-r--r-- 1 root   58 2008-06-25 22:49 ssl.load
-rw-r--r-- 1 root  398 2008-06-25 22:49 status.conf
-rw-r--r-- 1 root   64 2008-06-25 22:49 status.load
-rw-r--r-- 1 root   72 2008-06-25 22:49 substitute.load
-rw-r--r-- 1 root   64 2008-06-25 22:49 suexec.load
-rw-r--r-- 1 root   70 2008-06-25 22:49 unique_id.load
-rw-r--r-- 1 root  293 2008-06-25 22:49 userdir.conf
-rw-r--r-- 1 root   66 2008-06-25 22:49 userdir.load
-rw-r--r-- 1 root   70 2008-06-25 22:49 usertrack.load
-rw-r--r-- 1 root   66 2008-06-25 22:49 version.load
-rw-r--r-- 1 root   74 2008-06-25 22:49 vhost_alias.load

/etc/apache2/mods-enabled:
合計 8
drwxr-xr-x 2 root 4096 2009-01-16 00:36 .
drwxr-xr-x 7 root 4096 2009-01-16 00:36 ..
lrwxrwxrwx 1 root   28 2009-01-16 00:36 alias.conf -> ../mods-available/alias.conf
lrwxrwxrwx 1 root   28 2009-01-16 00:36 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root   33 2009-01-16 00:36 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root   33 2009-01-16 00:36 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root   36 2009-01-16 00:36 authz_default.load -> ../mods-available/authz_default.load
lrwxrwxrwx 1 root   38 2009-01-16 00:36 authz_groupfile.load -> ../mods-available/authz_groupfile.load
lrwxrwxrwx 1 root   33 2009-01-16 00:36 authz_host.load -> ../mods-available/authz_host.load
lrwxrwxrwx 1 root   33 2009-01-16 00:36 authz_user.load -> ../mods-available/authz_user.load
lrwxrwxrwx 1 root   32 2009-01-16 00:36 autoindex.conf -> ../mods-available/autoindex.conf
lrwxrwxrwx 1 root   32 2009-01-16 00:36 autoindex.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root   26 2009-01-16 00:36 cgi.load -> ../mods-available/cgi.load
lrwxrwxrwx 1 root   26 2009-01-16 00:36 dir.conf -> ../mods-available/dir.conf
lrwxrwxrwx 1 root   26 2009-01-16 00:36 dir.load -> ../mods-available/dir.load
lrwxrwxrwx 1 root   26 2009-01-16 00:36 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root   27 2009-01-16 00:36 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root   27 2009-01-16 00:36 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root   34 2009-01-16 00:36 negotiation.conf -> ../mods-available/negotiation.conf
lrwxrwxrwx 1 root   34 2009-01-16 00:36 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root   27 2009-01-16 00:36 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root   27 2009-01-16 00:36 php5.load -> ../mods-available/php5.load
lrwxrwxrwx 1 root   31 2009-01-16 00:36 setenvif.conf -> ../mods-available/setenvif.conf
lrwxrwxrwx 1 root   31 2009-01-16 00:36 setenvif.load -> ../mods-available/setenvif.load
lrwxrwxrwx 1 root   29 2009-01-16 00:36 status.conf -> ../mods-available/status.conf
lrwxrwxrwx 1 root   29 2009-01-16 00:36 status.load -> ../mods-available/status.load

/etc/apache2/sites-available:
合計 12
drwxr-xr-x 2 root 4096 2009-01-16 00:36 .
drwxr-xr-x 7 root 4096 2009-01-16 00:36 ..
-rw-r--r-- 1 root  985 2008-06-25 22:49 default

/etc/apache2/sites-enabled:
合計 8
drwxr-xr-x 2 root 4096 2009-01-16 00:36 .
drwxr-xr-x 7 root 4096 2009-01-16 00:36 ..
lrwxrwxrwx 1 root   36 2009-01-16 00:36 000-default -> /etc/apache2/sites-available/default

defaultを見てみる。

$ vi /etc/apache2/sites-available/default
NameVirtualHost *

        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/

                Options FollowSymLinks
                AllowOverride None

                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"

        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow

とまあ、こんな感じになっておりますが、

$ ls -o /var

としてみますと、

合計 48
drwxr-xr-x  2 root 4096 2009-02-07 18:24 backups
drwxr-xr-x 20 root 4096 2009-02-08 07:43 cache
drwxr-xr-x  2 root 4096 2008-04-05 06:34 crash
drwxr-xr-x  2 root 4096 2008-04-23 03:07 games
drwxr-xr-x 49 root 4096 2009-01-16 00:38 lib
drwxrwsr-x  2 root 4096 2008-04-15 14:53 local
drwxrwxrwt  3 root   60 2009-02-08 11:51 lock
drwxr-xr-x 14 root 4096 2009-02-08 11:51 log
drwxrwsr-x  2 root 4096 2008-04-23 02:48 mail
drwxr-xr-x  2 root 4096 2008-04-23 02:48 opt
drwxr-xr-x 16 root  700 2009-02-08 11:51 run
drwxr-xr-x  7 root 4096 2008-04-23 02:52 spool
drwxrwxrwt  2 root 4096 2009-02-08 14:28 tmp
drwxr-xr-x  2 root 4096 2009-01-16 00:36 www

こんな感じになっていて、ドキュメントルートが/var/wwwだとWindowsから編集するには都合悪いと思われます(というのも、サブPCではWindowsでコーディングする)ので、ドキュメントルートをhomeディレクトリに変更してみます。

まずディレクトリを作り、

$ mkdir /home/ユーザ/www

動作確認用のindexファイルを作ります。

$ vi /home/ユーザ/www/index.php
<p>インデックスです</p>

defaultファイルをコピーし、コピーしたファイルの/var/www//home/ユーザ/wwwに変更した後、defaultを無効に、コピーした方を有効にし、Apacheを再起動します。

$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ファイル
$ sudo vi /etc/apache2/sites-available/ファイル
$ sudo a2dissite default
$ sudo a2ensite ファイル
$ sudo /etc/init.d/apache2 restart

できますた(^^)

Ubuntu Server 2

$ sudo shutdown -h now
ポイントを現金でキャッシュバック
Copyleft (c) 2008-2010 maaguu.
Email to maaguu:info@mx.maaguu.com Powered by WordPress MU