2018年3月18日日曜日

Amazon EC2 の Apacheをバージョンアップ

Amazon EC2 のApacheのバージョンを新しくしました。
デフォルトの、2.2.32だったのですが、
下記のサイトを参考にして、2.4.27にしました。

https://utano.jp/entry/2016/10/amazon-linux-apache-24-install/

メモメモ

2018年3月17日土曜日

PHPでChatを作ってみる1

とりあえす。どうしたらいいかわからない。でも言語はPHPでと考えました。


簡単にGoogleで検索してみた感じだと、WebSockets(ウェブソケット)を使うのが良いみたいなことが見つかりました。

WebSocketsって何?
WebSocketコンピュータネットワーク用の通信規格の1つである。ウェブアプリケーションにおいて、双方向通信を実現するための技術規格である。
WebSocketでは、サーバとクライアントが一度コネクションを行った後は、必要な通信を全てそのコネクション上で専用のプロトコルを用いて行う。従来の手法に比べると、新たなコネクションを張ることがなくなる・HTTPコネクションとは異なる軽量プロトコルを使うなどの理由により通信ロスが減る、一つのコネクションで全てのデータ送受信が行えるため同一サーバに接続する他のアプリケーションへの影響が少ないなどのメリットがある。
・・・なんか良さそう。
(本当は、このなんかを正しく理解しないと、仕事には使えないんだけど)


では、(PHPで)Websocketを使うにはどうしたらよいのか?
・・・再びGoogleで検索しました。

どうも、Ratchet を使うのが良さそうです。
http://socketo.me


じゃあ、そのRachetを利用するにはどうしたらよいのでしょうか?

サーバ環境に設定が必要な様です。試したいサーバ環境は、AmazonのEC2です。

Composerをインストールすると楽にできるらしい。


Composer = 指揮者 って何? Dependency Manager for PHP とのこと。
composerとはPHPのパッケージ管理システムである。
なんとなくわかったような、わからないような感じです。

下記のサイトを参考にさせていただき、インストールをしました。
http://blog.toshimaru.net/how-to-use-composer-autoload/

AWSのEC2のインスタンスで動作するLinuxへ、teratermでログインして作業。

コンソールで下記を実行しました。
$ curl -sS https://getcomposer.org/installer | php

下記の様に表示したので、なんか大丈夫そうです。
All settings correct for using Composer
Downloading...
Composer (version 1.6.3) successfully installed to: /home/ec2-user/composer.phar
Use it: php composer.phar

ファイルを所定の場所に異動。(なんの為かよくわかっていません)
$ sudo mv composer.phar /usr/local/bin/composer

$composerを実行すると、案内の内容が表示されました。
やれやれ。


次に、Ratchetをインストール

インストール先が何が正しいのかわからないので、とりあえず、Webサーバのルートディレクトリにratchetというディレクトリを作成し、そこに入れることにしました。

composerを使ってインストールするには、インストール先にcomposer.jsonという
インストールする内容を記述したファイルが必要なので、
インストール先のratchetディレクトリに異動して、vi で下記を入力しました。

{
    "require": {
        "cboden/Ratchet": "0.2.*"
    }
}

viで保存。

コマンドラインで下記を実行
/usr/local/bin/composer install

なにやらいろいろ出てきたけど・・・・
- Installing cboden/ratchet (v0.2.8): Downloading (100%)
とあるので、インストールされたっぽい。

作成したratchetディレクトリの下をみると、いろいろ入っている様子。
# dir
composer.json  composer.lock  vendor

サーバ側の環境はここまで。
メモメモ。

2016年3月26日土曜日

Composerをインストールした時のメモメモ

$ curl -sS https://getcomposer.org/installer | php

$ sudo mv composer.pher /usr/local/bin/composer

$ composer

でいろいろ表示されればOK。

メモメモ

2015年6月13日土曜日

ftpを実行するバッチファイル

Windows環境で、FTPサーバーに自動でアップデートをするバッチを作成したので、メモメモ。


■.batファイルの中身
set ym=%date:~-10,4%%date:~-5,2%
set fn=ftp%ym%.log
ftp -s:ftp.txt>>%fn%
echo %date%_%time%>>%fn%
echo ------------------------>>%fn%

FTPを実施するだけなら、ftpコマンドを実行するだけで事足りる。
ftp

-sオプションでftpの時に必要な認証情報を別ファイルから取得。
-s:ファイル名
ftp -s:ftp.txt

実行のログを残しておきたいので、 ftp[年月].log というファイルの中に実行結果を出力。

現在の年月を取得して、変数に保存
set ym=%date:~-10,4%%date:~-5,2%
2015/06/01に実行したら変数の中身は、「 201506 」となる。


年月をファイル名に反映する為、年月を含んだファイル名を変数に保存
set fn=ftp%ym%.log
※batファイルでの変数の利用時は%で両端をくくる。
できるファイル名の例:ftp201506.log

ftpを実行時に、実行結果をファイル出力するようにする。
>>ファイル名 をつけることでファイル出力する。
ftp -s:ftp.txt>>%fn%

ファイルが既にある場合は追記となる。

ログに、実行時の日付と時間と区切りを追記。
echo %date%_%time%>>%fn%
echo ------------------------>>%fn%

合体すると、最初のコードになる。


■ftp.txtファイルの中身
open XXX.XXX.XXX.XXX
username
password
asc
prompt
put ファイルパス
disconnect
bye

XXX.XXX.XXX.XXXはFTPサーバのアドレス。

192.168.100.10のFTPサーバにアクセスして、
ユーザ認証を、ユーザ名:Yamada パスワード:1234 で認証、
c:\temp\data.dat のファイルをFTPしたいのであれば、

open 192.168.100.10
yamada
1234
asc
prompt
put c:\temp\data.dat
disconnect
bye

とする。

ftp.txtは、バッチファイルと同じフォルダに配置しておく。

バッチファイルをftp.batとしたのなら
ftp.bat と ftp.txt を同じフォルダに保存して、
Windowsのタスクスケジューラーで定期的に実行するように設定する。

別の処理で、必要なデータをc:\temp\data.datとして出力する処理をしていたので、
それを出力されたらFTPサーバに順次あげておくという処理を実施した。


■FTPコマンドリファレンス http://www.syscom.ne.jp/ftp_ref.htm


外部FTPサーバと、sftp環境を作って、インターネット経由でログを集める
いつか、処理を作ってもよいかなと考えました。

Windowsファイヤウォールの開放や、
ネット接続しているルータやファイヤウォールの通信許可、
など、他の考慮も必要ですね。

忘れないようにメモメモ。

2015年6月6日土曜日

CentOS ストレージの使用状況を確認した場合


AWSのE2でCentOSを利用しています。

CentOS自体のファイルサイズを確認する時のコマンド。

df -h

すーぐ忘れるので、こんな簡単な事でもメモメモ。

httpd.confの場所

AWSでEC2を利用して、Linux(CentOS)にApacheをインストールして利用しました。
まだまだ素人なので、httpd.confの場所をメモメモ。

cd /etc/httpd/conf/

2013年4月20日土曜日

VBScript で利用できる WMI とは

「WMI」とは「Windows Management Instrumentation」の略。
では「Windows Management Instrumentation」とは何か。
Windowsシステムを管理するためのインターフェースとのこと。

■代表的なWMIクラス
Win32_Service サービス情報(サービス名、ステータスなど)
Win32_Process プロセス情報(プロセス名、使用メモリ容量など)
Win32_LogicalDisk ディスク情報(ディスク容量、空き容量など)
Win32_Processor CPU情報(CPU使用率など)
Win32_OperatingSystem OS情報(プロダクト名、プロダクトタイプなど)
Win32_NTEventLogFile イベントログ情報(イベント内容など)
Win32_LogicalMemoryConfiguration メモリ情報(物理メモリ容量など)

■WMIクラスの呼び出し方法サンプル
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set Srvs = objWMI.ExecQuery("select * from Win32_Service")
Set Os = objWMI.ExecQuery("select * from Win32_OperatingSystem")



■VBScriptによるWMIクラスの実行サンプル
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set Srvs = objWMI.ExecQuery("select * from Win32_Service")
For Each Srv In Srvs
WScript.Echo Srv.Description
Next

2012年3月20日火曜日

Javaのアップデートを止める方法

Javaの自動アップデートを止めたいと考えて色々とググッたのでメモメモ。

対象は、Windows XPです。

以下の内容は、実施する場合は設定やセキュリティ管理を自己責任で行える方のみ実施してみてください。
Javaのアップデートも、セキュリティを考えると、本来はキチンと実施した方が良いものですね。


■アップデートを実行しているプログラム
Javaのアップデートを実行しているプログラムは、「jusched.exe」の様です。
タスクマネージャの「プロセス」タブを開いてみて、このプログラムがあれば、Javaのアップデートが動作しているということですね。


■Javaコントロールパネルでの停止(管理者権限が必要)
コントロールパネルのメニューにある「Java」のコントロールパネルを起動します。
メニューの「更新」タブにある「更新を自動的にチェック」のチェックを外して「OK」をクリックすれば、自動更新はストップできます。


個人での利用ならこの方法でOKです。

ただし、この方法はログオンユーザーごとに実行する必要がある為、多数のユーザーアカウントで端末を共有している様な環境だと、この方法だけでは駄目です。

他のユーザーアカウントでログオンしたタイミングで(月初とか)、Javaのアップデートが実行されてしまい、そのままインストールせずに他のユーザーアカウントでログオンしたら、「更新を自動的にチェックを外したはずなのに更新のメッセージ表示される??」といった事が発生して、事情を知らないと混乱してしまいそうです。


■端末ごと更新を止める
Windowsで起動時に動作しているスタートアップから止める方法がありました。

「ファイル名を指定して実行」で「msconfig」と入力して「システム構成ユーティリティ」を起動。
「スタートアップ」タブをみると、「jusched」があるのでチェックを外しました。

「システム構成ユーティリティ」で変更を行うと、再起動を求められます。
また、再起動後、
「システム構成ユーティリティはテストで行う為のものなので、後で戻してね・・・」
的なメッセージが流れます。
こちらは「このメッセージを表示しない」にチェックを入れて「OK」を押さないと毎回でてくるようです。

これで完了です。
ただし、今後は、不定期で手動アップデートを実施しようと考えています。


上記の方法はレジストリに値があります。
キー: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
名前: SunJavaUpdateSched
今回は、Windowsドメイン傘下のクライアント全てに適用したいので、スクリプトでレジストリを削除する方法を検討して配布する予定です。


また、以下のようなレジストリキーもあります。
キー: HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy
名前: EnableJavaUpdate
こちらを値を1から0に変更すると、上記のJavaコントロールパネルの「更新」自体が表示が無くなって使用できなくあります。

但し、レジストリの変更は、本当に自己責任となるのでくれぐれも注意が必要です。
とさ。

2012年3月17日土曜日

VBScriptでPing

VBSCript で Ping を撃ちたい時のサンプル。

リモート端末にVBScriptで処理を実施したいと考えたのですが、端末が起動しているかどうかを確認してからしたい処理がありました。

そこで、スクリプト内にpingを撃って、疎通結果をTrue/Falseで返す関数にしました。

WMI(Windows Management Instrumentation)を利用しています(=Windows環境です)。


Ping.vbs------------------------------------------------

MsgBox fncPing("192.168.1.1")

Function fncPing(host)
 Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
 Set colItems = objWMI.ExecQuery("select * from Win32_PingStatus where address ='" & host & "'")
 For Each objItem In colItems
  If objItem.StatusCode = 0 Then
   fncPing = True
  Else
   fncPing = False
  End If
 Next
 Set objItem = Nothing
 Set colItems = Nothing
 Set objWMI = Nothing
End Function

---------------------------------------------------


とさ。

2011年11月23日水曜日

Virtual PC 2007 上のサーバに Active Directoryをインストールしました。

Virtual PC 2007 に Windows Server 2003 R2 をインストールした続きの話です。

今はまだ Workgroup 構成のサーバに、 Active Directory をインストールして、Windowsドメイン環境を構築しました。

インストール直後にログインすると、

“まだ完了ではないですよ、「Disk2」を入れてインストールを続行して下さい”

的なメッセージがでていたのですが、私は無視してドライブ文字の変更やら、Windows Updateやらを先に行ってしまったので、ここで Disk2 を必要とするWindows Server 2003 のインストール作業を完了しておきます。

バーチャルハードディスク上で Windows Server 2003 を起動した状態で、Virtual PC 2007のメニューから「isoイメージのキャプチャ」を実行してDisk2のisoイメージを選んでやりました。

Windows Server 2003 のディスクドライブの中に、Disk2のファイル内容が表示されたので、その中から setup.exe を実行しました。

最初に、『使用許諾契約書』が表示されたので同意しました。



システム更新がすすみます。


しばらくすると何事もなく完了しました。

それでは本題の、Active Directory のインストールに進みます。

スタートのメニューから「プログラムを指定して実行」にて、
dcpromo.exe
と入力して実行すると、ウィザードが走り出しました。



「次へ」「次へ」と進めていくと、最初の選択肢として
『ドメインコントローラの種類』が表示されます。
今回は、まったく何もない環境にドメインを構築することになるので、
「新しいドメインのコントローラ」を選択します。



『新しいドメインの作成』が表示されます。
私は、フォレストはドメインの集まりとイメージしています。
ドメインの集まりも何も、今回はそのドメインでさえ最初に作成する状況なので、
「新しいフォレストのドメイン」を選択します。



『新しいドメイン名』が表示されます。
ここでは「testdomain.local」と名づけてみました。



『NetBIOS ドメイン名』が表示されます。
ドメイン名の短縮版的なイメージでいるので、「TESTDOMAIN」としました。



『データベースとログのフォルダ』が表示されます。
デフォルトで指定してある場所に保存することにして、そのまま「次へ」。



『共有システムボリューム』が表示されます。
これまたデフォルトで指定してある場所に保存することにして、そのまま「次へ」。



『DNS登録の診断』が表示されます。
Active Directoryには、DNSが必要になる為、このインストール時に同時にDNSもインストールしてしまいます。
「このコンピュータにDNSサーバをインストールして・・・」を選択します。



『アクセス許可』が表示されます。
今回は、Windows2000以前のPCを利用することは考えていませんので、
「Windows 2000 または Windows Server 2003 OS とのみ互換性があるアクセス許可」を選択します。



『ディレクトリ サービス復元モード Administrator パスワード』が表示されます。
これは普段は利用せず、トラブル時などにActiveDirectory機能を利用せずにシステムを起動させる際に、必要になってくるものらしいので、忘れないようなパスワードを設定しました。


いくつかの画面を「次へ」で飛ばすと、インストールが進みだします。



すると、私がドライブ構成を変更したり、Disk2 のインストールを Windows Update の後にしたりと、したからでしょうか。やたらと、
“Disk2の中のファイルが必要なのでありかを示せ”
的なメッセージが出てきます。
ちょっと失敗くさいところはありますが、ここは落ち着いて、Virtual PCのメニューで、Windows Server 2003 のisoイメージをキャプチャして、ディスクドライブを開いて該当のファイルを選択してあげます。



すると何回か繰り返すと最後まで進み、


最後にはインストールの完了のメニューが表示されました。
よかったよかった。

次は、DNS、サイトを設定する予定です。

2011年11月19日土曜日

Virtual PC 2007 上に Windows Server 2003 R2 をインストールしました。

Windows Server 上で、色々と試してみたい場合があるので、自宅のPC上に環境を作ることにしました。

サーバー用の機器をそろえるような余裕はないので、既にPCにインストールされている Virtual PC 2007 の仮想環境上に作成です。

Microsoft の TechNet の Subscription を購入しているので、Windows Server は、isoイメージをダウンロードして利用します。

毎度のことながら、Subscription はこういった検証には、思い切って購入してよかったなあと思います。


私の職場環境では、まだ Windows Server 2003 が幅を利かせているので、
・Windows Server 2003 R2, Standard Edition with SP2 - Disc 1 - VL (Japanese)
・Windows Server 2003 R2, Standard Edition with SP2 - Disc 2 - VL (Japanese)
の2つをダウンロードして、プロダクトキーをひかえました。

インストール開始です。

Virtual PC 2007 に新しいバーチャルHDDを作成しました。

そして新しいバーチャルHDDを起動すると、メニューからDisc 1のイメージをキャプチャして、操作メニューから再起動を行いました。

再起動時にisoを認識してWindows Server のインストールが始まります。

Windows ライセンス契約:F8=同意します
キーボードの種類の特定:半角/全角 キー
パーテーションの作成:
「C」を押してパーテションを二つ作成しておきました。
インストール用に29996Mと、もうひとつはバーチャルHDDを作成する時に割り当てたHDDサイズの残りです。
NTFS ファイルシステムを使用してパーティションをフォーマットしました。
再起動

ここからはOSの基本設定のウィザードが走りました。

Windoes2003起動
地域と言語のオプション:そのまま
ソフトウェアの個人設定
プロダクトキーの入力
サーバー名の入力
Administratorのパスワード入力
現在の時刻の設定:そのまま
しばらくインストール動作が勝手に進み
ネットワークの設定:カスタム設定
インターネットプロトコル(TCP/IPの設定)
IPアドレス:192.168.XXX.11 →サーバなので固定に
サブネット255.255.255.0 →自宅のネットワークがこれなので
DG:192.168.XXX.1 →ルーターにしました
DNS:127.0.0.1 →ActiveDirectoryを入れる予定なのでループバックアドレスに
DNS:192.168.XXX.1 →ルータにしました
としました。
ワークグループ名またはドメイン名:とりあえずはWORKGROUPで。
Windowsのインストールがしばらくすすんで、インストールが終了すると自動的に再起動が始まりました。
Windowsのログイン画面が出ました。
Disk2を入れるように求められたのですが、
いったんやめて、設定を色々と確認しようとしたところ、
ライセンス認証を求められたので、実行しました。

インターネットに接続して実行されるのですが、なぜか「認証ができません」と言われてしまいます。

おかしいなあと思ってネットワーク設定を見ると、
なぜかTCP/IPの設定がDHCPを利用になっていたので、
IPアドレスを固定で振りなおしました。
(OSの基本設定で入れたと思ったのに?!)

また、HDDのドライブが
C:OSをインストールしたドライブ
D:DVDドライブ(Windows Server 2003 R2のisoファイルをマウントした状態)
E:未フォーマットのドライブ
になっていました。
そこで、
C:OSをインストールしたドライブ
D:未フォーマットのドライブ
R:DVDドライブ(Windows Server 2003 R2のisoファイルをマウントした状態)
にドライブ名を、マイコンピュータ→管理→ディスクの管理 で変更しました。

ついでにDドライブをNTFSでフォーマットしました。

後は、別のノートPCパソコンからもアクセスできるように、
リモートデスクトップ接続を受け付けるように設定しました。

とりあえす、WindowsUpdateを実行しようかと・・・
(本当はセキュリティソフトのインストールをすべきなのかもしれませんが、ライセンスがない・・・)

そしたら、なんと101個もの更新があったので、地道に実行しました・・・

今度は、Disk2とActiveDirectoryのインストールを行う予定です。


2011年11月7日月曜日

L2スイッチについて最初の一歩メモ

ネットワークについて、改めて勉強したいと思う今日この頃。
L2スイッチに基礎についてメモメモ。

・MACフレームが届く範囲であれば、相手に対して直接通信ができる。

・IPアドレスからMACアドレスを割り出す、ARPプロトコルで、IPアドレスをブロードキャストすることで、MACアドレスを知ることができる。

・L2スイッチは、ブロードキャストのフレームを全ポートに流す。

・L2スイッチで、ブロードキャストを区切るには、VLANで区切ることになる。

・スイッチは。MACアドレステーブルを持っており、効率よくポートに流すようになる。

・スタック接続は専用のインターフェースで、複数のスイッチを論理的に1台のスイッチに見せる。

・スタック接続は、接続ケーブルが専用バスなので、高速に通信ができる。

・リングアグリゲーションは、物理的に複数のケーブルを、1本の論理的なケーブルとして束ねて扱うことができる機能で、伝送速度の向上と、冗長化のメリットがある。

・スパニングツリーは、複数の経路でスイッチ間を接続することで、冗長化のメリットを持たせることができるが、ループしてしまうことを避けるために、一方の経路のみを有効にしておき、障害発生時に経路を切り替える機能となる。

・スパニングツリーの切り替わりには、数十秒の時間がかかってしまうことと、接続する全てのスイッチが対応している必要があるという注意がある。

・SNMPは、例えば管理用のPCにSNMPマネージャをインストールして、各スイッチのSNMPエージェントに問い合わせを行う。

とな。


2011年11月6日日曜日

Switch初心者1-PortFastについて


私は、ネットワーク関連について本格的に勉強したことがありません。

しかし、仕事でネットワークの設定に関わる必要がでてきたので、聞いたことをメモメモ。
※つまるところ、以下、その程度のレベルの内容です。


対象は、Cisco社のCatalystスイッチです。

ネットワーク構成を単純に言うと、
・L3スイッチの配下にL2スイッチを接続
・L2の下にはPCがぶら下がっています

L2スイッチからの経路(LAN線)の冗長化にあたり、スパニングツリー構成にしました。

STP=スパニングツリー・プロトコルだそうです。


そこで「L2スイッチの各ポートの設定をどのようにしますか」という話がでたのですが、私はスパニングツリーがどんなものかは聞いたことはありますが、具体的な設定や動作や、ネットワーク管理の上での「お作法」なんてまったく判りません。

そこで調べた内容をメモしとこうかと。


■PortFast

何のことだかさっぱりわかりませんので、google it!
From : http://www.ccstudy.org/study/stp/portfast/portfast.html
PortFastはユーザーを収容するアクセス・スイッチが使う機能です。
ユーザーがつながるポートを瞬時にフォワーディングにします。
通常では,スパニング・ツリーを有効にしたスイッチにユーザーのパソコンをつなぐと,スパニング・ツリーのタイマーに則って,リスニング(15秒)とフォワーディング(15秒)を経てフォワーディングになります。
しかし,パソコンだけがつながるポートでは,これだけの時間待つ意味がありません。
それどころか,DHCPでIPアドレスが取れないなどの不都合が生じます。
そこで,「このポートは配下にスイッチがない」とスイッチに明示的に設定して,ケーブルがつながった瞬間にそのポートをフォワーディングにします。
これが,PortFastの機能です。
だそうです。
ということは、これはPCが接続する単一経路のL2のポートに設定するのかな。


■bpduguard


またまたさっぱりわかりませんので、google it again!

From : http://www.infraexpert.com/study/stp1.7.htm

BPDUガードは、PortFastの設定されているポートでBPDUを受信した時、そのポートを error-disable にする機能です。
PortFastに設定されているポートでは、PCやサーバなどが接続されることが前提であり、BPDUを受信するということは、無許可のデバイスが接続されたことを意味します。
また、BPDUの受信はスイッチが接続されたこと意味することから、Layer2ループを防ぐためにも実装すべき推奨コマンドです。
BPDUガードの設定をグローバルで有効にした場合と、I/F で有効にした場合とでは動作が異なります。
BPDUガードをグローバルで有効にした場合、PortFastが設定されているポートでBPDUガードの機能が有効になります。
I/Fで有効にした場合、PortFast設定がポートになくてもBPDUガードが有効になります。

とな。

2011年10月30日日曜日

Windowsでサービスの状態を確認するコマンド

Windowsで動作しているサービスを操作する時、netコマンドで操作したことはありました。

net start サービス名


net stop サービス名


とかです。


端末にSQLServerとか入れているのですが、、普段は端末のリソースを少なからず喰うので、サービスを「自動」とかにはしておかず、「手動」にしています。利用したい時には、

net start mssqlserver

とか、打って起動したり、バッチファイルで、

cmd /c net start mssqlserver

とか作成しておいて、そのバッチファイルをダブルクリックして起動したり。


でも、いざという時、サービス名が思い浮かばなくて困るなんてことがありました。
そこで、サービス名を表示するコマンド。

sc query state= all | findstr /i "display_name state"


以下に、簡単にメモメモ。

sc query

だけでも動作しますが、それだと動作中のサービスだけが表示されるので、

sc query state= all

で停止中も含めて全サービスを確認。「=」と「all」の間にもスペースが必要なことがポイントです。
さらに各サービスの表示情報を絞り込まないと、えらい行になってしまうので、

sc query state= all | findstr /i "display_name state"

として表示用のサービス名と状態だけに絞り込みます。

net start サービス名

のサービス名は、上記のdisplay_nameになるんですね。
(ちなみに、sc自体にも、サービスの開始や停止を実施できるそうです)


で、これがまた、他の端末のも確認できるそうな。

sc \\192.168.1.XXX query state= all | findstr /i "display_name state"

みたいにする...とな。

2011年9月24日土曜日

Virtual PC 2007 上に Windows XP をインストールしました

Windows XP にインストールした Virtual PC 2007 SP1 上に、ゲストOSとして Windows XP SP3 をインストールしてみました。

そこで備忘録としてメモメモ。

用意したもの
・Virtual PC 2007
・新しくインストールする Windows XP Pro SP3 とそのプロダクトキー

Virtual PC 2007 は、既に環境構築(インストール)済みでした。

Windows XP に関しては、Microsoft Tecnet Subscriptions でダウンロードしました。
・Windows XP Professional with Service Pack 3 (x86) - DVD (Japanese)
のisoファイルと、プロダクトキーを入手しました。

早速、Vurtual PC を起動してバーチャルマシンを作成しました。

[新規]ボタンをクリック

「新しいバーチャルマシンウィザードの開始」

オプションの選択:
「バーチャル マシンの作成」を選択しました。
↓ バーチャルマシンの名前と場所:
後で判りやすいように「WinXPProSP3」と名付けました。
私のPCはCとDでドライブを二つに分けています。
CドライブにOSをインストールしています。
Dドライブに MyDocyumentsフォルダを作成しています。
今回のバーチャルマシンは、MyDocyuments内に保存(場所)することにしました。
~ \My Documents\My Virtual Machines\WinXPProSP3\WinXPProSP3.vmc
というわけです。

オペレーティングシステム:
Windows XP

メモリ:
RAMの調整で1024MB(約1GB)にしました。あまり根拠はありません。
後で変更もできるので、あまり気にせず進めます。

バーチャルハードディスクオプション:
「新しいバーチャル ハード ディスク」を選択

バーチャル ハード ディスクの場所:
デフォルトのままにしました。

バーチャル ハード ディスクサイズ:
41,344MB(40GB)

以上で、バーチャルマシンの作成は完了しました。

次に、作成したバーチャルマシンを起動して、ゲストOSとなる Windows XP をisoファイルからインストールします。

画面が黒いまま動き出して、やがてDHCPを探しているような感じです。
ここらへんはあまり気にせず、インストール作業を進めます。
Virtual PCのメニューから「CD」>「ISOイメージのキャプチャ」を選択し、ダウンロードしたWindows XPのisoファイルを選択して、「Enter」キーを押しました。

isoファイルの選択(マウント)が完了したら、バーチャルマシンを再起動します。
「操作」メニュー

「Ctrl+Alt+Delete=再起動」を選択

再起動が実行されると、WindowsXPのインストールが始まりました。
普通のXpのインストールと同じです。
(インストールについては割愛します)

以前に作成した Ubuntu Server と比べてなんと簡単なことなんでしょう。
同じMicrosoft製品ってことが重要なんですかね。
サーバ管理者、Webプログラマ、Webデザイナーにやたらと嫌われるMicrosoftですが、私は結構好きです。
この仮想環境で、Windows Updateの適用状況とか、いろいろと確認ができました。
とさ。

2011年1月14日金曜日

WindowsXPでlocalhostのWebサーバーにアクセスできなくなりました

ブラウザで、「http://127.0.0.1」ではアクセスできるのに、「http://localhost」ではアクセスできなくなったという話です。

PHPを勉強してみたくなってから、自宅のWindowsXPのPCに、Apache、PHP、MySQL、phpMyAdminを設定して利用していました。
開発したものを試したり、phpMyAdminでMySQLにアクセスする時には、ブラウザから、

http://localhost

にアクセスしていました。

が、久々に利用したみたところ、突然、アクセスできなくなってしまいました。
そこで色々調べてみたところ、次のような状況となっていました。

・localhostと同じく、自分自身を指す「http://127.0.0.1」だとアクセスできる。

・名前解決に影響する端末のhostsファイルは、「127.0.0.0 localhost」が確かに有効に記載されている。

・コマンドプロンプトで「nslookup localhost」を実行すると、「127.0.0.1」で解決されて返答が返ってくる。

・コマンドプロンプトで「ping localhost」を打つと、「::1:」のアドレスにpingを打っている(で、返ってこない)。

なんだこの状態は?

ということで、ローカルネットワーク接続を色々見たところ、いつのまにかipv6のTCP/IPサービスがインストールされていました。
「::1:」とは、ipv6のループバックアドレス(自分自身を指すアドレス)だということも判明。
ipv6の設定をした覚えがないのになんで突然・・・・と考えたのですが、一つ思い当たることが出てきました。

最近、NTT西日本のエリアから、NTT東日本のエリアに引越しをしました。
その時、急いでネットから手続き用紙をダウンロードしてプリントアウトしたくなりました。

ネットの接続を設定しようとしたところ、今までのNTT西日本とNTT東日本では、壁の電話線のジャックからPCまでの機器の構成が違っていました。
まだ片付いていない部屋の中で、とりあえずNTT東日本から送られてきた設定CDから「フレッツ接続ツール」だかをインストールし、ウィザードに従って設定することで、とりあえず接続できるようしました。

後日、引越しのドタバタも落ち着きだしたので、改めてルータを利用してLAN環境を構築しなおしました。
PCから行なわれていたPPPoE接続はそのルーターに設定し、PCのネットワーク接続に入っていたフレッツ接続等は、あらかた削除したりアンインストールしたりしました。そして、そのままネット環境は普通に使っていました。

ところが、引越し当初にフレッツ接続ツールをインストールして接続した際に、どうやらipv6を利用する設定もインストールされてしまっていたようです。
近い将来、ipv6の環境も構築しないといけないのでしょうが、

1.私にipv6の知識がないこと

2.とりあえず開発環境を生かすことを優先したい

ので、ipv6の利用を停める事にしました。コマンドプロンプトで、

ipv6 uninstall

を実行して、サービスをアンインストールしました。
(ローカルネットワーク接続のプロパティから行なっても良かったと思います)

その後、PCを再起動することで、無事、http://localhostでアクセスできるようになりました。とさ。

2010年12月19日日曜日

Virtual PC 2007にUbuntu 10.10 Serverを入れてみました

Windows XPにて、既にVurtual PC上に作成したバーチャル ハードディスクに、Ubuntu 10.10 Serverをインストールしました。

ググッてみても(Googleで検索してみても)、Virtual PCにUbuntuのデスクトップ版をインストールしたというサイトは、結構、参考になるものが多いのですが、Server版はあまり参考になるものが見当たりませんでした。
Linuxも素人な私ですが、仕方なく、手探りで進めてみました。

まずは、下記のサイトからUbuntuのisoファイルをダウンロードしました。

Ubuntu
http://www.ubuntu.com/server/get-ubuntu/download

ダウンロードしたのは Ubuntu Server Edition 10.10 32-bit の ubuntu-10.10-server-i386.iso です。

早速インストール作業開始。作成してあったバーチャル ハードディスクを起動しました。

画面に流れだした文字を見ていると、DHCPを探しているような感じでしたが、私の環境にはDHCPは動作させていないので、失敗するだろうなぁと思いつつ暫く待っていました。やがて、

Reboot and Select proper Bppt device
or Insert Boot Media in selected Boot device

という文字が表示されましたので、Virtual PCのメニューから「CD」>「ISOイメージのキャプチャ」を選択し、ダウンロードした「ubuntu-10.10-server-i386.iso」ファイルを選択して、「Enter」キーを押しました。

ここからはマウスでなくキーボードで操作となりました。

「Language」は矢印キーで移動して、日本語を選択(Enter)。

「Ubuntuサーバーのインストール」を選択。

「Keyboard」の選択で、私のキーボードはDell製なので、「DELL」を選択。

「Origin of the Keybord」で、「Japan」を選択。

「Layout」も「Japan」を選択。

次にDHCPを探していていたようですが、やがて、

ネットワークの自動設定に失敗しました
あなたのネットワークはおそらく、DHCPプロトコルを使っていません。または、DHCPサーバが遅いか、何らかのネットワークハードウェアが正しく動作していないのでしょう。

とでましたが、「続ける」にて続行。

「ネットワークの設定」の画面になったので、「ネットワークを手動で設定」を選択して、ウィザードに従ってネットワークの設定をしました。
※Num Lockがかかっているのに気づかず、少し戸惑いました。

以下は私の環境での設定(備忘録)です。
IPアドレス:192.168.***.110
ネットマスク:255.255.255.0
ゲートウェイ:192.168.***.1
ネームサーバーアドレス:192.168.***.1
ホスト名:ubuntuserver
ドメイン名:Workgroup(家庭内のWorkgroup環境なので、何でもいいと思って)

「パーテーショニングの方法」で、LVMというのがよく分かりませんでした。
ここは「ディスク全体を利用する」を選択しました。

「パーテーショニングのディスクの選択」は、選択肢が1つだったので、そのまま。

「ディスクのパーテーショニング」で、「はい」を選択しました。

ユーザーとパスワードの入力を求められました。
以下は私の環境での設定(備忘録)です。
フルネーム:mac******
ファーストネーム:mac
パスワード:*******

「ホームディレクトリの暗号化」は、必要ないと思い「いいえ」を選択。

「HTTPプロキシの情報」は、空欄のまま「続行」。

「システムのアップデート」は、「自動的にアップデートしない」にしました。ここら辺は、個人のネットワークでのテスト利用でなければ、考えないといけませんね。

いろいろなサーバー機能を追加インストールするか聞いてきました。
「LAMP Server」とかは興味ありますが、とりあえず、後で追加設定するのも勉強になるかと思い、とりあえず何も選択せずに「続行」。

「grub-pcを設定しています」ということで、マスターブートレコードにGRUBブートローダーをインストールしますか?」ときかれました・・・正直、わかりません。しかし、私の環境ではこのようにも聞いてきました。

「ここでインストールされるものは、このコンピュータの唯一のオペレーティングシステムのように見えます。もしそうであるならば、あなたの1番目のハードドライブのマスターブートレコードにブートローダーをインストールするのが無難でしょう」

とあったので、「はい」を選択肢ました。

これでインストールは完了です。
暫くするとUbuntuの起動メニューが表示されました。

ところが、感激も束の間、突然、Windowsのエラーメッセージが!

「回復されないプロセッサエラーがでました。バーチャルマシンはリセットされます。」

Virtual PCででたエラー

ガーン!

とりあえず、色々とググッて(Googleで検索して)みると、起動オプションを追加することで、回避ができるようでした。

エラーメッセージは「はい」で閉じることができますが、同じエラーがループのように繰り返されます。
そこで、Ubuntuの起動メニューが表示されてる間に、「E」を押します。

UbuntuServerの起動メニュー

すると、「GNU GRUB」というタイトルの画面が表示されます。
その画面で、矢印キーで中段以降にある「quiet」という文字の後ろまで移動します。
そして、スペースを一つ空けて、次の文言を付け加えます。

noreplace-parvirt vga=791

※私の環境では、Num Lockがかかっていたので、その点、注意が必要でした。
※なぜかこの入力の時だけ、「=」を入力するのにキーボードの「^」を押さないとでませんでした。

Ubuntuの起動にオプションを追加した画面

そして、起動をするために、

Ctrl+X

を押します。

やがて、Ubuntu Serverのログインの文字が画面に現れました。これで、何とかUbuntu Serverの起動は成功です。



しかし、このままでは、毎回、起動時に同じ処理をしないといけないようでした。
そこで、起動時の設定ファイルに、予め同じ処理を書き込んでおくことで、普通に起動できるようになるとのことでした。

ユーザー名とパスワードを入力してUbuntuにログインすると、

username@domainname~$

というった、「ユーザー名@サーバー名~$」が表示されれば、ログインOKのようです。

これから設定ファイルを編集します。設定ファイルの編集は、どんなシステムでも緊張します。誤った設定をして、システムがおかしくなるのは自己責任だからです。

ファイルの編集は、Ubuntuに始めから入っている vi というテキストエディタ(コマンド?)で行ないます。

viコマンドの引数にファイルのパスを指定するようです。今回操作するファイルは、

/etc/default/grub

になります。

また、このファイルの編集には、管理者権限が必要だそうで、Ubuntuでは管理者権限で操作するには、頭に「sudo」をつけるそうです。この為、次のように入力して、viでgrubファイルを編集します。

sudo vi /etc/default/grub

パスワードを訊いてくるので、自分のパスワード(ログインした時と同じ)を入力します。

vi が起動すると、grubファイルの中身が画面に表示されます。
但し、viの操作は、私のようなWindowsユーザーには、異質のものでした。カーソルの移動や検索を行なうモードと、文字を入力するモードを切り替えながら編集します。詳細は下記のサイトを参考にしました。

Homeserver on Vine Linux
http://www.jitaku-server.net/vi.html

まずは、
jキー(下へ移動)、lキー(左へ移動)で

GRUB_CMDLINE_LINUX_DEFAULT="quite"

の「quite」の後へ移動します。

ここで、「noreplace-parvirt vga=791」を追加するために、編集モードへはいる「i」キーを押します。
すると、Windowsのノートパッドで編集するのと同じ感覚で文字が入力できるので、

GRUB_CMDLINE_LINUX_DEFAULT="quite noreplace-parvirt vga=791"

とします。そして編集モードから抜ける為に、「Esc」キーを押します。そして、保存して終了する為に、

:wq

を入力して「Enter」キーを押すと、grubの編集は終了です。
最後に、編集したgrubファイルの設定を、起動時に反映するために、

sudo update-grub

を実行しました。
これで、一旦、「Exit」と入力してログアウトします。

Ubuntuを起動しているVertual PCの画面も一旦、「×」閉じして、再度、Ubuntuのバーチャルハードディスクを起動します。

すると、最初の1回目は同じエラーがでます。でも、その後は、エラーもでずに進むようになりました。とさ。

2010年12月18日土曜日

Virtual PC 2007で初めてバーチャルマシンを作成してみました

Windows XPにインストールしたVirtual PC 2007 SP1にUbuntu 10.10 Serverをインストールしたいと思い、まずは、前準備として、Vurtual PCに下地となるバーチャルマシンを作成するまでを行ないました。

しかし、Virtual PCも初めてなら、Linux系OSをインストールするのも初めてです。操作をしたことはありますが、GUIのついたもので、正直、LinuxのLの字もわからない私です。
Linuxを一から勉強する気持ちでやってみるつもりです。

Vertual PCを起動して「新規」ボタンで新しいバーチャルマシン(仮想環境とでもいうのがいいんでしょうか?)を作成しました。

ウィザードが始まったので、指示に従って作成を進めました。

オプション:
バーチャルマシンの作成

名前と場所:
名前はなんでもいい様ですが、後々、インストールした内容が判り易いように「Ubuntu10.10Server」としました。
個人的に、名前に「.」を入れるのは余り好きではないのですが、なんとなくバージョンも付けて名前管理した方がいいかな・・・と。
場所に関しては、私は色々な保存先として、Dドライブを作成してそこに集めているので、任意の場所に変更しました。

オペレーティングシステム:
その他

メモリ:
RAMの調整で1GB(1024MB)を割り当ててみました。
ちなみに私のPCは、マイコンピューターの「システムのプロパティ」で見ると、3.25GBバイトのメモリを搭載しています。
タスクマネージャーの「パフォーマンス」のところで見ると、「物理メモリ」の「利用可能」の欄には2GB以上の空きがありました。

バーチャル ハードディスクオプション:
新しいバーチャルハードディスク

バーチャル ハードディスクの場所:
先の場所と同じところにして、20GB(19968MB)を割り当ててあげました。

これにてVirtual PCの方の設定は完了のようです。
正直、メモリやHDDの割り当ては感覚で、テスト+ある程度(がっつりでない程度)の利用ができるぐらいは割り当てたつもりです。

まあ、最悪、手間はかかるけど、調子が悪そうならバーチャルマシンを削除してやり直してもいいや、という気軽な気持ちもありました。

後で、ここにUbuntuをインストールしてみます。とさ。

2010年12月12日日曜日

WindowsXPにphpMyAdminをインストールしました

MySQLを利用するのに、phpMyAdminをインストールしました。そのメモです。

MySQLをグラフィカル(?)に利用する為のツールです。下のサイトからダウンロードしました。

『phpMyAdmin』
http://www.phpmyadmin.net/home_page/downloads.php

ダウンロードしたのは次のファイル。

phpMyAdmin-3.3.8.1-all-languages.zip

解凍してできたフォルダの名前を「phpMyAdmin」にして、Apacheのhtdocsフォルダの直下に配置しました。
それで早速、

http://localhost:8080/phpmyadmin/
※私のパソコンではApacheを8080番ポートで利用しています。

とアクセスしてみましたが、エラーが表示されました。どうやらPHPでMySQLを利用する為の準備ができていなかったのでエラーとなったようです。

そこで、PHPのphp.iniで、

extension=php_mysql.dll

を、文頭からコメント文字を消して利用できるように変更しました。
するとどうでしょう、見たことのあるphpMyAdminのページが表示されるようになったではありませんか。

でも、ページのかなり目立つ部分に、下のエラーチックな表示が表示されていて、どうにも目障りな感じす。

・「設定ファイルが秘密のパスフレーズ (blowfish_secret) を必要とするようになりました」

・「リンクテーブルを処理するための追加機能が無効になっています。理由についてはこちらをご覧ください」

それで、これらを表示されないように、ググッて(Google検索して)、設定を変更しました。
2つあるのですが、どちらも、phpMyAdminの設定の変更です。phpMyAdminのフォルダの中にある

config.sample.inc.php

というファイルをコピーして、

config.inc.php

としてconfig.sample.inc.phpと同じ位置に保存しました。

ますは、「設定ファイルが秘密のパスフレーズ (blowfish_secret) を必要とするようになりました」です。
どうやら「秘密のパスフレーズ」とやらを設定するといいようです。config.inc.phpの下記の文に、「XXXXXX」を
付け加えました。

$cfg['blowfish_secret'] = '';

$cfg['blowfish_secret'] = 'XXXXXX';
※XXXXXは任意です。

つぎに、「リンクテーブルを処理するための追加機能が無効になっています。理由についてはこちらをご覧ください」です。
実際に「こちらをご覧下さい」の内容を確認し、config.inc.phpの以下の文の文頭のコメント記号を消しました。

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';

ところが、「pmadb」以外は「Not OK」として依然として解消されません。悩んだのですが、どうやら、

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';

の「phpmyadmin」というデータベースを作成しとかないといけない様子でした。
phpMyAdminのフォルダの下に「scripts」フォルダがあり、その中にある

create_tables.sql

を実行すればいいそうです。そこで、Cドライブの直下にコピーしてコマンドプロンプトで

mysql -u root -p < C:\create_tables.sql

としてSQL文をMySQLで実行すると、phpmyadminというデータベースが作成されました。
これで、改めてブラウザでphpmyadminにアクセスすると、すっきりと表示されました。とさ。

WindowsXPにMySQLをインストールしてみました

最近、Apache + PHP + PostgreSQL の環境にてPHPの勉強をしていました。
ちょっと身につくと、実際に「自分以外に向けて公開できるものを作ってみよう」と考えるようになりました。

そうすると、利用しているレンタルWebサーバー(スペース?)などの点から、データベースはMySQLにしておいたほうが何かと都合がよさそうなので、MySQLを自宅の端末にインストールしてみることにしました。
以下はその際のメモです。

まず、MySQLを以下のサイトからダウンロードしました。
『ORACLEのMySQLのサイト』
http://dev.mysql.com/downloads/mysql/#downloads

この中にある
「Windows (x86, 32-bit), MSI Installer Essentials - Recommended」
との名前で掲載されていた、以下のWindows用インストーラータイプのファイルをダウンロードしました。
mysql-essential-5.1.53-win32.msi

次にインストールを行なったのですが、基本的にはウィザードの進行そのままですが、以下のサイトを参考にしました。

『九州大学 大学院システム情報科学研究院 金子 邦彦 研究室 Web ページ MySQL インストール (Windows の場合)』
http://www.db.is.kyushu-u.ac.jp/rinkou/mysql/mysqlinstall.html

インストーラーでインストールすれば、既にパスが通っているはずなので、MySQLに早速アクセスしてみました。
コマンドプロンプトを起動して、

mysql -u root -p

と実行すると、

Enter password:

とパスワードが求められたので、インストール時に設定したパスワードを入力してみました。すると、

ERROR 2003 (HY000):Can't connect to MySQL server on 'localhost' (10061)

のエラーが表示されました。なんだろう?と思って上のエラー文章でググッてみる(Google検索してみる)と、次のページにずばり。

『MySQL でいこう!』
http://mysql.deikou.com/pages/000103.html

サービスとしてMySQLが実行されてなかったんですね。
そこで、コマンドプロンプトで、

net start mysql

としてサービスを開始しました。とさ。