web-dev-qa-db-ja.com

ソースコードを配布せずにPHPプロジェクトをデプロイしますか?

私は、さまざまなWebベースのソフトウェアソリューションの開発に取り組んでいます。しかし問題は、一部のクライアントでは、ローカルイントラネットにアプリケーションを展開する必要があることです。このような状況では、プロジェクトのソースコードを提供できないため、開発言語としてJavaを使用する必要があります。

現在、より多くの消費者を利用するために、これらのソリューションをオンラインにしています。 JavaホスティングはPHPよりも高価であるという事実を考慮して、ソリューション全体を再度PHPで再開発するしかありません。したがって、終了します。異なるプラットフォームでのメンテナンスとアップグレードのために、同じソリューションの2つのバージョンを持つこと。

したがって、オンラインソリューションがあり、アプリケーションのデプロイ可能なバージョンがあり、ソースコードなしでアプリケーションを出荷できると同時に、アプリケーションのコストも必要とする、優れたソリューションを指摘することができます。ホスティングの観点から効果的ですか?

2
svg

仮想マシンアプライアンスを検討しましたか?これが、GitHub Enterprise向けのGitHubと、Microsoftのベータソフトウェア(特に初期段階のベータ版)向けの方法です。

これには、いくつかの異なる利点があります。

  1. クライアントのコードへのアクセスを制限します。 GitHubの場合、これは非オープンソースのコアコンポーネントがクライアントから見えないままであり、NDAやwhathaveyouに煩わされないことを意味します。アプライアンスが展開され、すべてが自動的に実行され、すべてがWebインターフェイス経由でアクセスおよび管理されます。
  2. 安定した、制御されたデプロイメント環境を保証します。他の誰かのサーバーにデプロイするのと同じくらい簡単で、古いバージョンのPHPを実行していることを確認するだけです。 =およびアップグレードできない、またはさらに悪いことに、PHPをまったく許可しない古いバージョンのWindows Serverを実行しています。仮想マシンをデプロイすると、完全に制御できます環境。
  3. インストールをサンドボックス化します。これは#2と連動しますが、微妙に異なります。 Microsoftのベータ版は、この使用例の良い例です。ベータ版ソフトウェアは、安定性の問題が発生しやすいことで悪名高くなっています(ベータ版なので、図に進んでください)。仮想マシンに提供することで、ユーザーのシステム全体を取り出さなくても、クラッシュして書き込みを行うことができます。同じことが逆の場合にも当てはまります。アプリケーションを仮想マシンに保持すると、別のソフトウェアのクラッシュや書き込みからアプリケーションが保護されます(もちろん、ホストシステム全体がダウンした場合、それは別の問題ですが、ホストマシンはソフトウェアにほとんど影響しません)。
7
Shauna

なぜあなたの顧客にあなたのソースコードを見させてしまうのをそんなに恐れているのですか?

  • コードが盗まれて再販されるのを恐れている場合は、ライセンス契約を通じて簡単に保護することができます。
  • 彼らが簡単なサポートを行うかもしれないと恐れて自分自身を変更し、コンサルティングとサポートのビジネスをやめる場合は、契約に条項を追加して、彼らが自分で変更を行ってはいけない、そして彼らが行うとそれ以上サポートを受けられなくなるあなたから。
  • 彼らはあなたの「貿易の秘密」を盗むのではないかと心配ですか?あなたのソフトウェアが本当に革命的なことをしているので、他の人があなたのソースコードを見ないでそれを複製できない場合は、特許を取ってください。特許を取る価値がなければ、盗む価値もないでしょう。
  • または、コードの品質が顧客の期待に応えられないことを恐れていますか?とにかく、誰が見ても、コードの品質を向上させることはあなた自身の利益になるはずです。

一方、顧客にソースコードを提供することは(たとえライセンスの制限が重い場合でも)、セールスポイントとして使用できる利点もあります。

  • それはあなたが彼らを信頼しているという顧客を示しています
  • ソフトウェアに隠されたバックドアがないことを信頼できることを顧客に示します
  • お客様に連絡する前に問題を簡単にトラブルシューティングできるため、より意味のあるバグレポートが提供されます
4
Philipp

あなたのオンライン顧客のためにあなたはSAASモデルを見ましたか?

これにより、すべてのWebクライアントを独自のサーバーでホストできます。

1
Bill Leeper

私は同様のソリューションをデプロイし、社内およびオンプレミスでホスティングした経験があります。社内ホスティングではもちろんコードをそのまま実行し、オンプレミス展開ではPHPエンコーダ製品( ionCube および Zend Guard )。

どちらもほぼ同等です。この製品では、Zend Guardローダーのサポートが標準で付属しているZend Serverのオンプレミス展開を標準化したため、Zend Guardのみに切り替えました。

これらのソリューションに関するいくつかの考え:

  • ホスティングを行うマシンにローダー拡張機能をインストールする必要があるため、サーバーを制御できない安価なホスティングシナリオでは、これは大きな問題となる可能性があります。
  • PHPバージョンのサポートは常に遅れています。 Zend Guardは、ほんの数週間前に5.4をサポートするバージョンを出荷しました。5.5はすぐそこにあります。
  • 特に難解な機能を使用する場合は特に、エンコードされたバージョンに固有のバグがあります(たとえば、PHP 5.2では、リフレクションを使用してZend Guardでdocblockコメントを取得できませんでした)。大したことですが、注意する必要があります。
  • 他のいくつかの拡張機能、特にxdebugとの互換性の問題があります。繰り返しますが、必ずしも大したことではありませんが、注意する必要があります。
  • 言えるほどのパフォーマンスへの影響はありません。
  • これらのソリューションには、ライセンスキーを使用したライセンスのサポートが組み込まれています。あなたがその種のものに興味があるなら、あなたは能力をチェックするべきです。
1
Joeri Sebrechts

コードを保護する方法はたくさんありますが、実質的に防弾にはならないものもありますが、非常に優れた機能を果たします。

私の経験では、PHPで記述されたいくつかのWebアプリケーションを開発してエンドクライアントに配布しています。私たちは次の2つの製品を使用して作業を保護しています。

  1. IonCubeを使用してコードを暗号化しますPHP Encoder- http://www.ioncube.com
  2. WHMCSのライセンスアドオンを使用します- http://www.whmcs.com/addons/licensing-addon

上記の2つの製品を使用すると、次のことができます。

  • 配布する前に、コードを保護してライセンスを取得してください。
  • 評価コピーを保護するためにWebアプリケーションを時間制限する
  • 特定のマシンにロックすることにより、スクリプトを不正使用から保護します
  • 特定のIP、ドメイン、ディレクトリへのアクセスを制限します。

お役に立てば幸いです。

0
Kumi

私の会社は製品を作成します-SourceGuardianを使用して暗号化されたPHPソフトウェアでネットワークアプライアンスです。お客様は実際にはハッキングにハマっていないので、それを解読することについて心配していません。平均的なクライアントの場合、これでうまくいくかもしれませんが、ソースガーディアンサービスを実行できるホスティング環境を使用している必要があります(またはホスティングサービスにすでに含まれている場合、その多くはIonCubeをサポートしています)。

0
JasonMichael