I have a script that uses php and curl to auto logon to a site and perform some actions.
That bit is ok but I now want to send the script to other people so they can use it.
So I can create a batch file that executes the script.
The problem will be the users won't have php instaled on their computer and would probally have to enable curl in the php.ini file too.
To ask the user to perform all these actions would be messy. Is there anyway I could create a basic instalation or something like that, that would package the whole thing toghether?
Thanks for any answers :-)
There's phc -- the open-source PHP compiler.
On another note, are you sure your users will have curl installed? And if not, and you decide to distribute it with your app, will they have all curl's dependencies installed?
Found this googling http://www.bambalam.se/bamcompile/
Maybe it's overdoing things but you can
look into Titanium Desktop
http://www.appcelerator.com/products/titanium-desktop-application-development/
Its Open Source, Cross Plataform and free. It basically lets you create a desktop application with web app technologies ( sort of like Adobe Air), and it has support for php scripts. This will of course mean that you have to create an User Interface with at least a button to run your script.
Related
What I'm looking for is an easy way to get either individual core usage or total CPU usage for the system that the PHP Script is running on.
However I'm unable to do so. I've looked all over for all manner of solutions from using perf (with and without passthru) to using winmgmts through COM.
The issue is, some of these will work on Windows if you use Apache, but with IIS the security restrictions stop PHP from being able to use for example winmgmts through COM so I just get back a null object.
How can I solve this? - I've honestly tried every solution I can find on the internet and while there is lots of information about how to raise the permissions all the guides point to IIS 7 or earlier and are no longer applicable to IIS 8.5 with literally the suggested option changes being non-existent.
If anyone could help me with this I'd be really appreciative, a workaround like using a third party application that could provide this data would also be acceptable if I can query the data through PHP either from a file or network etc Even a asp.net script that I could query? (I don't know anything about asp.net but I could use it for this single thing if it'd work?)
Thank you.
I managed to solve this and I hope it helps someone else.
What you must do is convert the folder where your PHP (or asp) will execute to an Application. So the structure will look like this:
Website Name
-> Application Name
Then you want to select the parent folder, the Website Name folder and go to "Basic Settings" in the far right actions pane and select "Connect As..." and connect as an Administrator account.
Once you've done this the application will inherent the credentials you specified on the parent website folder and you'll now have full access to perf, wmi and so on.
If you only give the credentials directly to the application it doesn't work and it also doesn't work if you don't convert your folder where your scripts will execute to an application. This is where I was being tripped up and the documentation online is very sparse.
I'd like to thank the good people at the phpsysinfo github for their IIS documentation which pointed me on the right track on needing to convert a site to an application which was part of the puzzle I was missing.
I am new here. I haven't found any solution to my problem.
WHY i need that? I am building a Joomla based system for fast custom Android app creation working on php hostings having no java installed available for people to develop and install apps easily on their devices. Thus i am interested only PHP or universal-like solutions implementable in PHP too. Only CHANGING FILES UNPACKED AND NOT DECOMPILED IS AN OPTION. No apktool no whatever else like that. I am working with DEBUG packages with self generated keys. or something like that, because i am a beginning phone gap developer.
For example i would like my own icons for an app, or change the title of it in AndroidManifest.xml. And update sha1 digest hashes for cert.sf and manifest.sf for the changed files. I need human understandable procedure step by step.
PHP gives sha1 and base64 encoding and many more like that.
I was trying to get the same codes like cert.sf and manifest.sf (no file was changed before) but i wasn't able to do so. I tried silly ways to sha1 files and base64 them and no outcome was as in the files mentioned.
Please there is no answer like that i need.
Let me say the anwswer to the question will help people or at least will help to build application development systems.
P.S.
For Adobe Air apps i will be trying to do the same what for .apk apps. I hope it won't create the same issues. But not about it is the main question.
UPDATE:
I feel from a couple topics of this kind that any practical help on this matter is unavailable and sometimes even perceived negatively. Thus what i am going to do is to use an additional server for making apps (simply command: cordova build) and send an app produced to a server which requested for it. This only because for some unknown reasons i cannot sign any files with php (debug packages). But why? It seems that the effect would be just the same as with installing running stuff with additional server using java, would it not?
Update:
I don't think there will be any answer. So i do .air and .apk apps using home computer hosting java what is not the best idea - two servers one not professional. There is http://build.phonegap.com/ and it can be interesting for building apps manually or via api. For free one app can be private and more open source. IOS and Windows are supported too there.
If you change a file, you must resign the APK with an existing certificate.
APK files are signed with the java jarsigner tool, so you can't do it only manually just by editing some files, you need the private key of the certificate.
Maybe you should try to add a Java application next to your Joomla server and use jarsigner for signing the generated APKs.
I have developed a PHP-MySQL web application, which is a school-based project.
My client wants this application to be converted into a .exe file such that it can be installed on his desktop and use it.
How the PHP website can be converted to a .exe file and can it be run without the need of a database/server software?
Please advice.
The convenient solution is not to convert the website to .exe. I think it will be better if you have portable server/php/mysql and make the website work from a usb or CD with autorun.
NuSphere's PhpDock claims to do this: It serves as a deployment helper and comes with a bundled web server. However, I don't know about the database part, and it's not free.
PhpDock enables you to deploy any PHP web application as a Stand Alone Windows Desktop application w/o any changes in the code.
I don't know that particular product, but I have been using their IDE for years and am quite happy.
try using a site-specific browser. it will make a desktop app that is basically a portal running to your webapp. try this one:
https://mozillalabs.com/prism/
It allows alot of advanced features like system tray icons and such. I have used it many times!
Hope this helps, JL
Short answer: Not possible.
Long answer: It depends.
You could install a web- and database server on his machine (or create an installer that does it) and run the application locally on his machine.
or
You keep the application on a server and just provide a launcher that opens his browser and points it to the URL of the application.
As Artefacto mentioned, it might be a good idea to switch to SQLite instead of MySQL but depending on how your application is written it might require a lot of code and SQL Query changes.
No. You have at least to remove the dependency on MySQL (and use e.g. sqlite instead).
Then, you would either have to:
Convert the webpages to windows dialogs. This would completely change your application (e.g. what would originally be http "form submissions" would be someting completely different). At this point, it'd much easier to write a .NET application
Bundle a web server (e.g. Apache) with PHP installed.
Another try would be to turn your php project into PHP-GTK (http://gtk.php.net/).
Yet another one is to give HPHP a try (https://github.com/facebook/hiphop-php/wiki/) and try to turn the generated C code into something like a .DLL in .NET and use it for the logic while coding the UI in say, C#.
Just create a simple program in C or C++ that will just add icon in Start menu, desktop and Quickstart. If your client clicks the icon it will open the default OS browser and point it to URI of your application online.
That might fool your client :)
Or maybe it will be enough for him (he might be asking you to convert it to exe because he can't remember URI or something - ask him what is the reason).
You can use xampp open-source project to pack your PHP site into an executable file.
Use the following steps:-
1. Download Xampp source code.
Add your PHP file inside htdocs directory(Ref:- https://sourceforge.net/p/xampp/code/HEAD/tree/win32/xampp/htdocs/).
Now compile the XAMPP source code and distribute it.
For DATABASE creation and initial data loading in the database, you can code your site in such way that if database is not created, it redirects the page to install.php which do the database creation and data loading task using sql file provided(you need to add SQL file containing database structure and required data).
Don't forget to delete the SQL file post installation of database.
Not sure that's gonna be possible but have a look at:
WinBinder
WinBinder is a new open source
extension for PHP, the script
programming language. It allows PHP
programmers to easily build native
Windows applications.
(source: winbinder.org)
Solution 1:
There are several solutions to convert your web application into a desktop application, the one I prefer is the open source solution: PhpDesktop, but unfortunately it only supports SQLite.
Best Solution:
To convert your PHP application with MySQL I know a paid solution that does this: 'ExeOutPut For Desktop', it is the best for this job
Php desktop is the way to go, it's actually very simple to modify to the version of PHP you want to use and is open source too https://github.com/cztomczak/phpdesktop
I've decided to code some applications in PHP that are supposed to run offline in the user's machine. However, I can't seem to find an user-friendly install wizard to create a local server in where the script will run. Any ideas?
PS: Here's an example of what I want: http://www.nolapro.com
You could go to the old school route and try using PHP-GTK.
Text Tutorial here: http://www.kksou.com/php-gtk2/References/Compiling-standalone-PHP-GTK2-applications-on-windows-using-PriadoBlender.php
or you could go the route that I believe has much more promise: Adobe AIR + PHP
It has the added bonus of running on any platform!
Video tutorials here: http://www.vtc.com/products/Adobe-AIR-PHP-Development-Tutorials.htm
There's also a new player in the game, Appcelerator. It lets you write your code in whatever language you want (PHP, Ruby, Python, etc) and compile it for the platform of choice (iPhone, Android, Windows, OSX). Parts of it are still beta, but it looks unbelievably slick & cool, and there are lots of tutorial videos. http://www.appcelerator.com
I hate to advocate this, because it just feels so wrong. You would probably be better off using a language inteded for use for stand-alone applications, if you're going to be doing this often or in a production setting.
With that said, a colleague of mine used to use the Bambalam PHP to EXE Compiler for this. He actually had a profitable product built around it.
Bambalam will generate an EXE that doesn't rely on any external DLLs, based on your PHP code.
http://www.bambalam.se/bamcompile/
If you have a webapp written, you maybe want to deploy on client, a possible way is use wapache, which is a standalone apache bundled with your application, and an integrated (IE) browser control inside.
http://wapache.sourceforge.net/
A new feature of PHP 5.4 & 6 can help you, the builtin web-server.
http://php.net/manual/en/features.commandline.webserver.php
With this feature you can host locally your php app without external webserver, and access on localhost.
If you really talking about a client application you are really wrong to do this.
If you want to wrap a server + browser to deploy your web based application so it runs local you might check out three options:
1) Deploy a simple webkit browser (you can get a QT Webkit Browser in 30 lines of code) and an apache server that is installed somewhere standalone (not via the apache control script as this uses port 80 and i probably conflicts with another installed webserver.
2) Look at the Firefox PRISMA solution. I have read about this only in a news article but it wrapps the firefox around one single start URL. You have to deploy a webserver in the same way as
3) Try to wrap it as a HTA application. Search the corresponding info on MSDN.
I would prefer (1) as you can add special application interacting code as needed.
I'm looking for an alternative to Package Foundry. It doesn't have to be - and I'm sure won't be - free or anything like that.
It also needs to be able to create a configuration file, which asks for their database details and such. Without that, it's just an automated FTP app, which is of limited use.
Are there any alternatives which might be able to automate the uploading and then just request some info from the user, and then perform a check to make sure they're valid?
NSIS (Nullsoft Scriptable Install System) is a professional open source system to create Windows installers. It is designed to be as small and flexible as possible and is therefore very suitable for internet distribution.
Or distribute your application via a PEAR channel.
Take a look at InstallJammer. It's a free, open source installer that can do everything you need. Drop by the forums if you need some help getting started with your installer, and I'll be glad to show you how to do what you want here. It's actually been done by many before, so it's not all that hard. :)