2009-07-15 4 views
2

FogBugzや自主制作のWordpressパッケージなど、自分のサーバーにインストールする必要のあるWebアプリケーション製品の場合、どのテクノロジスタックがよりスムーズにインストールされますか?どのテクノロジースタックを使用すると、顧客がホストするWebアプリケーションの展開が最も簡単になりますか?

ターゲットプラットフォームはWindows/IIS/SQLSeverとLinux/Apache/MySQLです。

しかし、使用される技術スタックは、Codeigniter、Python、C#(LinuxインストールのためにMonoを実行するASP.Net、Rails、Javaなど)を含むPHPフレームワークなしのPHP、

IISやApacheを実行している平均的な「アウトオブボックス」Webサーバーが、他のテクノロジではなく1つのテクノロジを使用して構築された製品をインストールするために必要なライブラリを持っているかどうかを検討する必要がありますPHPベースのソリューションは、LinuxマシンにASPアプリケーションを実行するために必要となるモノやその他の依存関係をインストールする必要がなく、Linuxマシンに展開する方が簡単かもしれません。

私たちは、顧客がシステム管理者へのアクセス権を持っていることを前提にしていますが、フルタイム/専用のものではなく、共有Webホストアカウントのようなものです。

私たちは、WebアプリケーションをWebサーバーにインストールする際に、お客様が最も苦労することなく、適切なテクノロジスタックを検討するつもりです。

答えて

2

PHP/MySqlは、unixスタックに簡単に設定できます。拡張機能とバージョンの非互換性に関する問題に取り組むことができますが、これは他のほとんどのプラットフォームと比較して比較的軽微です。これは私の主要な領域の外に少しありますが、私が聞いているところでは、PHPはISSに統合されています。マイクロソフトでは、PHPをスタックとより互換性のあるものにするために自ら取り組んできましたが、この分野でのかなりの改善が新しくリリースされたバージョン5.3に入りました。

PythonまたはRubyを使用している場合は、すぐにWebサーバーを提供する戦略をとることができます。両方の言語で実装されたフル機能のWebサーバーがあります。もちろんIISやApacheほど堅牢ではありませんが、低/中程度のトラフィックのサイトでは問題ありません。顧客はメインWebサーバーをアプリケーションのプロキシに設定することができます。これは基本的に完全に自己完結型のパッケージを持つことができるので、始めるのがずっと簡単です。

最終的には、展開するのがどれほど簡単かに基づいてテクノロジを選択するとは思われません。ちょっとした工事で、上記のプラットフォームのいずれかを使用して、主要なプラットフォーム用のインストーラパッケージを作成することができます(おそらくmono/aspはややこしいですが、うまくいくかもしれません)。

+0

PHPでは、最も大きなハードルは直感的なインストーラを作成することです(特に、Apacheホストを再構成することを期待している場合)。より複雑なコードのクロスプラットフォーム依存性を調査し、インストール時に適切な拡張要件チェックを実行するようにしてください。 – Nolte

+0

PHPの場合、zendサーバー(http://www.zend.com/en/products/server-ce/index)のような既成のクロスプラットフォームインストーラを使用し、あなた自身をロックしないでください。 –

0

トラブルシューティングの問題に遭遇するので、私は最もオンラインヘルプが利用できるものを選びます。あなたが与えた選択と私が経験したことから、私は間違いなくASP.NETを選択します。 (私はそれがLinux上でASP.NETを実行するのにかかるかわかりませんが、Monoプロジェクトは、いくつかの情報を持っている必要があります。)あなたはこの質問に危険な領域に入ってきた

0

...の

ファースト依存関係が必要なときはいつでも、それがクライアントマシンにインストールされていることを前提としています。ほとんどの場合、コンピュータシステムの性質上、標準化されていないため、これは危険な前提です。たとえば、すべてのインストールがCentOS 5の新規インストールで実行されることがわかっている場合は、スクリプトをバンドルしてすべての依存関係をインストールできます。実際には、すべてのクライアントがマシン上に「yum」を持つことを知っていれば、そこにあるかどうかに関わらず、同じことをすることができます。しかし、これは単にそうではありません。

依存関係を使用しない限り、クライアントはおそらく何らかの足取りをしてしまうだろうということです。 Rubyの宝石でさえ、インストールされているRubyのバージョンによって異なるインストールが必要になります。それを自動化しようとすることはできますが、常に機能しないものがあり、手作業で行う必要があるようなエッジケースが常に存在します。

言われているように、それはクライアントでより簡単にする方法があります。依存関係のないWebアプリケーションの場合、私は個人的にすべてが存在するため、Railsを選択します。 Djangoと同じです。 PHPアプリケーションは、インポートと設定が必要ですが、Railsは「正当な仕事」の考え方(引用符に注意してください)がありますが、PHPを使用するアプリケーションはMySQLで構築されているためです。

0

もう1つ注意すべき点は、サポートコールを受けることです。私はあなたのサポートの人々が最もよく知っているスタックと一緒に行くだろう。

0

さて、ASP.NETのプラス側では、NET FrameworkはWindows Updateから入手でき、Visual Studio Web Setup Projectに組み込まれているか、InstallShield、Advanced Installer、WiX(ハードコアオプション)などのサードパーティのインストーラを使用して、インストーラで簡単にサイトをラップできます。 Windowsの依存関係は、インストールパッケージに「マージモジュール」として含めることも、より高度なインストール作成者にMSIを組み込むこともできます。

共有されているWebホストは、すべてマニュアルです。インストーラーはありません.WindowsまたはLinuxベースがあなたをサポートします。その日の終わりに、FTPファイルが作成され、祈ります。どんなフレームワークを使用していても、アプリケーションを初めて閲覧したときや、すべてをチェックできるような非常に慎重なインストールプロセスを作成する必要があります。 ASP.NETの依存関係は通常、アセンブリDLLをアップロードするだけです。

関連する問題