Author |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Mon 05 Jun '06 6:07 Post subject: PHP Win64 (for Apache 2.2 Win64) - Development |
|
|
I am creating this topic in order to encouage and help the development of PHP 5x Win64 (to use with Apache 2 Win64!)
I have started a lot of the work myself. I don't have extensive knowledge in C/C++ so although I may get it working it's not perfect and not quick to show up. However, I'm willing to try.
I highly suggest using this PHP build with Jorge's Apache 2.2.2 Win64 build: http://www.blackdot.be/?inc=apache/binaries
I hope as a group we can get a decent PHP x64 build going for Windows.
All Files: http://www.fusionxlan.com/PHPx64/
Latest snapshot: http://www.fusionxlan.com/PHPx64/PHP-current-x64.zip - 10 MB
PHP Info page: http://www.fusionxlan.com/PHPx64/phpinfo-5.1.4-x64-2006-06-04.html
Code: | This snapshot was automatically generated on
Fri, 28 Jul 2006 23:34:30 -0500
Version: 5.1.4 (x64)
Branch: HEAD
Build: Release_TS
Built-in Extensions
===========================
bcmath
calendar
com_dotnet
ctype
date
ftp
hash
iconv
odbc
pcre
Reflection
session
libxml
standard
tokenizer
zlib
SimpleXML
dom
SPL
wddx
xml
xmlreader
xmlwriter
Dependency information:
Module: php5apache2.dll
===========================
libapr-1.dll
libaprutil-1.dll
msvcr80.dll
Module: php-cgi.exe
===========================
msvcr80.dll
Module: php.exe
===========================
msvcr80.dll
Module: php-win.exe
===========================
msvcr80.dll
Module: php_bz2.dll
===========================
msvcr80.dll
Module: php_curl.dll
===========================
libcurl.dll
libeay32.dll
msvcr80.dll
Module: php_dbase.dll
===========================
msvcr80.dll
Module: php_filepro.dll
===========================
msvcr80.dll
Module: php_gd2.dll
===========================
msvcr80.dll
Module: php_gettext.dll
===========================
intl.dll
msvcr80.dll
Module: php_mime_magic.dll
===========================
msvcr80.dll
Module: php_mysql.dll
===========================
libmysql.dll
msvcr80.dll
Module: php_mysqli.dll
===========================
libmysql.dll
msvcr80.dll
Module: php_openssl.dll
===========================
ssleay32.dll
libeay32.dll
msvcr80.dll
Module: php_shmop.dll
===========================
msvcr80.dll
Module: php_sockets.dll
===========================
msvcr80.dll
Module: php_tidy.dll
===========================
msvcr80.dll
Module: php_exif.dll
===========================
php_mbstring.dll
msvcr80.dll
Module: php_pdo.dll
===========================
msvcr80.dll
Module: php_pdo_mysql.dll
===========================
libmysql.dll
msvcr80.dll
Module: php_pdo_odbc.dll
===========================
msvcr80.dll
Module: php_pdo_sqlite.dll
===========================
msvcr80.dll
Module: php_soap.dll
===========================
msvcr80.dll
Module: php_xmlrpc.dll
===========================
msvcr80.dll |
Admin Note: Update the URL, now points to new location.
Last edited by PaRK_7677 on Sat 29 Jul '06 7:20; edited 1 time in total |
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Mon 05 Jun '06 13:32 Post subject: |
|
|
acutally what version of VS are you using?
I can't even mange to compile a basic php build :/ |
|
Back to top |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Mon 05 Jun '06 15:09 Post subject: |
|
|
I'm using VS .NET 2005. Getting it to even compile with minimum extensions was difficult. I suggest using the command line and doing something like "nmake > c:\build.log" then viewing the long after and correcting any errors you find. It's tedious work. When I get some more libraries compiled in x64 I'll host those also for people wanting to compile themselves. With so many libraries (I've got about 35 done) it gets exponentially harder because I have to debug them also.
The biggest tip I can give you is the 32-bit time will be the hardest part. Once you edit your system includes to be more 64-bit friendly you will have a better time at getting something to compile. I'll try to look back and find the files I changed.
Have you tried the new build? |
|
Back to top |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Mon 05 Jun '06 16:11 Post subject: |
|
|
Here are some headers that I can tell I've modified. It may not be all of them but it's a start.
Modified headers: http://www.fusionxlan.com/PHPx64/modified-headers.zip
Code: | Modified Headers for PHP 5.1.x Win64
Place in Visual Studio directory.
Ex: C:\Program Files (x86)\Microsoft Visual Studio 8\VC
!!!!!!MAKE BACKUPS OF YOUR ORIGINALS!!!!!!
------------------------------------------------
\Microsoft Visual Studio 8\VC\include
crtdefs.h
time.h
------------------------------------------------
\Microsoft Visual Studio 8\VC\include\sys
stat.h
types.h
utime.h |
|
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Tue 06 Jun '06 15:46 Post subject: |
|
|
acutally once you get everything working it might be a good idea to remove the php source and drop in a fresh one... and see if it will work with the modified libraries. |
|
Back to top |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Tue 06 Jun '06 20:39 Post subject: |
|
|
Jorge wrote: | acutally once you get everything working it might be a good idea to remove the php source and drop in a fresh one... and see if it will work with the modified libraries. |
I have managed to build two different copies of the source code with my libraries. The ones I do have work. There are ones missing mostly because they are not open source. The company releases the libraries but only in 32-bit. With no source they can not be recompiled. Others like GD (images) and GMP (arbitrary precision arithmetic) don't want to compile for me. Still works-in-progress.
Even with the latest build, the "reset connection" bug is present. Sometimes instead of returning an error to process, PHP will reset the connection. For example, file_get_contents() will reset the connection instead of returning file not found error. When the file is found, however, PHP acts normal.
Jorge, if you can get PHP to compile also I hope we both will be able to make progress. I've bundled what libraries and DLLs I have for now, which along with the modified headers (also included in the developer zip) you should be able to build with "cscript /nologo configure.js --enable-snapshot-build" & then "nmake snap" from the command line (Start Menu > Programs > Microsoft Visual Studio 2005 > Visual Studio Tools > Visual Studio 2005 x64 Win64 Command Prompt)
Developer Toolkit: http://www.fusionxlan.com/PHPx64/developer-tools-2006-06-06.zip - 30.3 MB
That ZIP should be everything you need to build PHP in 64-bit. Download your own version of the source code from PHP.net to use! |
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Wed 07 Jun '06 12:15 Post subject: |
|
|
PaRK_7677 wrote: | Jorge wrote: | acutally once you get everything working it might be a good idea to remove the php source and drop in a fresh one... and see if it will work with the modified libraries. |
I have managed to build two different copies of the source code with my libraries. The ones I do have work. There are ones missing mostly because they are not open source. The company releases the libraries but only in 32-bit. With no source they can not be recompiled. Others like GD (images) and GMP (arbitrary precision arithmetic) don't want to compile for me. Still works-in-progress.
Even with the latest build, the "reset connection" bug is present. Sometimes instead of returning an error to process, PHP will reset the connection. For example, file_get_contents() will reset the connection instead of returning file not found error. When the file is found, however, PHP acts normal.
Jorge, if you can get PHP to compile also I hope we both will be able to make progress. I've bundled what libraries and DLLs I have for now, which along with the modified headers (also included in the developer zip) you should be able to build with "cscript /nologo configure.js --enable-snapshot-build" & then "nmake snap" from the command line (Start Menu > Programs > Microsoft Visual Studio 2005 > Visual Studio Tools > Visual Studio 2005 x64 Win64 Command Prompt)
Developer Toolkit: http://www.fusionxlan.com/PHPx64/developer-tools-2006-06-06.zip - 30.3 MB
That ZIP should be everything you need to build PHP in 64-bit. Download your own version of the source code from PHP.net to use! |
I'll try to give it a look this afternoun... if not on saterday,
GD is a bitch, so many depenencies i compiled it once on mac... jpeg only support and was hell. |
|
Back to top |
|
Apach-ed
Joined: 13 Jul 2006 Posts: 1
|
Posted: Thu 13 Jul '06 19:42 Post subject: Installation correct ?!? |
|
|
HI, thanks for you link for apache x64!!
I have installed it on windows xp pro x64 and apache works. I als have mysql x64 which works too. Now I downloaded the php zip file and unpacked it to c:\program files\php. I followed the instructions (which probably went wrong somewhere) and made a php file with phpinfo in it. This page remains white....
Any ideas? |
|
Back to top |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Thu 13 Jul '06 19:56 Post subject: Re: Installation correct ?!? |
|
|
Apach-ed wrote: | HI, thanks for you link for apache x64!!
I have installed it on windows xp pro x64 and apache works. I als have mysql x64 which works too. Now I downloaded the php zip file and unpacked it to c:\program files\php. I followed the instructions (which probably went wrong somewhere) and made a php file with phpinfo in it. This page remains white....
Any ideas? |
What does your Apache configuration file look like (the PHP part)? Should look similar to blow:
Code: | LoadModule php5_module "c:/location to php/php5apache2.dll"
AddType application/x-httpd-php .php |
A completely white page almost sounds like an error with the code. Your phpinfo page should look like this:
Code: | <?php
phpinfo();
?> |
|
|
Back to top |
|
DomZ
Joined: 26 Jul 2006 Posts: 6
|
Posted: Wed 26 Jul '06 19:13 Post subject: |
|
|
I would like to compile Apache X64 for my production server but my developpement server is intel 32bit.
Can we compile for x64 on 32bit machine ?
Regards |
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Wed 26 Jul '06 20:17 Post subject: |
|
|
DomZ wrote: | I would like to compile Apache X64 for my production server but my developpement server is intel 32bit.
Can we compile for x64 on 32bit machine ?
Regards |
No you can't,
the 64-bit compiler is written in you guessed it 64-bit.
Check out http://www.blackdot.be/?inc=apachebin.htm
There clean build nothing alterd... although if you need php i'd still wait till a full build is create |
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Wed 26 Jul '06 20:18 Post subject: |
|
|
@PaRK_7677:
Can what exact building steps did you take i had a go at php x64 but not luck! php x86 worked fine. |
|
Back to top |
|
DomZ
Joined: 26 Jul 2006 Posts: 6
|
Posted: Thu 27 Jul '06 15:13 Post subject: |
|
|
Jorge wrote: |
the 64-bit compiler is written in you guessed it 64-bit.
Check out http://www.blackdot.be/?inc=apachebin.htm
There clean build nothing alterd... although if you need php i'd still wait till a full build is create |
Ok thanks, i will waiting for a full release so
That would be great to have apache compiled with the PHP module. |
|
Back to top |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Sat 29 Jul '06 6:58 Post subject: |
|
|
Jorge wrote: | @PaRK_7677:
Can what exact building steps did you take i had a go at php x64 but not luck! php x86 worked fine. |
I'll work on trying to get a step-by-step manual going for what I did. It may take a while with everything else going on.
Did you replace the header files? Another suggestion is to dump the build output into a file (nmake snap >> C:\build.txt). You can scan over the build log and find the errors to fix them. Most of the time you'll find that it can't locate files. Fix and repeat.
BTW I just got GD2 library to compile I tested it in PHP and it works so far. I'll try to update the release ZIP soon to include it. |
|
Back to top |
|
DomZ
Joined: 26 Jul 2006 Posts: 6
|
Posted: Sat 29 Jul '06 12:09 Post subject: |
|
|
PaRK_7677 wrote: | Jorge wrote: | @PaRK_7677:
Can what exact building steps did you take i had a go at php x64 but not luck! php x86 worked fine. |
I'll work on trying to get a step-by-step manual going for what I did. It may take a while with everything else going on.
Did you replace the header files? Another suggestion is to dump the build output into a file (nmake snap >> C:\build.txt). You can scan over the build log and find the errors to fix them. Most of the time you'll find that it can't locate files. Fix and repeat.
BTW I just got GD2 library to compile I tested it in PHP and it works so far. I'll try to update the release ZIP soon to include it. |
Excellent work !
I tested the last release (with GD2) i can confirm that's working well. The release still lacks some module (mhash, zip, ...) but you are surely working on them .
I think you must share your work with PHP team |
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Sat 29 Jul '06 14:22 Post subject: |
|
|
PaRK_7677 wrote: | Jorge wrote: | @PaRK_7677:
Can what exact building steps did you take i had a go at php x64 but not luck! php x86 worked fine. |
I'll work on trying to get a step-by-step manual going for what I did. It may take a while with everything else going on.
Did you replace the header files? Another suggestion is to dump the build output into a file (nmake snap >> C:\build.txt). You can scan over the build log and find the errors to fix them. Most of the time you'll find that it can't locate files. Fix and repeat.
BTW I just got GD2 library to compile I tested it in PHP and it works so far. I'll try to update the release ZIP soon to include it. |
I'll be looking forward to it |
|
Back to top |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Sun 30 Jul '06 1:05 Post subject: |
|
|
Good news Jorge! I had a long car ride today so I wrote down the steps on my laptop. They may not be as descriptive as some might need because I have done it and may not remember every little step.
Give it a try and let me know if parts are missing or confusing! Good luck building!
http://www.fusionxlan.com/PHPx64/how-to-compile.html
I also update the Developer Toolkit which will need to be re-downloaded to compile GD2. All the required links and tools are listed in the How-To. |
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Sun 30 Jul '06 12:48 Post subject: |
|
|
The latest development kit release by php is newer and has support for apache2.2 native,
Maybe you can update your's aswel.
Couldn't get it to work.
Did you hardcode paths in configer.js? |
|
Back to top |
|
PaRK_7677
Joined: 01 Jun 2006 Posts: 65 Location: Missouri
|
Posted: Sun 30 Jul '06 19:45 Post subject: |
|
|
Jorge wrote: | The latest development kit release by php is newer and has support for apache2.2 native,
Maybe you can update your's aswel.
Couldn't get it to work.
Did you hardcode paths in configer.js? | Sorry. The configure.js is coded with the path when you run buildconfig (but I don't have you do this since we need the modified configure.js script). I have 2 builds of PHP, one to try stuff on and one that works. I forgot to patch the path for the configure.js.
Here is a fixed version: http://www.fusionxlan.com/PHPx64/hacked-configure-script.zip
PATH TO PHP BUILD MUST BE: "C:\phpx64\php-5.1.4\" (Readme explains how to change it)[/b]
Thanks for finding that
If you still can not get it to build Jorge please do
Code: | cscript configure.js "--enable-snapshot-build" >> C:\config.txt
nmake clean
nmake snap >> C:\build.txt |
And attach config.txt and build.txt to a post so I can see what's wrong still |
|
Back to top |
|
Jorge
Joined: 12 Mar 2006 Posts: 376 Location: Belgium
|
Posted: Mon 31 Jul '06 11:03 Post subject: |
|
|
Seems to be because the vs 2005 pro is vastly different from vs 2005 free or std |
|
Back to top |
|