Re: [INTERNALS-WIN] Re: php_yaz php5.3.5 windows
[email protected] (Richard Quadling)
| Newsgroups | php.internals.win |
|---|---|
| Message-ID | <[email protected]> |
On 22 March 2011 14:07, Michael Ridinger <[email protected]> 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 <[email protected]>wrote: > >> On 22 March 2011 04:24, Michael Ridinger <[email protected]> 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 <[email protected] >> >wrote: >> > >> >> On 21 March 2011 19:26, Michael Ridinger <[email protected]> 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 < >> [email protected] >> >> >wrote: >> >> > >> >> >> On 21 March 2011 13:32, Michael Ridinger <[email protected]> >> 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 < >> >> [email protected] >> >> >> >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