Re: [INTERNALS-WIN] Re: php_yaz php5.3.5 windows

From: Date: Tue, 22 Mar 2011 14:59:19 +0000
Subject: Re: [INTERNALS-WIN] Re: php_yaz php5.3.5 windows
References: 1 2 3 4 5 6 7 8  Groups: php.internals.win 
Request: Send a blank email to internals-win+get-773@lists.php.net to get a copy of this message
On 22 March 2011 14:07, Michael Ridinger <infohiodev@gmail.com> wrote: > Thank you for that explanation.  I did figure out the development files were > missing and included the where they needed to be. > > I've been able to successfully build php_yaz.dll (thank you!!!) but it > doesn't work yet.  I enable it in PHP but in the error log it says it cannot > load the php_yaz dll file because it cannot find the specified module.  Not > sure what that means, but I am closer.  I'm unsure which module it's > refering to as the php_yaz module is present.  If I remove it entirely, I > get a different error, so it's not the location of php_yaz.dll itself, but > of something else. > > Thanks again > > Mike > > On Tue, Mar 22, 2011 at 6:53 AM, Richard Quadling <rquadling@gmail.com>wrote: > >>  On 22 March 2011 04:24, Michael Ridinger <infohiodev@gmail.com> wrote: >> > When I attempt to do a configure --with-yaz, I get the following error: >> > >> > Checking for yaz/yaz-version.h ...  <not found> >> > Checking for yaz/yaz-version.h ...  <not found> >> > WARNING: yaz not enabled; libraries and headers not found >> > >> > I have the yaz pecl extension downloaded and in the correct spot.  When I >> do >> > a configure --help I see the option to use --with-yaz but it's asking for >> > header files. >> > >> > I checked the yaz.dsp script and found it does reference header files but >> > I've not found them anywhere.  Anyone know what is going on? >> > >> > Thanks for the help. >> > >> > Mike >> > >> > On Mon, Mar 21, 2011 at 8:04 PM, Richard Quadling <rquadling@gmail.com >> >wrote: >> > >> >>  On 21 March 2011 19:26, Michael Ridinger <infohiodev@gmail.com> wrote: >> >> > Thank you!  So, my next big question is ... >> >> > >> >> > After I've done the nmake and the build is complete, where's the >> build? >> >>  Is >> >> > a .dll created somewhere?  So far, I dont see one. >> >> > >> >> > I have found a "Release" directory that appears to have the build >> >> > in >> it, >> >> but >> >> > it doesn't have a YAZ ext listed.  Could it still be yaz-enabled? >> >> > >> >> > Things are so much easier on Linux. >> >> > >> >> > Thanks >> >> > >> >> > Mike >> >> > >> >> > On Mon, Mar 21, 2011 at 10:25 AM, Richard Quadling < >> rquadling@gmail.com >> >> >wrote: >> >> > >> >> >>  On 21 March 2011 13:32, Michael Ridinger <infohiodev@gmail.com> >> wrote: >> >> >> > One thing I'm confused about is the compiling process itself. >> >> >> > >> >> >> > I can compile PHP successfully but I'm not sure how to compile >> >> >> > a >> PECL >> >> >> > package.  I just don't understand how to do that?  I've >> >> >> > read >> literally >> >> >> > dozens of tutorials on how to setup the environment to compile PHP, >> >> which >> >> >> > I've done successfully, but then they stop short ot describing >> >> >> > how >> to >> >> >> > compile a PECL package. >> >> >> > >> >> >> > Can it be compiled into PHP 5.3.5 or can it be compiled into a DLL >> I >> >> can >> >> >> use >> >> >> > for an extension or can both be done?  I'm just not real >> >> >> > familiar >> with >> >> >> doing >> >> >> > these types of things.  I don't even know how the file >> >> >> > structure >> >> should >> >> >> be >> >> >> > setup.  And, it gets even more frustrating when I download the >> win32 >> >> PECL >> >> >> > packages and find that YAZ isnt there so I have to get it with CSV. >> >>  I'm >> >> >> > just missing some key pieces. >> >> >> > >> >> >> > I appreciate any way you can help. >> >> >> > >> >> >> > Mike >> >> >> > >> >> >> > On Sun, Mar 20, 2011 at 4:56 PM, Michael Ridinger < >> >> infohiodev@gmail.com >> >> >> >wrote: >> >> >> > >> >> >> >> I've been using php_yaz for a long time with PHP 5.1 and >> >> >> >> 5.2. >>  I've >> >> had >> >> >> to >> >> >> >> setup a new server for another reason and am now using Windows >> 2008R2 >> >> >> and >> >> >> >> PHP5.2.17 or PHP5.3.5 with IIS7 and am having absolutely no luch >> >> getting >> >> >> the >> >> >> >> php_yaz package to build.  In fact, I can't get any >> >> >> >> package to >> build. >> >>  I >> >> >> can >> >> >> >> build PHP, but not any PECL packages and am totally stumped.  I >> tried >> >> >> >> following directions/docs everywhere I could find them and still >> have >> >> >> not >> >> >> >> been able to build this extension. >> >> >> >> >> >> >> >> In the past, I've been able to download the extension and >> >> >> >> use it >> but >> >> >> it's >> >> >> >> not part of the PHP distribution and PECL doesn't have it >> >> >> >> as a >> >> binary... >> >> >> so, >> >> >> >> I have to the building myself. >> >> >> >> >> >> >> >> Anyone know how to do this effectively?  This is very important >> >> >> >> to >> >> me. >> >> >>  I >> >> >> >> need php_yaz for Windows2008 and from what I've read, I >> >> >> >> need to >> >> compile >> >> >> it >> >> >> >> using VC9, which I did.  The one issue that's really threw >> >> >> >> me is >> that >> >> >> >> PHP5.3.5 doesn't run as an ISAPI module but with fast-cgi. >> >> >> >>  That >> >> makes >> >> >> the >> >> >> >> package a little funky to deal with as it requires PHP5ts.dll, >> which >> >> >> isn't >> >> >> >> part of PHP5.3.5 or PHP5.2.17. >> >> >> >> >> >> >> >> Obviously I'm a novice at building such things... I'm >> >> >> >> a developer, >> >> but >> >> >> not >> >> >> >> a package builder.  Can anyone help or show me how to do this >> >> >> >> ... >> or >> >> at >> >> >> the >> >> >> >> very least point me in the right direction? >> >> >> >> >> >> >> >> Thank you >> >> >> >> >> >> >> >> Mike >> >> >> >> >> >> >> > >> >> >> >> >> >> Create a directory that is parallel to your php code. >> >> >> >> >> >> I have >> >> >> >> >> >> L:\BuildPHP\php53dev\vc9\x86 >> >> >>  deps >> >> >>  Patches >> >> >>  pecl >> >> >>  PHP_5_3 >> >> >> >> >> >> In pecl, create a directory for the extension. It will need to >> contain >> >> >> the code from trunk, the branch or the tag that you want to compile. >> >> >> >> >> >> e.g. >> >> >> >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\tests >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\CREDITS >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\README >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\php_yaz.c >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\yaz.dsp >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\php_yaz.h >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\config.m4 >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\config.w32 >> >> >> L:\BuildPHP\php53dev\vc9\x86\pecl\yaz\package.xml >> >> >> etc. >> >> >> >> >> >> When you run buildconf, the configuration of the extensions in pecl >> >> >> will be found. >> >> >> >> >> >> You can then include/exclude them via the configure.js script. >> >> >> >> >> >> If you run ... >> >> >> >> >> >> configure --help >> >> >> >> >> >> you'll see (for yaz) ... >> >> >> >> >> >>  --with-yaz                        YAZ support (ANSI/NISO >> >> >> Z39.50) >> >> >> >> >> >> So, you can now say ... >> >> >> >> >> >> configure --with-yaz=shared >> >> >> >> >> >> (for example - missing out a lot of other options). >> >> >> >> >> >> And when you then run nmake, you'll get yaz compiled. >> >> >> >> >> >> I've not tried it (as I'm a bit slow on these things), but >> >> >> there is a >> >> >> mechanism called phpize which I think it a process to compile a PHP >> >> >> extension without the need to do a full build of PHP. >> >> >> >> >> >> Richard. >> >> >> >> >> >> -- >> >> >> Richard Quadling >> >> >> Twitter : EE : Zend >> >> >> @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY >> >> >> >> >> > >> >> >> >> I'm at home at the moment and don't have a build environment for PHP. >> >> >> >> But, I run nmake install to create a usable installation of php in >> c:\php >> >> >> >> I think the extension is available in Release\pecl\yaz. >> >> >> >> Typing ... >> >> >> >> dir php_yaz.dll /s /b >> >> >> >> should help you find the extension very quickly. >> >> >> >> >> >> >> >> From a unix perspective ... I've no idea. I was of the understanding >> >> that the process was the same... >> >> >> >> buildconf >> >> configure xxxxxx >> >> nmake >> >> >> >> (more or less). >> >> The pecl extensions are, in the main, just a glue/layer between PHP >> and the corresponding library. PHP is NOT responsible for maintaining >> Yaz, just the php <-> yaz extension. >> >> To get the extension compilable from source, you need to include >> appropriate header files from the yaz project (nothing to do with >> PHP). >> >> I got mine from http://ftp.indexdata.dk/pub/yaz/win32/. >> I'd used the >> 4.1.2, but I see that this is now upgraded to 4.1.7. >> >> Download the package you want and install it. You'll need to make sure >> you install the YAZ Development element as this contains the headers >> and library files required by PHP to build the php_yaz extension. >> Again, just to be clear, PHP is not going to be compiling/building >> YAZ. You install that as normal. PHP is only building the php_yaz >> extension which requires headers and libraries to be able to interact >> with the yaz application. >> >> Once you've installed Yaz, copy C:\Program Files\Yaz\include and >> C:\Program Files\Yaz\lib to the deps directory (Mine is on a different >> server L:\BuildPHP\php53dev\vc9\x86\deps). >> >> Now, you run ... >> >> buildconf >> config.nice >> nmake >> >> >> config.nice is just a shortcut to all the configure options you last >> used (except when using configure --help). It saves you having to type >> configure --abc --def --xyz every time you want to run configure. >> >> See how you get on with this. >> >> >> >> Richard. >> >> >> -- >> Richard Quadling >> Twitter : EE : Zend >> @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY >> > He he. Getting there... OK. So now that we have built php_yaz.dll, do you remember that I said that php_yaz.dll is the glue between PHP and YAZ? One of the dependencies of php_yaz.dll is the actual yaz runtime library (yaz4.dll). The fact that PHP (via php_yaz.dll) isn't finding the library suggests that C:\Program Files\YAZ\bin isn't in the path. If you try ... php -ddisplay_startup_errors=1 -m You should see 2 dialogues. The first is the important one and reflects the comments I've just made. "The application has failed to start because yaz4.dll was not found. Re-installing the application may fix the problem." Actually, re-installing won't make any difference. Instead add C:\Program Files\YAZ\bin to your path. SET PATH=%PATH%;C:\Program Files\YAZ\bin PHP -ddisplay_startup_errors=1 -dextension=php_yaz.dll -m and I get output of ... [PHP Modules] bcmath calendar com_dotnet Core ctype curl date dom ereg filter ftp hash iconv json libxml mcrypt mhash mysqlnd odbc openssl pcre PDO pdo_mysql Phar Reflection session SimpleXML SPL standard tokenizer wddx xml xmlreader xmlwriter yaz zip zlib If you need notes on how to add a directory to the PATH, please take a look at http://uk.php.net/manual/en/faq.installation.php#faq.installation.addtopath, substituting C:\PHP for C:\Program Files\YAZ\bin Regards, Richard. -- Richard Quadling Twitter : EE : Zend @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

« previous php.internals.win (#773) next »