Mengonversi skrip PHP menjadi jendela mandiri yang dapat dijalankan


128

Saya ingin mengotomatiskan tugas yang cukup sederhana. Untuk ini saya telah menulis skrip PHP kecil yang saya jalankan dari baris perintah menggunakan PHP-CLI. Sekarang saya ingin menyerahkan skrip ini kepada seseorang tetapi saya tidak ingin:

  • berikan kode sumbernya
  • minta dia untuk menginstal PHP pada sistem

Apakah ada cara untuk membuat versi .exe dari skrip PHP. Saya benar-benar tidak terlalu khawatir tentang dekompilasi; Saya lebih khawatir tentang meminta orang untuk menginstal dan mengkonfigurasi PHP.


2
Pernahkah Anda mendengar tentang bamcompile (r)?
SagarPPanchal

1
Telah menggunakan Bambalam selama beberapa tahun. Sudah terhenti selamanya - dan lebih tepatnya, itu hanya kompatibel dengan PHP4.4.4. Namun, selama Anda tidak memerlukan dukungan UTF8 dan sejenisnya dan dapat menangani broken foreach () dan beberapa lainnya, itu akan bekerja untuk Anda. Perhatikan bahwa tidak mungkin untuk berurusan dengan, katakanlah, nama file UTF8 dalam direktori, dengan PHP4.4.4. Juga ingat itu membuat file dalam% TEMP% yang tidak pernah dihapus (php [0-F] {2} .tmp), Anda harus membersihkan ini.
Egon_Freeman

Binari PHP dapat dijalankan dengan mudah. Anda bisa memberi tahu orang untuk mengekstrak seluruh folder dan membuat file batch yang mengeksekusi sesuatu seperti "php.exe -c php.ini script.php".
FluorescentGreen5

Jawaban:


195

Pai Persik

http://www.peachpie.io

https://github.com/iolevel/peachpie

Peachpie adalah kompiler PHP 7 berdasarkan Roslyn oleh Microsoft dan menggambar dari Phalanger populer. Ini memungkinkan PHP untuk dieksekusi dalam .NET / .NETCore dengan mengkompilasi kode PHP ke MSIL murni.

Phalanger

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

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

https://github.com/devsense/phalanger

Phalanger adalah proyek yang dimulai di Universitas Charles di Praha dan didukung oleh Microsoft. Ini mengkompilasi kode sumber yang ditulis dalam bahasa scripting PHP menjadi kode byte CIL (Common Intermediate Language). Ini menangani awal dari proses kompilasi yang diselesaikan oleh komponen kompiler JIT dari .NET Framework. Itu tidak membahas pembuatan kode asli atau optimasi. Tujuannya adalah untuk mengkompilasi skrip PHP ke dalam .NET assemblies, unit logis yang berisi kode CIL dan meta-data.

Bambalam

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

Bambalam PHP EXE Compiler / Embedder adalah alat baris perintah gratis untuk mengonversi aplikasi PHP ke aplikasi Windows .exe yang berdiri sendiri. File-file exe yang dihasilkan benar-benar mandiri, tidak perlu untuk php dll dll. Kode php dikodekan menggunakan pustaka Turck MMCache Encode jadi itu solusi sempurna jika Anda ingin mendistribusikan aplikasi Anda sambil melindungi kode sumber Anda. Konverter juga cocok untuk menghasilkan file .exe untuk aplikasi PHP berjendela (dibuat menggunakan misalnya pustaka WinBinder). Ini juga baik untuk membuat server / klien PHP Socket yang berdiri sendiri (menggunakan ekstensi php_sockets.dll). Ini BUKAN benar-benar kompiler dalam arti bahwa itu tidak menghasilkan kode mesin asli dari sumber PHP, tetapi berhasil!

ZZEE PHPExe

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

ZZEE PHPExe mengkompilasi PHP, HTML, Javascript, Flash dan file web lainnya ke dalam exe Windows GUI. Anda dapat dengan cepat mengembangkan aplikasi Windows GUI dengan menggunakan paradigma web PHP yang sudah dikenal. Anda dapat menggunakan kode yang sama untuk aplikasi online dan Windows dengan sedikit atau tanpa modifikasi. Ini adalah produk Komersial.

phc-win

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

PHP extension bcompiler digunakan untuk mengkompilasi kode skrip PHP ke dalam bytecode PHP. Bytecode ini dapat dimasukkan sama seperti file php apa pun selama ekstensi bcompiler dimuat. Setelah semua file bytecode dibuat, Embeder yang dimodifikasi digunakan untuk mengemas semua file proyek ke dalam exe program.

Membutuhkan

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

ExeOutput

http://www.exeoutput.com/

Komersial

WinBinder

http://winbinder.org/

WinBinder adalah ekstensi open source ke PHP, bahasa pemrograman skrip. Hal ini memungkinkan pemrogram PHP untuk dengan mudah membangun aplikasi Windows asli, menghasilkan hasil yang cepat dan memuaskan dengan upaya minimum. Bahkan skrip pendek dengan beberapa lusin baris dapat menghasilkan program yang bermanfaat, berkat kekuatan dan fleksibilitas PHP.

PHPDesktop

https://github.com/cztomczak/phpdesktop

PHP Desktop adalah proyek sumber terbuka yang didirikan oleh Czarek Tomczak pada tahun 2012 untuk menyediakan cara untuk mengembangkan aplikasi desktop asli menggunakan teknologi web seperti PHP, HTML5, JavaScript & SQLite. Proyek ini lebih dari sekadar kompiler PHP ke EXE, ia menyematkan browser web (Internet Explorer atau Chrome yang disematkan), server web Mongoose, dan juru bahasa PHP. Alur kerja pengembangan yang Anda gunakan tetap sama, langkah mengubah situs web yang ada menjadi aplikasi desktop pada dasarnya adalah masalah menyalinnya ke direktori "www /". Menggunakan database SQLite adalah opsional, Anda bisa menyematkan database mysql / postgresql di installer aplikasi.

PHP Nightrain

https://github.com/kjellberg/nightrain

Menggunakan PHP Nightrain, Anda akan dapat menggunakan dan menjalankan aplikasi web HTML, CSS, JavaScript, dan PHP sebagai aplikasi desktop asli pada Windows, Mac, dan sistem operasi Linux. Kerangka PHP populer (mis. CakePHP, Laravel, Drupal, dll ...) didukung dengan baik!

phc-win "fork"

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

Phc-win versi lebih atau kurang bercabang, ia menggunakan teknik yang sama seperti phc-win tetapi mendukung hampir semua versi PHP modern. (5.3, 5.4, 5.5, 5.6, dll.) Ia juga dapat menggunakan Enigma VB untuk menggabungkan php5ts.dll dengan exe Anda, dan juga kompres UPX. Terakhir, ia memiliki win32std dan winbinder dikompilasi secara statis ke dalam PHP.

EDIT

Pilihan lain adalah menggunakan

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

kompiler online yang dapat membangun executable untuk sejumlah platform berbeda, dari sejumlah bahasa termasuk PHP

TideSDK

http://www.tidesdk.org/

TideSDK sebenarnya adalah proyek Titanium Desktop berganti nama. Titanium tetap fokus pada ponsel, dan meninggalkan versi desktop, yang diambil alih oleh beberapa orang yang telah membuka sumbernya dan menyebutnya TideSDK.

Secara umum, TideSDK menggunakan HTML, CSS dan JS untuk membuat aplikasi, tetapi mendukung bahasa yang ditulis seperti PHP, sebagai modul plug-in, serta bahasa skrip lain seperti Python dan Ruby.


Saya dapat mengonfirmasi bahwa phc-win berfungsi untuk membuat file konsol dengan kode PHP 5.3. Hanya perlu skrip PHP dalam folder yang sama dengan php-win exe.
Dejv

Saya menggunakan bambalam compiler. Ini sangat keren dan mudah dan juga mendukung win-builder, tetapi tidak mendukung php5 :(
m3nda

PHP-Nightrain adalah alternatif yang sangat baik untuk PHPDesktop - dan bersifat lintas platform (Windows, OSX, Linux). Walaupun memiliki reputasi yang buruk karena ketergantungan pada Java, Java kini telah beralih ke Python sebagai pembungkus, dan merupakan pilihan yang sangat baik untuk mengembangkan perangkat lunak lintas platform berbasis PHP. - github.com/naetech/nightrain
Taapo

1
Baru saja kehilangan semua minggu dengan masalah Bambalam / beaviour. Dalam instalasi ini dijalankan seperti 50 kali sehari. Itu membuat file sementara dengan ukuran nama tetap yang tidak pernah dia hapus (4 karakter) ... menghasilkan tidak ada lagi nama file gratis. Program Sysinternals membantu mencari tahu apa yang terjadi. Tidak mudah dan meninggalkan getaran buruk di Bambalam.
João

1
pria pekerjaan hebat! Saya akan mencoba beberapa dari mereka. Mana yang terbaik untuk menggunakan database mysql dengan situs php?
garatu

12

Saya punya masalah dengan sebagian besar alat dalam jawaban lain karena semuanya sudah sangat ketinggalan zaman.

Jika Anda membutuhkan solusi yang akan "berfungsi", kemas versi php sederhana dengan proyek Anda dalam arsip WinRar SFX, atur untuk mengekstraksi semuanya ke direktori sementara dan jalankan php your_script.php.

Untuk menjalankan skrip dasar, satu-satunya file yang diperlukan adalah php.exedan php5.dll(atau php5ts.dlltergantung versi).

Untuk menambahkan ekstensi, kemas bersama dengan file php.ini:

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

hai solusi Anda sangat menarik. Mirip dengan server web quickphp. Apakah Anda punya contoh sederhana untuk itu? Saya harap Anda bisa menyediakan sumber. Ide yang bagus.
Edang Jeorlie

Ini sangat menarik! Tapi masalahnya, OP tidak mau "memberikan kode sumber", dan bahkan seorang pemula baru saja bisa mengekstrak skrip dari SFX.
Jay Dadhania

8

Saya mencoba sebagian besar solusi yang diberikan dalam jawaban 1, satu-satunya yang bekerja untuk saya dan non-komersial adalah php-desktop .

Saya cukup meletakkan file php saya di www/folder, mengubah nama .exedan mampu menjalankan php saya sebagai exe !!

Juga ada dokumentasi lengkap, dukungan terkini, kompatibilitas windows dan linux dan opsi dapat dengan mudah diubah.


2
PHP Desktop sekarang mendukung Linux, lihat rilis awalnya: github.com/cztomczak/phpdesktop/releases/tag/linux-v72.0
Czarek Tomczak

6

RapidEXE tepat untuk pekerjaan ini:

Itu mengubah proyek php ke exe mandiri. Saya sudah cukup dari semua kompiler lain, mencobanya satu per satu dan mereka semua mengecewakan saya dengan satu atau lain cara. Jadilah tamu saya, umpan balik selalu diterima!

Catatan: mekanisme di belakangnya sangat mirip dengan pendekatan WinRAR SFX; ekstrak mesin, ekstrak sumber, lalu jalankan. Ini lebih cepat dan lebih mudah untuk dikerjakan. Kompilasi satu perintah, terkompresi, membongkar pintar, pembersihan otomatis, konfigurasi mudah, kontrol penuh mesin php & versi; juga dapat diperluas dengan sedikit usaha.

Selamat berkembang!


Saya mencoba menggunakan alat Anda tetapi saya mendapatkan kesalahan berikutCannot find myself (D:\Desktop\phpflexer\phpflexer.exe)
Ghola

Ini menjanjikan tetapi bisakah Anda menambahkan beberapa perpustakaan ke ini? Misalnya saya perlu GD2 sehingga skrip saya dapat bekerja pada gambar.
Tom

@ Tom: tentu, ada versi baru dan jika Anda ingin mengujinya, saya bisa memberi Anda tautan unduhan. (Tidak ada malware, saya janji.) Ini sebenarnya jauh lebih baik sekarang dan itu adalah php 7.2, ditambah saya pikir itu akan mampu menangani bahasa lain. Gmail saya adalah kellnerden.
dkellner

1
Baru saja mencoba ini, solusi yang cukup rapi untuk skrip baris perintah yang dikompilasi! Saya telah menggunakan ExeOutput4PHP untuk sebagian besar proyek GUI saya cukup lama sekarang, tetapi untuk aplikasi konsol RapidEXE juga tampak hebat, jika tidak lebih baik.
Jay Dadhania

1
@JayDadhania Musik di telingaku! Versi 3 segera hadir, nantikan!
dkellner

2

ExeOutput juga dapat Mengubah Situs Web PHP menjadi Aplikasi dan Perangkat Lunak Windows

Ubah Situs Web PHP menjadi Aplikasi dan Perangkat Lunak Windows

Aplikasi yang dibuat dengan ExeOutput untuk PHP menjalankan skrip PHP, aplikasi PHP, dan situs web PHP secara asli, dan tidak memerlukan server web, browser web, atau distribusi PHP. Mereka berdiri sendiri dan berfungsi di komputer mana pun dengan versi Windows terbaru.

ExeOutput untuk PHP adalah kompiler situs web yang kuat yang bekerja dengan semua elemen yang ditemukan di situs modern: skrip PHP, JavaScript, HTML, CSS, XML, file PDF, Flash, video Flash, video Silverlight, database Silverlight, database, dan gambar. Menggabungkan elemen-elemen ini dengan PHP Runtime dan Ekstensi PHP, ExeOutput untuk PHP membuat file EXE yang berisi aplikasi lengkap Anda.

http://www.exeoutput.com/


1

Pengalaman saya dalam hal ini memberi tahu saya, sebagian besar perangkat lunak ini berfungsi baik dengan proyek-proyek kecil.
Tapi bagaimana dengan proyek besar? misal: Zend Framework 2 dan beberapa hal seperti itu.
Beberapa dari mereka memerlukan browser untuk dijalankan dan ini sulit untuk memberi tahu pelanggan "tolong ketik http://localhost/" di bilah alamat browser Anda !!

Saya membuat proyek sederhana untuk melakukan ini: PHPPy

Ini bukan cara lengkap untuk membuat file yang dapat dieksekusi yang berdiri sendiri untuk menjalankan proyek php tetapi membantu Anda untuk melakukan ini.
Saya tidak bisa mengkompilasi file python dengan PyInstaller atau Py2exe ke file .exe, harap Anda bisa.
Anda tidak perlu file executable server seragam.


4
Buat shorcut ke localhost itu kerja keras, bukan? :) Pokoknya Anda punya alasan untuk "bekerja dengan baik pada proyek-proyek kecil". Penuh unik "seperti yang Anda inginkan" adalah phpdesktop.
m3nda

1

PHP Nightrain (4.0.0) saat ini ditulis dalam Python dan menggunakan pustaka wxPython. Sejauh ini wxPython telah bekerja dengan baik untuk mendapatkan PHP Nightrain seperti sekarang ini, tetapi untuk mendorong PHP Nightrain ke level berikutnya, kami memperkenalkan saudara kandung PHP Nightrain, PHPWebkit!

Ini adalah pembaruan untuk PHP Nightrain.

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.