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


128

かなり単純なタスクを自動化したい。このために、PHP-CLIを使用してコマンドラインから実行する小さなPHPスクリプトを記述しました。このスクリプトを誰かに渡したいのですが、したくありません。

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

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


2
bamcompile(r)について聞いたことがありますか?
SagarPPanchal 2013年

1
何年もバンバラムを使用しています。それは今永遠に失速しています-そして、もっともっと言えば、PHP4.4.4とのみ互換性があります。ただし、UTF8のサポートなどを必要とせず、壊れたforeach()やその他のいくつかを処理できる限り、問題なく機能するはずです。PHP4.4.4では、たとえばディレクトリ内のUTF8ファイル名を処理することは不可能であることに注意してください。また、%TEMP%に削除されないファイル(php [0-F] {2} .tmp)が作成されることにも注意してください。これらをクリーンアップする必要があります。
Egon_Freeman 2017年

PHPのバイナリは、移植性のある方法で実行できます。フォルダー全体を抽出して、「php.exe -c php.ini script.php」のようなものを実行するバッチファイルを作成するように人々に指示するだけです。
FluorescentGreen5

回答:


195

ピーチパイ

http://www.peachpie.io

https://github.com/iolevel/peachpie

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

ファランジャー

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 Encodeライブラリを使用してエンコードされているため、ソースコードを保護しながらアプリケーションを配布する場合に最適なソリューションです。コンバーターは、ウィンドウ処理された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デスクトップは、2012年にCzarek Tomczakによって設立されたオープンソースプロジェクトで、PHP、HTML5、JavaScript、SQLiteなどのWebテクノロジーを使用してネイティブデスクトップアプリケーションを開発する方法を提供します。このプロジェクトは、単なるPHPからEXEへのコンパイラーではなく、Webブラウザー(Internet ExplorerまたはChrome組み込み)、Mongoose Webサーバー、およびPHPインタープリターを組み込んでいます。従来の開発ワークフローは同じです。既存のWebサイトをデスクトップアプリケーションに変換する手順は、基本的には「www /」ディレクトリにコピーすることです。SQLiteデータベースの使用はオプションです。アプリケーションのインストーラーにmysql / postgresqlデータベースを埋め込むことができます。

PHPナイトレイン

https://github.com/kjellberg/nightrain

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

phc-win "フォーク"

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などの他のスクリプト言語をサポートしています。


PHP 5.3コードでコンソールexeファイルを作成するためにphc-winが機能することを確認できます。php-win exeと同じフォルダーにPHPスクリプトがあるだけです。
Dejv 2013年

バンバラムコンパイラを使用しました。それはかなりクールかつ簡単にし、また勝利ビルダーをサポートしていますが、:( PHP5をサポートしていないです
m3nda

PHP-NightrainはPHPDesktopの非常に優れた代替手段であり、クロスプラットフォーム(Windows、OSX、Linux)です。Javaに依存しているため評判は悪かったが、現在はラッパーとしてPythonに切り替えられており、PHPベースのクロスプラットフォームソフトウェアの開発に非常に適している。- github.com/naetech/nightrain
Taapo

1
バンバラムの問題/振る舞いで全日曜日を失った。このインストールでは、1日に50回実行されます。削除しない固定の名前サイズ(4文字)の一時ファイルを作成します...その結果、空のファイル名はなくなります。Sysinternals procmonは、何が起こったかを理解するのに役立ちました。簡単ではなかったし、バンバラムに悪い雰囲気を残します。
ジョアン・

1
よくできました!いくつか試してみます。PHPサイトでMySQLデータベースを使用するのに最適なものはどれですか。
ガラトゥ

12

すべてのツールが非常に古いため、他の回答のほとんどのツールで問題が発生しました。

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

基本的なスクリプトを実行するために必要なファイルはphp.exe、and php5.dll(またはphp5ts.dllバージョンによっては)だけです。

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

[PHP]
extension_dir = "."
extension=php_curl.dll
extension=php_xxxx.dll
...

こんにちはあなたの解決策は非常に興味深いです。quickphp webサーバーに似ています。その簡単な例はありますか?ソースを提供していただければ幸いです。ちなみにいいアイデアです。
Edang Jeorlie 2017年

これは本当に面白いです!しかし重要なのは、そのOPは「ソースコードを提供する」ことを望んでおらず、新人でさえSFXからスクリプトを抽出するだけでよいということです。
ジェイダダニア

8

私は最初の答えで与えられた解決策のほとんどを試しました、私のために働いてそして非商業的である唯一のものはphp-desktopです。

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

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


2
PHPデスクトップがLinuxをサポートするようになりました。最初のリリースをご覧ください:github.com/cztomczak/phpdesktop/releases/tag/linux-v72.0
Czarek Tomczak

6

RapidEXEはまさにこの仕事のためのものです:

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

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

今後ともよろしくお願いいたします。


私はあなたのツールを使用しようとしましたが、次のエラーが発生しましたCannot find myself (D:\Desktop\phpflexer\phpflexer.exe)
Ghola

有望ですが、これにいくつかのライブラリを追加できますか?たとえば、スクリプトで画像を処理できるようにGD2が必要です。
トム

@トム:確かに、新しいバージョンがあります。テストしたい場合は、ダウンロードリンクを提供できます。(マルウェアはない、と私は約束します。)それは実際にははるかに良くなりました、そしてそれはphp 7.2です、そして私は他の言語を扱うことができると思います。私のGmailはkellnerdenesです。
dkellner 2018

1
コンパイルされたコマンドラインスクリプトに対して、これを試してみた、かなりきちんとしたソリューションです!私はかなり長い間、ほとんどのGUIプロジェクトでExeOutput4PHPを使用していますが、コンソールアプリの場合、RapidEXEも見栄えが良いです。
Jay Dadhania

1
@JayDadhania音楽を耳に!バージョン3は近日提供予定です。お楽しみに!
dkellner

2

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

PHP WebサイトをWindowsアプリケーションとソフトウェアに変える

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

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

http://www.exeoutput.com/


1

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

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

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


4
localhostへのショートカットを作成するのは大変な作業ですよね?:)とにかく、あなたは「小さなプロジェクトでうまくいく」という理由があります。「あなたが望むように」ユニークな完全なものはphpdesktopです。
m3nda 2014

1

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

これは、PHP Nightrainのアップデートです。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.