web-dev-qa-db-ja.com

PHPスクリプトをスタンドアロンのWindows実行可能ファイルに変換します

かなり単純なタスクを自動化したい。このために、PHP_CLIを使用してコマンドラインから実行する小さなPHPスクリプトを作成しました。今、私はこのスクリプトを誰かに渡したいが、私はしたくない:

  • ソースコードを配る
  • システムにPHPをインストールするように彼に依頼します

PHPスクリプトの.exeバージョンを作成する方法はありますか。私は本当に逆コンパイルについてあまり心配していません。 PHPをインストールして構成するように人々に依頼するのがもっと心配です。

121
Salman A

ピーチパイ

http://www.peachpie.io

https://github.com/iolevel/peachpie

PeachpieはPHP 7コンパイラで、MicrosoftのRoslynに基づいており、人気のあるPhalangerを使用しています。 PHPコードを純粋なMSILにコンパイルすることにより、.NET/.NETCore内でPHPを実行できます。

Phalanger

http://v4.php-compiler.net/

http://wiki.php-compiler.net/Phalanger_Wiki

https://github.com/devsense/phalanger

Phalangerは、プラハのカレル大学で開始されたプロジェクトで、Microsoftによってサポートされています。 PHPスクリプト言語で記述されたソースコードをCIL(Common Intermediate Language)バイトコードにコンパイルします。 .NET FrameworkのJITコンパイラコンポーネントによって完了するコンパイルプロセスの開始を処理します。ネイティブコードの生成や最適化には対応していません。その目的は、PHPスクリプトを.NETアセンブリ、CILコードとメタデータを含む論理ユニットにコンパイルすることです。

バンバラム

https://github.com/xZero707/Bamcompile/

Bambalam PHP EXE Compiler/Embedderは、PHPアプリケーションをスタンドアロンのWindows .exeアプリケーションに変換する無料のコマンドラインツールです。生成されるexeファイルは完全にスタンドアロンであり、php dllなどは必要ありません。phpコードはTurck MMCacheエンコードライブラリを使用してエンコードされるため、ソースコードを保護しながらアプリケーションを配布する場合に最適なソリューションです。コンバーターは、ウィンドウ化されたPHPアプリケーション(たとえばWinBinderライブラリを使用して作成された)用の.exeファイルの生成にも適しています。また、スタンドアロンのPHPソケットサーバー/クライアントを作成するのにも適しています(php_sockets.dll拡張機能を使用)。 PHPソースからネイティブマシンコードを生成しないという意味では、実際にはコンパイラではありませんが、動作します!

ZZEE PHPExe

http://www.zzee.com/phpexe/

ZZEE PHPExeは、PHP、HTML、Javascript、Flashおよびその他のWebファイルをWindows GUI exeにコンパイルします。使い慣れたPHP Webパラダイムを採用することにより、Windows GUIアプリケーションを迅速に開発できます。オンラインアプリケーションとWindowsアプリケーションに同じコードを、ほとんどまたはまったく変更せずに使用できます。これは商用製品です。

phc-win

http://wiki.swiftlytilting.com/Phc-win

PHP拡張bcompilerは、PHPスクリプトコードをPHPバイトコードにコンパイルするために使用されます。このバイトコードは、bcompiler拡張機能がロードされている限り、他のphpファイルと同じように含めることができます。すべてのバイトコードファイルが作成されたら、修正されたEmbederを使用して、すべてのプロジェクトファイルをプログラムexeにパックします。

が必要です

  • php5ts.dll
  • php_win32std.dll
  • php_bcompiler.dll
  • php-embed.ini

ExeOutput

http://www.exeoutput.com/

商業の

WinBinder

http://winbinder.org/

WinBinderは、スクリプトプログラミング言語であるPHPのオープンソース拡張機能です。 PHPプログラマーは、ネイティブのWindowsアプリケーションを簡単に構築でき、最小限の労力で迅速で価値のある結果を生成できます。 PHPのパワーと柔軟性のおかげで、数十行の短いスクリプトでも有用なプログラムを生成できます。

PHPDesktop

https://github.com/cztomczak/phpdesktop

PHP Desktopは、PHP、HTML5、JavaScript、SQLiteなどのWebテクノロジーを使用してネイティブデスクトップアプリケーションを開発する方法を提供するために、2012年にCzarek Tomczakによって設立されたオープンソースプロジェクトです。このプロジェクトは、単なるPHP to EXEコンパイラではなく、Webブラウザー(Internet ExplorerまたはChrome埋め込み)、Mongoose Webサーバー、PHPインタープリターを埋め込みます。使用する開発ワークフローは同じままです。既存のWebサイトをデスクトップアプリケーションに変える手順は、基本的に「www /」ディレクトリにコピーすることです。 SQLiteデータベースの使用はオプションです。mysql/ postgresqlデータベースをアプリケーションのインストーラーに埋め込むことができます。

PHP Nightrain

https://github.com/kjellberg/nightrain

PHP Nightrainを使用すると、HTML、CSS、JavaScript、およびPHP WebアプリケーションをWindows、Mac、およびLinuxオペレーティングシステムのネイティブデスクトップアプリケーションとしてデプロイおよび実行できます。人気のあるPHPフレームワーク(CakePHP、Laravel、Drupalなど)が十分にサポートされています!

phc-win "fork"

https://github.com/RDashINC/phc-win

多かれ少なかれphc-winのフォーク版で、phc-winと同じ手法を使用しますが、ほとんどすべての最新のPHPバージョンをサポートします。 (5.3、5.4、5.5、5.6など)また、Enigma VBを使用して、php5ts.dllをexeと組み合わせ、UPXで圧縮することもできます。最後に、win32stdとwinbinderがPHPに静的にコンパイルされています。

編集

別のオプションは使用することです

http://www.appcelerator.com/products/titanium-cross-platform-application-development/

pHPを含むさまざまな言語から、さまざまなプラットフォーム用の実行可能ファイルを構築できるオンラインコンパイラ

TideSDK

http://www.tidesdk.org/

TideSDKは、実際には名前が変更されたTitanium Desktopプロジェクトです。 Titaniumは引き続きモバイルに焦点を合わせ、デスクトップバージョンを放棄しました。デスクトップバージョンは、オープンソース化してTideSDKと名付けた一部の人々に引き継がれました。

一般に、TideSDKはHTML、CSS、JSを使用してアプリケーションをレンダリングしますが、プラグインモジュールとしてのPHPなどのスクリプト言語、およびPythonやRubyなどの他のスクリプト言語をサポートします。

185
Mark Baker

私は最初の答えで与えられた解決策のほとんどを試しました、私のために働いた唯一のであり、非商用php-desktop

私は単にphpファイルをwww/フォルダーに入れ、.exeの名前を変更し、exeとしてphpを実行することができました!!

また、完全なドキュメントがあり、最新のサポート、WindowsとLinuxの互換性、オプションは簡単に変更できます。

8
538ROMEO

それらはすべて非常に時代遅れであるため、他の回答のツールのほとんどに問題がありました。

「正常に動作する」ソリューションが必要な場合は、WinRar SFXアーカイブに必要最小限のバージョンのphpをプロジェクトと共にパックし、すべてを一時ディレクトリに抽出してphp your_script.phpを実行するように設定します。

基本的なスクリプトを実行するには、必要なファイルはphp.exephp5.dll(またはバージョンに応じてphp5ts.dll)のみです。

拡張機能を追加するには、それらをphp.iniファイルと一緒にパックします。

[PHP]
extension_dir = "."
extension=php_curl.dll
extension=php_xxxx.dll
...
6
toster-cx

RapidEXEはこのジョブにぴったりです:

Phpプロジェクトをスタンドアロンexeに変換します。私は他のすべてのコンパイラを十分に持っていたので、それらを1つずつ試しました。私のゲストになって、フィードバックをいつでも歓迎します!

サイドノート:その背後にあるメカニズムは、WinRAR SFXアプローチに非常に似ています。抽出エンジン、ソースの抽出、実行します。作業が高速で簡単になりました。ワンコマンドコンパイル、圧縮、スマートアンパック、自動クリーンアップ、簡単な構成、PHPエンジンとバージョンのフルコントロール。また、最小限の労力で拡張可能です。

ハッピー開発!

5
dkellner

http://winbinder.org/

「WinBinderは、スクリプトプログラミング言語であるPHPの新しいオープンソース拡張機能です。これにより、PHPプログラマはネイティブWindowsアプリケーションを簡単に構築できます。」

3
djot

ExeOutputはPHP WebサイトをWindowsアプリケーションとソフトウェアに変えることもできます

PHP WebサイトをWindowsアプリケーションおよびソフトウェアに切り替えます

PHPのExeOutputで作成されたアプリケーションは、PHPスクリプト、PHPアプリケーション、およびPHP Webサイトをネイティブに実行し、Webサーバーを必要としません。 Webブラウザ、またはPHPディストリビューション。これらはスタンドアロンであり、最新のWindowsバージョンを備えたどのコンピューターでも動作します。

ExeOutput for PHPは、最新のサイトにあるすべての要素で動作する強力なWebサイトコンパイラです:PHPスクリプト、JavaScript、HTML、CSS、XML、PDFファイル、Flash、Flashビデオ、Silverlightビデオ、データベース、画像。これらの要素をPHP RuntimeおよびPHP Extensionsと組み合わせることで、PHPのExeOutputは、完全なアプリケーションを含むEXEファイルをビルドします。

http://www.exeoutput.com/

2

現在のPHP Nightrain(4.0.0)はPythonで記述されており、wxPythonライブラリを使用しています。これまでのところ、wxPythonは現在のPHP Nightrainを取得するためにうまく機能していますが、PHP Nightrainを次のレベルに押し上げるために、PHPWebkitであるPHP Nightrainの兄弟を導入しています!

これはPHP Nightrainの更新です。

https://github.com/entrypass/nightrain-ep

1
zeddex

この問題に関する私の経験は、これらのソフトウェアのほとんどが小さなプロジェクトでうまく機能することを教えてくれます。
しかし、大きなプロジェクトについてはどうですか?例:Zend Framework 2など。
一部のユーザーはブラウザを実行する必要があり、ブラウザのアドレスバーに「http://localhost/」と入力してください。

これを行う簡単なプロジェクトを作成します: PHPPy

これは、PHPプロジェクトを実行するためのスタンドアロンの実行可能ファイルを作成する完全な方法ではありませんが、これを行うのに役立ちます。
PyInstallerまたはPy2exeでpythonファイルを.exeファイルにコンパイルできませんでした。
uniformserver実行可能ファイルは必要ありません。

1
Mohamad Rostami