Windows」タグアーカイブ

PHPからバッチファイルを実行してpsql.exeを実行する方法

windowsシステムで稼働しているApache,PHPから、PostgreSQLへのテキストファイルのインポートを実施したいのですが、
PHPのexecでコマンドを実行するとなぜかブラウザがタイムアウトするまで読み込み中。
しかも、処理が完了していない。

execのコマンドの構文が間違っているのか?
調べたところ、psqlコマンドに-cと-qのオプションがないと対話式になってしまう。

-c ‘SQL’ クエリ(SQL)を直接実行
-q psqlが対話なしに実行される。

しかし、状況変わらず。

一度バッチファイルに処理を書き出して実行するもNG.
しかし、サーバー上でバッチファイルを実行すると正常動作。

さらに調べたところ、パスワードの入力待ちではないのか。
そもそもwindowsのApacheはサービスで稼働しており、daemonとして実行。
パスワードファイルを作成するとコマンドプロンプトではパスワード聞かれないみたい。
(参照:http://www.postgresql.jp/document/8.4/html/libpq-pgpass.html)

環境変数にセットすればいいのでは。
バッチファイルの先頭にパスワードセットのコマンドを出力するように変更。
SET PGPASSWORD=xxxxxxx

正常に動作しました。

出力やエラーが出ないのでハマりました。

実は何の機能か分からないショートカットキーランキング(gooランキング)

ショートカットキーってみなさん使っていますか?
私は、Windowsを使っていてショートカットキーはよく使います。
基本的にマウスで操作するよりもキーボードで全部操作できてしまうのが一番早いですし、手の移動が少なくてすみます。
1位にランクされている「Windowsロゴキー + R」も頻繁に使います。
コマンドプロンプトを立ち上げるときには、「cmd」
電卓を表示するときには「calc」
ネットワークコンピュータを見に行くときには「¥¥IPアドレス」
など。
しかし、中には知らない機能もあったりして参考になったランキングでした。

HOSTSファイルの存在忘れてた

以前、こちらで書いたDNSの設定についてなんですが、初歩的な点を見落としていました。

ずっとDNSサーバ側で設定をしなければいけないと思い込んでしまっていて、忘れていました。

「HOSTS」ファイルの存在を。

 

最近は存在自体薄れているような気がするのですが、昔は結構重要なファイルの一つで設定をする必要があったんですよね。

今でも重要なファイルなんですけど、自動的にWindows側で設定してくれていたりして意識することなくネットワークが利用できるんですよね。

 

ここでHostsファイルとは?って人に簡単に説明すると、Windowsのシステムファイルの一つで、そのPC内でサイト名などをIPに変換するためのものです。

場所はどこにあるかというと、

Windows XPの場合→「C:\WINDOWS\system32\drivers\etc」
Windows 2000の場合→「C:\WINNT\system32\drivers\etc」
Windows 95/98/MEの場合→「C:\Windows」

にあります。

さて、本題に戻るんですけどわざわざDNS側で設定しなくても、内部のPCのHostsファイルにドメイン名とローカルIPアドレスを記載してあげることで一発解決。

 

灯台下暗しってやつですね。