このブログを作成している際に、特定の記事だけ簡単な認証を行いたかったので、 PHP で BASIC 認証 っぽいことをやってみた。
実装は簡単で、ユーザが BASIC 認証を行った場合 PHP_AUTH_USER と PHP_AUTH_PW 環境変数にその際のユーザ名とパスワードが復号化されて格納される。
これを PHP で認証して、違ったら 401 エラーを返せばいいだけ。
$signin = false; if (isset ($_SERVER['PHP_AUTH_USER']) && isset ($_SERVER['PHP_AUTH_PW'])) { if ($_SERVER['PHP_AUTH_USER'] == 'masaki' && $_SERVER['PHP_AUTH_PW'] == 'password') { $signin = true; } } if (! $signin) { header('WWW-Authenticate: Basic realm="Enjoi Blog"'); header('HTTP/1.0 401 Unauthorized'); print "Error 401"; exit; }
Visual Studio + PuTTY + TortoiseSVN + AnkhSVN でフリーな GUI svn+ssh 環境を構築してみた。
前回で svn+ssh 環境を構築して Linux からは svn コマンドで簡単にアクセスできるようになったんだけど、
肝心の Windows からのアクセスがまだできてなかったのです。
Subversion の構築メモはCentOS に Subversion を導入するを、 svn+ssh 環境の構築メモはCentOS で svn+ssh 環境の構築を参考。
次回の CentOS に Subversion を導入する では単純に over http の SVN 環境を導入したけど、
実際にソースを公開して、一方でソースを更新するにはアクセス制限をしとく必要がある。
今回は svn+ssh を構築して、 ssh アクセスでの更新のみを許可する環境を作ってみた。
最近 Linux と Windows を交互に切り替えて使ってるので、共有レポジトリでバージョン管理したいなと思い、
SVN をセットアップしてみた。そのときのメモ。
ただなんか色々調べてると Mercurial というのが結構あついみたいだね。
Mercurial - Mercurial
Windows から使いづらそうだったのでパスしたけど。
DAG(rpmforge) は redhat 及び fedora 向けの追加パッケージ群です。
DAG
これのレポジトリを CentOS 5 の yum に追加しておけば、 CentOS でもほぼ完全に使用できます。
レポジトリに追加するには以下の URL から追加用の rpm を取得してインストールするだけです。
rpmforge
RPM は Redhat 5 用のやつなので、
rpmforge-release-x.x.x-x.el5.rf.yyy.rpm
になります。
もちろん CentOS 4 とかなら Redhat 4 用のやつになるので、 el4 というやつを使ってください。
これをインストールすると /etc/yum.repos.d/ 配下に rpmforge.repo が追加されて、 yum を実行した際の検索対象になります。
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm追加パッケージはかなり豊富。ちなみに livna との関連は知りません。
例えば www.enjoitech.jp と blog.enjoitech.jp でセッションを共有したい場合は、 php のコードの session_start () 関数の前に、 session_set_cookie_params() でクッキーの影響範囲を enjoitech.jp にしてやることができる。
session_set_cookie_params (0 , '/', 'enjoitech.jp');もしくは php.ini で
session.cookie_domain "enjoitech.jp"でも可能。
Windows の共有フォルダをマウントするには、
smbfs を OS がサポートしているなら、 mount コマンドで windows の共有フォルダをマウントできる。
$ mount -t smbfs -o username=hoge,password=hoge01 //192.168.0.100/pub /mnt/smbfstab に書く場合は以下のようにする。
//192.168.0.100/pub /mnt/smb smbfs noauto,username=hoge 0 0
ただ GUI から参照するなら最近の Linux は Network Servers メニューから Windows Network がのぞけるので、ほとんど Windows と同じ感覚で使えますね。
totem は gnome 標準の動画再生ソフトで、 CentOS 5 にも標準でインストールされてます。
これ実は backend で gstreamer か xine を使用して再生するようになってるんだけど、
標準の gstreamer のプラグインは WMV とか AVI, FLV とか全然再生できない。
これを xine 向けの totem でパッケージングしなおして、インストールして動画を再生できるようにしてみた。
リアルプレイヤーを CentOS5 にインストールするには、 compat-libstdc++33 を入れる必要があるらしい。 libstdc++ のバージョンが 6 でリアルプレイヤーは 5 を要求するから。
# yum install compat-libstdc++*
次に以下のサイトでインストール用のバイナリをダウンロードしてインストールする。
RealPlayer for Linux
# chmod 755 ./RealPlayer10GOLD.bin # ./RealPlayer10GOLD.bin
新たにレコード INSERT 時に、シーケンスキーの次の値を特定の項目にセットする場合は以下のように行う。
INSERT INTO TBL_NAME VALUES (nextval ('seq_name'), 1, 2);
また、その結果インクリメントされたシーケンスキーの値を参照するには
SELECT currval ('seq_name');
さらに、シーケンスキーの値を設定しなおしたい場合は、
SELECT setval ('seq_name', 10);SELECT setval ('seq_name', 10, false);
となり、前者は nextval の結果が 11 となり、後者は 10 となる。
たまに Access で作成したマクロやフォームから特定の文字列を検索したいときなどがあり困るんですが、
実は Access のマクロやフォームはテキストファイルに変換できます。
しかも簡単な VB スクリプトを書くだけ。
そのやり方のメモ。
Youtube を始めとする動画共有サイトで多く使用されている FLV 形式のムービーを Linux で作成してみた。
あまりこの分野詳しくないんだけど、 AVI ってやつと WMV ってやつ MPEG って拡張子のやつは変換できた。
環境は以下のとおり。
CentOS 5
Mouse Gesture は時に便利ですが、時にうざいです。特にホイールパッドを使ってると、用もないのにがんがん操作されてしまうこともあります。
で、 FireFox の設定を立ち上げて無効にしようとしたのですが、設定項目が見当たりません。ないのでしょうか?少なくても Linux 版の FireFox には見当たりません。
しかたがないので、 All-in-One Gestures というプラグインをインストールしてこれを無効化しました。
All-in-One Gestures
本当にこれしか方法がないかは分かりません。
# getenforce Disabled状態を変更するには /etc/selinux/config の SELINUX パラメータを変更します。
# vi /etc/selinux/config
SELINUX=disabledenforcing とかそういうのは次回ってことで。
CentOS 5 の Rhythmbox は標準で mp3 に対応してないし、追加パッケージも存在しないみたいです。
でも DAG にある gstreamer のプラグインを追加すれば再生できるようになります。
DAG を yum レポジトリに追加したら、 gstreamer-plugins-ugly をインストールします。
# yum install gstreamer-plugins-uglyDAG を追加する方法は CentOS 5 で DAG(rpmforge) の yum repository 追加 を参照。
CentOS 5 に限らず Linux では alsa を使ってサウンドを再生してるが、ほとんどの Linux で複数のアプリケーションからサウンドデバイスを共有して音を出すことがデフォルトでできない。
例えば rhthmebox で音楽を再生していると gaim のサウンドが再生されなかったりするわけ。
これを有効にするには alsa の dmix プラグインを有効にすればいい。
CentOS 5 + Let's note (Intel® PRO/Wireless 2200BG) で無線 LAN の設定をした。設定をしたと言っても別に大したことはしてないんだけど。
Linux の時間を合わせるには ntpdate コマンドを使って外部の ntp サーバと同期をとるのが簡単です。
ntp server の一覧は http://www.pool.ntp.org を参照。
# ntpdate jp.pool.ntp.org
Visual Studio .Net/2003/2005 などがインストールされてるマシンで、 ASP .NET のプロジェクトを作成する際に、「ASP .NET Version 1.1 が実行されていません」みたいなメッセージが表示されて、作成できないことがある。
これは、 IIS を再インストールしたり、 .Net は 1.0 、 2003 は 1.1 、 2005 は 2.0 と、 Visual Studio のバージョン毎に動作する .NET のバージョンが違うことから起きたりする。
このエラーを解消するには、 IIS で動作させたい ASP .NET のバージョンにしてやればいい。実際には以下のコマンドを打つ。
1.1.4322 の場合。
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322>aspnet_regiis.exe /i ASP.NET (1.1.4322.0) のインストールを開始します。 ASP.NET (1.1.4322.0) のインストールが完了しました。
もしくは「管理ツール」の「インターネット インフォーメーション サービス」、「既定の Web サイト」のプロパティから、 ASP .NET タブを開いて変更することもできる。
.Net から MySQL に接続するには MySQL AB がリリースしている MySQL Connector/Net を使用します。
MySQL® Connector/Net
MySQL はフリーでかなり優れているので、 .Net からの使用用途もかなり増えました。
とりあえず Visual Studio 2003 で C# ASP .NET から MySQL に接続しました。