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
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
Ilia Alshanetsky 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
- 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
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
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.
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 extensionsPHP Windows Users are clearly "not getting it" on this extension DLL
thing...:-)
--
Like Music?
http://l-i-e.com/artists.htm
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
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:
-
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. -
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.) -
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...) -
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. -
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) -
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. -
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
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 theprocess."
-Mark Twain
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.
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 theprocess."
-Mark Twain