PHP 스크립트를 독립형 Windows 실행 파일로 변환


128

상당히 간단한 작업을 자동화하고 싶습니다. 이를 위해 PHP-CLI를 사용하여 명령 행에서 실행하는 작은 PHP 스크립트를 작성했습니다. 이제이 스크립트를 누군가에게 넘겨주고 싶지만 :

  • 소스 코드를 제공
  • 시스템에 PHP를 설치하도록 요청하십시오

PHP 스크립트의 .exe 버전을 만드는 방법이 있습니까? 디 컴파일에 대해 크게 걱정하지 않습니다. 사람들에게 PHP를 설치하고 구성하도록 요청하는 것이 더 걱정됩니다.


2
bamcompile (r)에 대해 들어 보셨습니까?
SagarPPanchal

1
여러 해 동안 Bambalam을 사용해 왔습니다. 그것은 지금까지 영원히 실속되었습니다-그리고 지금까지는 PHP4.4.4 와만 호환됩니다. 그러나 UTF8 지원 및 유사성이 필요하지 않고 깨진 foreach () 및 기타를 처리 할 수있는 한 작동합니다. PHP4.4.4를 사용하여 디렉토리에서 UTF8 파일 이름을 처리하는 것은 불가능합니다. 또한 % TEMP %에 절대로 제거되지 않은 파일 (php [0-F] {2} .tmp)을 생성한다는 것을 기억하십시오. 이러한 파일을 정리해야합니다.
Egon_Freeman 2016 년

PHP 바이너리는 이식 가능합니다. 사람들에게 전체 폴더를 추출하고 "php.exe -c php.ini script.php"와 같은 것을 실행하는 배치 파일을 만들도록 지시 할 수 있습니다.
FluorescentGreen5 5

답변:


195

복숭아 파이

http://www.peachpie.io

https://github.com/iolevel/peachpie

Peachpie는 Microsoft의 Roslyn 기반 PHP 7 컴파일러이며 인기있는 Phalanger에서 추출한 것입니다. PHP 코드를 순수 MSIL로 컴파일하여 .NET / .NETCore 내에서 PHP를 실행할 수 있습니다.

팔랑 게르

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

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

https://github.com/devsense/phalanger

Phalanger는 프라하의 Charles University에서 시작되어 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 및 기타 웹 파일을 Windows GUI exe로 컴파일합니다. 익숙한 PHP 웹 패러다임을 사용하여 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의 강력 함과 유연성 덕분에 수십 줄의 짧은 스크립트조차도 유용한 프로그램을 생성 할 수 있습니다.

PHP 데스크탑

https://github.com/cztomczak/phpdesktop

PHP Desktop은 Czarek Tomczak이 2012 년에 설립 한 오픈 소스 프로젝트로 PHP, HTML5, JavaScript 및 SQLite와 같은 웹 기술을 사용하여 기본 데스크탑 응용 프로그램을 개발할 수있는 방법을 제공합니다. 이 프로젝트는 단순한 PHP to EXE 컴파일러가 아니라 웹 브라우저 (Internet Explorer 또는 Chrome 내장), Mongoose 웹 서버 및 PHP 인터프리터를 포함합니다. 기존 웹 사이트를 데스크톱 응용 프로그램으로 전환하는 단계는 기본적으로 웹 사이트를 "www /"디렉토리에 복사하는 것입니다. SQLite 데이터베이스 사용은 선택 사항이므로 mysql / postgresql 데이터베이스를 응용 프로그램 설치 관리자에 포함시킬 수 있습니다.

PHP 나이트 레인

https://github.com/kjellberg/nightrain

PHP Nightrain을 사용하면 Windows, Mac 및 Linux 운영 체제에서 HTML, CSS, JavaScript 및 PHP 웹 응용 프로그램을 기본 데스크톱 응용 프로그램으로 배포하고 실행할 수 있습니다. 인기있는 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를 포함한 다양한 언어로 다양한 플랫폼에서 실행 파일을 빌드 할 수있는 온라인 컴파일러

조수

http://www.tidesdk.org/

TideSDK는 실제로 이름이 바뀐 Titanium Desktop 프로젝트입니다. 티타늄은 모바일에 계속 초점을 맞추고 데스크탑 버전을 버렸습니다.이 버전은 오픈 소스를 사용하여 TideSDK라고 불렀던 일부 사람들이 대신했습니다.

일반적으로 TideSDK는 HTML, CSS 및 JS를 사용하여 응용 프로그램을 렌더링하지만 플러그인 모듈로 PHP와 같은 스크립트 언어와 Python 및 Ruby와 같은 다른 스크립트 언어를 지원합니다.


phc-win 이 PHP 5.3 코드로 콘솔 exe 파일을 만드는 데 작동 하는지 확인할 수 있습니다 . php-win exe와 같은 폴더에 PHP 스크립트를 넣으십시오.
Dejv

나는 bambalam 컴파일러를 사용했습니다. 그것은 꽤 시원하고 쉽습니다. 또한 win-builder를 지원하지만 php5를 지원하지 않습니다 :(
m3nda

PHP-Nightrain은 PHPDesktop의 훌륭한 대안이며 크로스 플랫폼입니다 (Windows, OSX, Linux). Java에 대한 의존성으로 인해 평판이 좋지 않았지만 이제는 래퍼로 Python으로 전환했으며 PHP 기반의 크로스 플랫폼 소프트웨어 개발에 매우 ​​적합합니다. - github.com/naetech/nightrain
Taapo

1
Bambalam 문제 / 행동으로 일요일 내내졌습니다. 이 설치에서는 하루에 50 번 정도 실행됩니다. 고정 이름 크기의 임시 파일을 작성하여 삭제하지 않습니다 (4 자) ... 더 이상 사용 가능한 파일 이름이 없습니다. Sysinternals procmon은 무슨 일이 있었는지 알아내는 데 도움이되었습니다. 쉽지 않았고 Bambalam에 나쁜 분위기를 남겼습니다.
João

1
잘 했어! 나는 그들 중 일부를 시도 할 것입니다. PHP 사이트에서 mysql 데이터베이스를 사용하기에 가장 적합한 것은 무엇입니까?
garatu

12

대부분의 도구는 구식이므로 다른 답변에서 대부분의 도구에 문제가있었습니다.

"작동하는"솔루션이 필요한 경우 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
...

안녕하세요 귀하의 솔루션은 매우 흥미 롭습니다. quickphp 웹 서버와 유사합니다. 간단한 예가 있습니까? 소스를 제공 할 수 있기를 바랍니다. 그건 그렇고 좋은 생각입니다.
Edang Jeorlie

정말 흥미 롭습니다! 그러나 문제는 OP가 "소스 코드를 제공하지 않기"를 원치 않으며 신인조차도 SFX에서 스크립트를 추출 할 수 있다는 것입니다.
Jay Dadhania

8

나는 첫 번째 답변에서 주어진 대부분의 솔루션을 시도했지만, 나를 위해 했고 비상업적 인 유일한 방법 은 php-desktop 입니다.

단순히 PHP 파일을 www/폴더에 넣고 이름을 변경하고 .exePHP로 exe를 실행할 수있었습니다 !!

또한 완벽한 문서, 최신 지원, Windows 및 Linux 호환성 및 옵션을 쉽게 변경할 수 있습니다.


2
: PHP 데스크탑은 이제 리눅스는 초기 릴리스 참조 지원 github.com/cztomczak/phpdesktop/releases/tag/linux-v72.0
Czarek Tomczak

6

RapidEXE 는이 작업을위한 것입니다.

PHP 프로젝트를 독립형 exe로 변환합니다. 나는 다른 모든 컴파일러를 충분히 가지고 있었고 하나씩 시도해 보았고 모두 나에게 실망했다. 내 손님이 되십시오. 피드백은 언제나 환영합니다!

참고 사항 : 그 배후의 메커니즘은 WinRAR SFX 접근 방식과 매우 유사합니다. 엔진을 추출하고 소스를 추출한 다음 실행하십시오. 더 빠르고 쉽게 작업 할 수 있습니다. 하나의 명령 컴파일, 압축, 스마트 압축 풀기, 자동 정리, 쉬운 구성, PHP 엔진 및 버전의 모든 제어; 최소한의 노력으로도 확장 할 수 있습니다.

행복한 개발!


도구를 사용해 보았지만 다음과 같은 오류가 발생합니다.Cannot find myself (D:\Desktop\phpflexer\phpflexer.exe)
Ghola

유망하지만 이것에 몇 개의 라이브러리를 추가 할 수 있습니까? 예를 들어 스크립트에서 이미지를 작업 할 수 있도록 GD2가 필요합니다.
Tom

@Tom : 물론 새로운 버전이 있으며 테스트하고 싶다면 다운로드 링크를 제공 할 수 있습니다. (맬웨어는 없지만 약속합니다.) 실제로는 훨씬 나아졌으며 PHP 7.2이며 다른 언어를 처리 할 수 ​​있다고 생각합니다. 내 Gmail은 kellnerdenes입니다.
dkellner

1
컴파일 된 명령 행 스크립트를위한 매우 깔끔한 솔루션입니다. 나는 꽤 오랫동안 내 GUI 프로젝트의 대부분에 ExeOutput4PHP를 사용해 왔지만 콘솔 응용 프로그램의 경우 RapidEXE도 더 좋아 보이지 않습니다.
Jay Dadhania

1
@JayDadhania 내 귀에 음악! 버전 3이 곧 제공 될 예정입니다.
dkellner

2

ExeOutput은 PHP 웹 사이트를 Windows 응용 프로그램 및 소프트웨어로 전환 할 수도 있습니다

PHP 웹 사이트를 Windows 응용 프로그램 및 소프트웨어로 전환

PHP 용 ExeOutput으로 만든 응용 프로그램은 기본적으로 PHP 스크립트, PHP 응용 프로그램 및 PHP 웹 사이트를 실행하며 웹 서버, 웹 브라우저 또는 PHP 배포가 필요하지 않습니다. 독립형이며 최신 Windows 버전이 설치된 모든 컴퓨터에서 작동합니다.

ExeOutput for PHP는 PHP 스크립트, JavaScript, HTML, CSS, XML, PDF 파일, Flash, Flash 비디오, Silverlight 비디오, 데이터베이스 및 이미지와 같은 최신 사이트에있는 모든 요소와 작동하는 강력한 웹 사이트 컴파일러입니다. 이러한 요소를 PHP 런타임 및 PHP 확장과 결합하여 ExeOutput for PHP는 완전한 응용 프로그램이 포함 된 EXE 파일을 빌드합니다.

http://www.exeoutput.com/


1

이 문제에 대한 나의 경험에 따르면, 이러한 소프트웨어의 대부분은 소규모 프로젝트에서 잘 작동합니다.
그러나 큰 프로젝트는 어떻습니까? 예 : Zend Framework 2와 그와 같은 것들.
그들 중 일부는 브라우저를 실행해야하며 이는 고객에게 "입력하십시오.http://localhost/ 브라우저 주소 표시 줄에 " " !!

나는 이것을하기위한 간단한 프로젝트를 만듭니다 : PHPPy

이것은 PHP 프로젝트를 실행하기위한 독립형 실행 파일을 만드는 완벽한 방법은 아니지만이 작업을 수행하는 데 도움이됩니다.
PyInstaller 또는 Py2exe가있는 python 파일을 .exe 파일로 컴파일 할 수 없었습니다.
균일 한 서버 실행 파일이 필요하지 않습니다.


4
localhost에 shorcut을 만드십시오. :) 어쨌든 "작은 프로젝트에서 잘 작동한다"는 이유가 있습니다. "원하는대로"고유 한 기능은 phpdesktop입니다.
m3nda

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.