サーバー

sshでサーバーに接続

2012年05月15日
ここ数日またまた片頭痛の発作が起こっていましたが、今日やっと動けるくらいに回復しました。まだ痛いですが。

使っているレンタルサーバーがTelnet接続サービスを終了し、sshに移行したので、時間ができたらできるようにしておかなければと思っていた【sshでサーバーに接続】をやってみることにしました。決して時間ができたわけではないのですが。

まず、sshをサポートしているソフトを入手します。今まで使っていたソフトはサポートしていないのです。
Windowsでは
TeraTerm
Poderosa
などがあるようです。今回は【TeraTerm】で接続することにしました。
インストールそのものは簡単でした。
Tera Termの使い方−Tera Termのダウンロードとインストールを参考にしました。

インストールが済んだら、次はいよいよ接続です。
公開鍵、秘密鍵の作成方法はTera Termの使い方−SSH鍵の作成が参考になります。

ここで困ってしまいました。どうやって使うんだ???
Tera Termの使い方−SSH鍵の作成にあるように、公開鍵をサーバーに登録するのは、本当に管理者に聞かないといけないのかな・・・

検索していると、こんなサイトがありました。
TeraTermProで公開鍵認証を使う−公開鍵をサーバーに登録する
この通りにやってみました。
万歳!!接続!

後は、SSH公開鍵暗号化方式−サーバ側(接続受け側)の設定にあるように、パーミッションを変更しておきます。【600】では動かなかったので、【700】に設定しました。

これで完了。やれやれです。
それにしても、TeraTerm、使いにくい・・・
設定で使いやすくなるのだとは思いますが。
少しずつ慣れながら、設定を変えていくしかないかぁ。

サーバー

これで自動認識?・・・でも不安

2012年05月04日
ぶつぶつ書いてしまったqmailのバグですが、これでMTAを自動認識できるようになるかもしれません。

以前、何のMTAを使っているか判別する方法を探したとき、PHPのiniファイルの設定を読む方法しか見つけられなかったのですが、今回別の視点から検索していたら、見つけました。
ちょびろぐ
system関数を使って調べるようです。
設定ファイルを辿っていけば、どこかにMTAがわかる記述があるはずだとは思っていましたが、system関数で調べられるんだぁ。勉強、勉強。

しかし、どうやら重たいらしいです。まいったなぁ。
私としては、こんな苦労はしなくても、SMTPポートを直接開いて送信してしまったほうが後腐れなくて、すっきりして、爽快なんですが・・・
ポートを開くとなると、IDやPWをどこかに保存しておかなければいけません。(もしかしたら自動取得できるのかもしれませんが、どうせ面倒でしょうし、そうなるとどっちが良い方法かわからなくなってきます。)
ユーザーさんにも設定してもらわなければいけませんし、極力ファイルに保存しておきたくありません。
もちろんステップメールやメールマガジンのように大量配信する場合は、PHPのmail関数は不適切ですから、SMTPポートを開きます。ですが、一度に送信するのが1通や2通の場合は、ユーザーさんの設定を軽くしたいな、と思います。

Qdmailに組み込まれているソースを使いやすいようにアレンジして、試してみました。
動いているっぽいです。確かに、qmailのときはステータス111を返し、sendmailでは1を返してきます。
でもソースにある100はどんなときに返ってくるんだろう?

まぁ今の状態より、より正確な自動判定ができると思うので、導入しようと思います。
でも、今の手動で設定する方法も残しておくつもりです。
世の中思わぬ動きをするサーバーがあるかもしれません。自動判定できない場合に備えて手動も残しておいたほうが安心です。せっかく今機能があるんですから。

重たいらしいし、ツールの管理画面を開いたとき判定して、設定に反映したほうがいいかな?
送信前に一度だけチェックすれば、さほど負荷はかからないかな?

サーバー

こんな便利な機能が!!!

2012年05月03日
使っているレンタルサーバーが、Telnet接続を終了させ、今後はsshによる接続のみ利用できるようになってしまいました。
今まで、DBのテーブル作成、cronの設定はTelnetで接続して行っていたので、今後のためにも、sshの接続ができるようにしておかなければいけません。

もっとも、テーブル作成やcron設定が、サーバーの管理画面からできれば、私の場合なにもsshで接続する必要はないのですが。

接続方法を見ていると、なんだか面倒そうです。管理画面からできればなぁ。大抵のサーバーはできるようになっているのですが。
ということを思いながら、管理画面を見ていると、SQL管理ツールというプルダウンが目に留まりました。もしかして。
選んでみると、DB接続でき、SQLが発行できるではありませんか!!
しかもMySQL、PostgreSQL両方いけるではありませんか。
なんだ、Telnetで面倒な接続をしなくても、テーブル作ったり、中身をちょっと見てみたり、できるんじゃない!
なんで今まで気がつかなかったんだぁぁぁぁぁ。

後はcronの設定か管理画面からできれば、ssh接続は今のところ必要なくなります。

そう言えば、cronを管理画面から設定できるようにするって以前言ってたなぁ。
調べてみると、2008年8月に機能を付けます!とお知らせがきています。
でも管理画面のどこにも見当たりません。隠れているのかな?

やや期待して、問い合わせてみました。すると、準備はしているから待って、できるまでsshから設定して、とのこと。cron設定の機能を付けるのに、4年もかかるのか!? そんなわけないでしょうに。

cronの設定はWebからできるようにならないか、何度もチャレンジしたのですが、どうしてもできませんでした。
ネットに書いてある方法はことごとく当てはまらないのです。
なんとかならないかなぁ。

サーバー

メール受信と同時にCGIを実行

2011年06月01日
以前からあったほうがいいのかなと思っていた、【ビジネス羅針盤 ステップメール】への空メール登録へ対応してみることにしました。
空メールだけでなく、本文に姓名が書いてあれば、名前も登録されるようにしたいと思います。

これを実現するためには、メールを受信したらCGIを実行する、という設定がサーバーに必要になります。
この設定ができるものに、【aliases】、【procmail】、【.forward】ファイルがあるようです。
レンタルサーバーで一番使われているのが、【.forward】ファイルのようなので、ここでは【.forward】ファイルで試してみることにします。
しかしサーバーによっては、セキュリティ上設定を許可していないものもあるようです。

設定は簡単で、
【"| phpのパス -q 実行したいCGIのパス"】
となります。

【"| /usr/local/bin/php -q /usr/home/xxx/yyy/run.php"】
のようになります。
ご自分のサーバーの環境に合わせてパスは変更してください。
これでメール受信と同時に【run.php】が実行されます。

【.forward】ファイルはメールの転送を設定するファイルですが、転送先にCGIファイルを指定すると、プログラムを実行できるようになります。

【.forward】で転送を設定する場合は、無限転送にならないように十分注意してください。永遠にメールが転送され続け、サーバーに無駄で過大な負荷がかかることになります。

サーバー

パラメータ(クエリ)の付いたURLをRewriteRuleを使ってアクセス制御

2009年09月30日
再度、RewriteRuleを使ってアクセス制御の必要に迫られました。

今度は、URLにパラメータ(クエリ)が付いています。

色々やってみたのですが、うまくいきません。
やっとたどり着いたのが、サーバー変数です。

例えば、
http://sample.ooo/sample.html?id=ABCD

http://sample.ooo/sample/sample.php?id=ABCD
へ飛ばしたいときは

--------------------------------------------------------------------
RewriteEngine on
RewriteRule ^sampel\.html$ /sample/sample.php?query=%{QUERY_STRING} [L]
--------------------------------------------------------------------

です。

ただ、
http://sample.ooo/sample.html?id=ABCD&code=EFGH

http://sample.ooo/sample/sample.php?id=ABCD
となります。


このほかにも便利なサーバー変数が色々あります。

こねくり回して、やっと思う動きを実現できました。

サーバー

RewriteRuleを使ってアクセス制御

2008年11月25日
以前から自分のブログを見て気がついていたのですが、例えば、
http://sample.xxx/sub_dir/
へアクセスすると、sub_dirは存在しないのに、きちんとページが表示されています。

これは一体どういう仕組みなのでしょう。

始めは、
http://sample.xxx/index.php
など、トップディレクトリのインデックスファイルでアクセスを制御しているのかと考えました。が、これでは制御できない気がします。


となると、http://sample.xxx/ へアクセスを制御するファイルをおき、特定のディレクトリやファイルへのアクセスを、別のファイルへ飛ばしているのでしょう。

そしてそれは多分【.htaccess】ファイルです。


自分のブログを調べると、ありました。【.htaccess】。
中身を見ると、なにやら書いてあります。わからないので、ネットで調べてみました。

やはり、思ったとおりです。【RewriteRule】を使えばよいそうです。サーバーがApacheなら使えます。

--------------------------------------------------------------------
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?file=$1 [L,QSA]
--------------------------------------------------------------------

これを【.htaccess】に書き込み、http://sample.xxx/ へおきます。
http://sample.xxx/sub_dir
にアクセスかあると、http://sample.xxx/index.php?file=sub_dir へとばすことができます。

あとは、index.phpで$fileの値を調べ、表示するページを作ればOKです。


RewriteRule
が参考になります。


また1つ勉強になりました。
2012年05月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・考えること
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやってます。やっと派遣期間が終了し、ビジネスへ注力しようかと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL

RSSフィールド