New Installer for PHP 5.2

php.internals

John Mertic

20 years ago
Hi there, With the guidance of Phil Driscoll, I have put together a new installer for PHP on Windows. It replicates much of the same functionality of his installer, but also boasts the following features: - Selective installation of all PHP components ( CGI and CLI exes, server modules, standard and PECL extensions ). - Configures the php.ini for the installation, including enabling the extensions the user selected to install. - Built as an MSI using Wix (http://wix.sourceforge.net) which is scriptable and open source so we can include the code to build the installer in cvs and automate building it. Also MSI Installers are very useful for Sys Admins since they integrate into Group Policies to allow unattended installation, and are better supported on Windows in general. Thanks to Edin Kadribasic, the public test version ( which installs a recent snapshot of PHP 5.2 ) is located at http://downloads.php.net/edink/php-5.2.0-win32-installer.msi. I am looking for feedback on the installer, namely in the following areas: - Default install options; what should the default install consist of? - Lite Installer. The current install file weighs in at 18mb. Would we want a lite installer with fewer components and if so what would those be?
-- Later, John Mertic "Explaining a joke is like dissecting a frog: you jmertic@gmail.com understand it better, but the frog dies in the process." -Mark Twain

Ilia A.

20 years ago
On 24-Jul-06, at 10:52 AM, John Mertic wrote:
> > Thanks to Edin Kadribasic, the public test version ( which installs a > recent snapshot of PHP 5.2 ) is located at > http://downloads.php.net/edink/php-5.2.0-win32-installer.msi. > > I am looking for feedback on the installer, namely in the following > areas: > > - Default install options; what should the default install consist of?
I'd say it should contain all of the extensions that are enabled by- default.
> - Lite Installer. The current install file weighs in at 18mb. Would we > want a lite installer with fewer components and if so what would those > be?
I think if the 1st is done the size of the file should be much smaller, if not we can examine the enabled extensions one by one and perhaps turn off some of the "less important" ones. Ilia Alshanetsky

Stut

20 years ago
Ilia Alshanetsky wrote:
> On 24-Jul-06, at 10:52 AM, John Mertic wrote: >> - Lite Installer. The current install file weighs in at 18mb. Would we >> want a lite installer with fewer components and if so what would those >> be? > > I think if the 1st is done the size of the file should be much > smaller, if not we can examine the enabled extensions one by one and > perhaps turn off some of the "less important" ones.
I don't claim to know wix very well, but isn't it possible to have it download optional components? That would allow a core set of components to be included with the option to download and configure others if needed. -Stut

John Mertic

20 years ago
On 7/24/06, Ilia Alshanetsky <ilia@prohost.org> wrote:
> > - Default install options; what should the default install consist of? > > I'd say it should contain all of the extensions that are enabled by-default. >
I have it set that way by default now, so if everyone is comfortable with that then we can leave it as-is.
> - Lite Installer. The current install file weighs in at 18mb. Would we > want a lite installer with fewer components and if so what would those > be? > > I think if the 1st is done the size of the file should be much smaller, if > not we can examine the enabled extensions one by one and perhaps turn off > some of the "less important" ones.
The issue is that the installer doesn't not grab the files it needs online; the package has them all included by default and then the installer installs the correct ones based upon the user's choices. If we want to go with your idea above ( a lite install that contains only the built-in extensions and web server support ) we could probably get it down to under 6mb. And I believe it should also be possible to "upgrade" this to the full version as well.
-- Later, John Mertic "Explaining a joke is like dissecting a frog: you jmertic@gmail.com understand it better, but the frog dies in the process." -Mark Twain

Richard Lynch

20 years ago
On Mon, July 24, 2006 9:55 am, Ilia Alshanetsky wrote:
> > On 24-Jul-06, at 10:52 AM, John Mertic wrote: >> >> Thanks to Edin Kadribasic, the public test version ( which installs >> a >> recent snapshot of PHP 5.2 ) is located at >> http://downloads.php.net/edink/php-5.2.0-win32-installer.msi. >> >> I am looking for feedback on the installer, namely in the following >> areas: >> >> - Default install options; what should the default install consist >> of? > > I'd say it should contain all of the extensions that are enabled by- > default. > > >> - Lite Installer. The current install file weighs in at 18mb. Would >> we >> want a lite installer with fewer components and if so what would >> those >> be? > > I think if the 1st is done the size of the file should be much > smaller, if not we can examine the enabled extensions one by one and > perhaps turn off some of the "less important" ones.
Given the number of Windows users who can't find the DLLs they need, I'd have to say that "more is better" for the "Full Install" -- Any DLL you can manage to compile and test should be there for them to check on/off and just use it with no more effort. At the other end of the spectrum, I'm going to assume that, sooner or later, a Lite Windows user will need some DLL that isn't in "Lite". So I'd almost go so far as to suggest that Lite should have *nothing* except php.exe and the SAPI DLLs and instructions on how/where to find any other DLLs they might want that match their version. Because we pretty much get a question every couple days on PHP-General whose answer boils down to one of: a) find the DLL for the extension you want that matches your version b) you cannot mix-n-match DLL versions for extensions PHP Windows Users are clearly "not getting it" on this extension DLL thing... :-)
-- Like Music? http://l-i-e.com/artists.htm

Wez Furlong

20 years ago
I see no sense in maintaining a "lite" installer; the people that need an installer will want everything. If people want to cherry-pick, they can do it themselves using the .zip downloads and pecl4win. --Wez. On 8/1/06, Richard Lynch <ceo@l-i-e.com> wrote:

Lester Caine

20 years ago
John Mertic wrote:
> - Lite Installer. The current install file weighs in at 18mb. Would we > want a lite installer with fewer components and if so what would those > be?
So what is included over the 2.7Mb of the existing 5.1.4 installer? ( I presume there is no plan to remove the more useful zip file ;) )
-- Lester Caine - G8HFL ----------------------------- L.S.Caine Electronic Services - http://home.lsces.co.uk Model Engineers Digital Workshop - http://home.lsces.co.uk/ModelEngineersDigitalWorkshop/ Treasurer - Firebird Foundation Inc. - http://www.firebirdsql.org/index.php

Steph

20 years ago
Hi John, I looked at this already (bless irc) and it looks great.. chm manual option's a nice touch :) The main questions I have about it are: 1) I didn't notice anywhere to choose the path for the install. (This might be because I only tested with cli?) That makes it kinda hard to figure out where the installed version went :) I eventually found it in PROGRA~1, which might be the default for registry-based installations but was (perhaps strangely) not where I'd have immediately expected it to be from a desktop test install. 2) Same goes for the php.ini, the whereabouts of which can be fairly critical depending on the setup. (Those two I think are probably important.) 3) is there some way to have (version-compatible) components 'install on demand', rather than download the whole lot at one go? (Would be useful if...) 4) enabling extensions via the installer at present simply means adding them to the end of the existing php.ini, i.e. the same module can be listed twice, once disabled and once enabled. Is there no way to do a search and replace on the existing string or simply write that part of the file from scratch? - because at present, people will still need to make manual modifications to their .ini following installation, and it's confusing. 5) is there - or will there be - a way to update components via the installer? or even the core? (would mean disabling/deleting non-compatible components) 6) is there - or will there be - any way to set up the chosen server configuration via the installer (for all servers or even just for Apache?) - again, I didn't test with a server install so this might be in place already. 7) how about further php.ini modifications? - remembering that the existence of many directives depends on the extensions installed. (These come under 'would be sweet if...') Further comment: I personally think it creates more problems than it solves to differentiate between core and PECL extensions. IMHO it'd be better to throw them all together in alphabetical order and simply have everything 'already on' that is enabled by default. This'll also help when items get shifted around, as they inevitably do... components shipped with the core that aren't yet in PECL would need to be downloaded with the core anyway because there's no other way to reach them individually, so there _is_ that difference, but that 'core list' is not writ in stone and changes quite frequently. Just some feedback - even if you do nothing more to it it's still pretty neat :) - Steph oh ps - PEAR install yes/no doesn't appear to work - you get .phar either way. Is that intentional for now? ----- Original Message ----- From: "John Mertic" <jmertic@gmail.com> To: <internals@lists.php.net> Sent: Monday, July 24, 2006 4:52 PM Subject: [PHP-DEV] New Installer for PHP 5.2

Wez Furlong

20 years ago
Hi John, Good work :) Any chance you could publish the WiX files for this? I haven't tried it yet, but based on the comments of others, and experience of my own with WiX in a complex product, here are my comments :-) - I think we have way too many PHP extensions to make a checkbox installation per extension a viable option. How do you handle upgrades--does the installer remember which options you checked last time? - It sounds like you're putting stuff in the registry. While that's "fine" if you only have one version of PHP installed, it will screw up people that need to run different versions at the same time. Can this be made optional? - Registering .php to run with php-win.exe. I feel nervous about this--it wouldn't take much for someone to create a malicious .php attachment and exploit some poor soul who has PHP installed; it should be made clear why you'd want to do it and why it might be dangerous. I don't know if you've covered it in your installer already, but you can also register PHP with the event logging infrastructure in windows so that syslog() messages look "nice" in the event log. This is quite simple to do; the windows build does this when you "nmake install". That's all for now; keep up the good work :) --Wez. On 7/24/06, John Mertic <jmertic@gmail.com> wrote: