というわけで、インストールマニアックスの予選が終了しました。皆様お疲れ様~。
私の結果はこちら。
http://moonmile.net/im/
所感&反省も含めて少し書き残しておきます。
私の場合 PHP は初めてなのですが、IIS のほうは結構手を付けて調べたことがあるので、SE とのハンディとしては似たり寄ったり。むしろ、Linux+PHP+MySQL の組み合わせが多いでしょうから、ちょっと楽だったかもしれません。
たくさんのOSSを次々とインストールするというのが課題なので「インストールできない」とイライラが募りました。このイライラは、最初プログラム根性で何かとPHPのソースを調べてあれこれやろうとしていたのですが、結局は前回のインストールマニアックスのドキュメントが一番参考になりました。また、元の正式のドキュメント(英語が多いけど)を読むとアクセス権なんかは意外としっかり書いてありました。まぁそれなりに抜けも多いのですが。
OSSのCMSをインストールし続けて思ったのは、意外と、というか当然の如くインストールするためのファイル名が決まっています。
– install だったり
– config.php だったり、
– config.ini.php だったり、
– setup だったり
と一定はしていませんが、なんとなくルールがあります。PHP を全くやって来なかったのでわかりませんが、これが PHP で WEB アプリケーションをインストールするときの「文化」なんだろうなぁと感じました。
データベースなどの設定は、
a) config.php に直接
b) 一画面でがっつりと設定
c) ウィザード風
の3パターンがあります。やりやすいのは、a)かc)ですね。b)のように、何画面もスクロールする場合、何を設定してよいものやら分からなくなってしまいます。ただ、ウィザード風にしても十数画面続くのはうんざりしてしまう訳で、現在の位置(パンくず)があればいいのかなと。これはそれぞれの OSS の工夫のしどころ、という感じがします。
PHP の場合、外部のレンタルサーバーにリモートで設定、ということが通常なので、エクスプローラを開いたり、なにやらリブートしたり、ということができません。ほかのユーザの MySQL と混在していたり、そもそも PHP の設定が同居していたりするわけで、社内で IIS を使っているのと訳が違います。なので、当然の如くブラウザで設定、が必須になってきます。また、アクセス権の設定は telnet か ftp で設定します。これもやっぱり、windows と linux の違いが大きくて、IIS の場合は GUI でできる分「何が何処にあるのか知っていないとうまくできない」というところに陥りがちです。
telnet を使う場合は、コマンドラインしかないので、コマンドを打つ、つまりはコマンドを探すことになるのですが、Windows + IIS の組み合わせだと、画面のあちこちをマウスでぽちぽちクリックして探す、コントロールパネルを検索する、など手がややこしい状態になります。勿論、windows であってもアクセス権をコマンドラインで設定ができるし、PowerShell を使えば IIS の設定もできるわけですが、、、chmod 777 config.php ほどには手軽ではないのが難点です。
windows の場合は icacls コマンドを使うことができるので、例えば IUSR のフルアクセスを与える場合は、次のように打ちます。
C:\apps\Zikula\config>icacls config.php /grant iusr:(F)
処理ファイル: config.php
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでしたC:\apps\Zikula\config>icacls config.php
config.php NT AUTHORITY\IUSR:(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
IM-SV\masuda:(I)(F)
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでしたC:\apps\Zikula\config>
と「icacls」ってなんの略なんでしょうね?「Control ACLs」に「I」が付いている訳で、「I Contol Access Control List S 」の略なんですが。この略称が打ちにくい!更に、メッセージがよくわからん!、というわけで今回使っておりません。
↓に色々使い方があります。
http://www.atmarkit.co.jp/fwin2k/win2ktips/718edtcacls/edtcacls.html
いや、対策としてはバッチファイルを作ればいいんですけどね。そういれば、PowerShell には alias の機能があったわけですが、どうなんでしょう。chmod 互換のものがあるかな?google で「PowerShell chemod」で検索すると 2ch がトップに出るので職場で見るときは注意が必要(苦笑)。
PowerShell の alias には ls が登録されているし、cd /apps のように「/」でディレクトリを移動できる。まぁ、cgwin を使って unix コマンドを使ってもいいのだけど windows server の標準環境としてはそれなりに使える、かもしれず。
閑話休題。
という訳で、今回良かった点として、
– 無理矢理 PHP に触ることができた。PHP.ini の設定もなんとなく覚えた。
– PHP の OSS を比較することができた。新しい PHP の OSS はこれに準じるだろうからインストールの勘所は分かったと思う。
– 関数ベースだからか PHP のソースは追いやすい。作るのはRubyやらASP.NETが楽なんだろうけど、手軽さは PHP かな、と。昔の ASP(VBScript)を思い出す。設定なんかは、config.php に直接書き込み、include/require っていう定番さが、C 言語の #include と似ていて分かり易い。
– データベースアクセスも mysql.php とか他のソースファイルに追い出してしまっているものが多い。これを真似すると mssql.php とかも作れそう。…だが、文法的に MySQL と異なる部分(特に create table 時の型)があるのでこれが難点か。
反省点として、
– あまりドキュメント作成に時間が掛けられなくて雑になっていまった。後日ぼちぼちとコメントなどを加えておきたい。インストールしたときの勘所とか。はまった落とし穴とか。
– 何か SQL Server に対応させようか、と思ったが実行できず。これも暇があればぼちぼち。
– x64 環境で Perl の拡張モジュールをビルドできる環境が必要。結局 Perl は 32 bit版を使っている。
– Support Logic の修正に時間を掛け過ぎた。まる1日調べていたが結局直らず。コンテストの主旨に沿えば、早目にあきらめてポイントを稼ぐべきだったかな。まぁ、ドキュメントなり軌跡を残すのが(私には)重要なので良しとしよう。
そういえば、ここの WordPress 画像の付け方やリンクの貼り方は分かったけど、なんか手軽にできる方法はないですかねぇ。wiki 風の書き方を wordpress の html に直せばいいだけなんだけど。やはり、スクリプトを書くのが一番かな。
>「インストールできない」とイライラ
すごくわかります。。
それで環境構築は苦手意識が染みついたまま。
それは克服したいところです。
僕の場合は、LinuxにPHP5.0インストールでつまづきました。
confファイル?に4.0の定義がデフォルトで記述されていたのを消す、
ということに気づくまで。。。
最初の3日間は結構イライラしていました。何故他の人がすんなりインストールできているのに、自分の環境(手順?)では駄目なのか!!!糞ッって感じ(苦笑)。
ただ、今回みたいに「できるだけたくさん」という場合は、さっさと諦めるほうがいいわけで、代替案があるのならば「作業量」を考えて次へ進めばよろしいと。
業務の場合はそういう訳にはいかないんだけど。
> 僕の場合は、LinuxにPHP5.0インストールでつまづきました。
> confファイル?に4.0の定義がデフォルトで記述されていたのを消す、
> ということに気づくまで。。。
そう、明らかに「慣れ」の部分はありますよね。
プログラム的に正しいと思っていた組み方なのにデバッグではまるとか(タイミングの問題とか設定の問題とか)と同じで、環境構築&設定の問題でも躓きやすいところがある。今回40個程度インストールしてわかったのは、このあたも大量の経験が必要ですね、ってことで、私のとっていい経験になりました。
いわば「暗黙知」ってやつなんだけど、記録に残しておかないと忘れてしまうし。特にインストールなんてのは最初の1回だけが多いからメモを残しておかないと、同じところで躓いてしまう。