Re: [INTERNALS-WIN] Re: php_yaz php5.3.5 windows
| From: | Richard Quadling | 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