PostgreSQl, PHP and IIS

Started by Mark Williamsalmost 8 years ago9 messagesgeneral
Jump to latest
#1Mark Williams
markwillimas@gmail.com

I have PHP v7.2.7 and PostgreSQL v10 with Windows IIS.

I am trying to get this to work following any advice I have been able to
find on the web, but with no success. My configuration so far is as below.

PHP.ini extension list includes both php_pdo_pgsql.dll and php_pgsql.dll.

Both these dlls are located in the correct extensions directory according to
phpinfo.

According to phpinfo the Configuration File Path is "C:\Windows" and the
Loaded Configuration File is "C:\Program Files\PHP\v7.2\php.ini". I have the
same php.ini file at both locations.

I have copied the version of libpq.dll from the lib folder of the postgresql
installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the Windows
system search path.

Phpinfo shows that pdo_pgsql extension is loaded but not pgsql.

I have also tried copying the dependent dlls (ssleay32.dll, libeay32.dll,
libintl-8.dll, libiconv-2.dll) from the postgresql bin folder to the php
root folder).

Phpinfo show php_pdo_pgsql is enabled, but not php_pgsql.dll and an
undefined function call error is displayed by php when I try and run any pg
php functions.

Can anyone please shed any light on what more I need to do?

Regards,

Mark

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Mark Williams (#1)
Re: PostgreSQl, PHP and IIS

On 9/21/18 10:35 AM, Mark Williams wrote:

I have PHP v7.2.7 and PostgreSQL v10 with Windows IIS.

I am trying to get this to work following any advice I have been able to
find on the web, but with no success. My configuration so far is as below.

PHP.ini extension list includes both php_pdo_pgsql.dll and php_pgsql.dll.

Both these dlls are located in the correct extensions directory
according to phpinfo.

According to phpinfo the Configuration File Path is "C:\Windows" and the
Loaded Configuration File is "C:\Program Files\PHP\v7.2\php.ini". I have
the same php.ini file at both locations.

I have copied the version of libpq.dll from the lib folder of the
postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the
Windows system search path.

Phpinfo shows that pdo_pgsql extension is loaded but not pgsql.

I have also tried copying the dependent dlls (ssleay32.dll,
libeay32.dll, libintl-8.dll, libiconv-2.dll) from the postgresql bin
folder to the php root folder).

Phpinfo show php_pdo_pgsql is enabled, but not php_pgsql.dll and an
undefined function call error is displayed by php when I try and run any
pg php functions.

Can anyone please shed any light on what more I need to do?

So what is the error you are getting?

Or to put it another way, what is not happening?

Regards,

Mark

--
Adrian Klaver
adrian.klaver@aklaver.com

#3Mark Williams
markwillimas@gmail.com
In reply to: Adrian Klaver (#2)
RE: PostgreSQl, PHP and IIS

"Fatal error: Call to undefined function pg_connect".

Obviously, that is to be expected if pgsql module is not loading.

__

-----Original Message-----
From: Adrian Klaver <adrian.klaver@aklaver.com>
Sent: 21 September 2018 23:02
To: Mark Williams <markwillimas@gmail.com>;
pgsql-general@lists.postgresql.org
Subject: Re: PostgreSQl, PHP and IIS

On 9/21/18 10:35 AM, Mark Williams wrote:

I have PHP v7.2.7 and PostgreSQL v10 with Windows IIS.

I am trying to get this to work following any advice I have been able
to find on the web, but with no success. My configuration so far is as

below.

PHP.ini extension list includes both php_pdo_pgsql.dll and php_pgsql.dll.

Both these dlls are located in the correct extensions directory
according to phpinfo.

According to phpinfo the Configuration File Path is "C:\Windows" and
the Loaded Configuration File is "C:\Program Files\PHP\v7.2\php.ini".
I have the same php.ini file at both locations.

I have copied the version of libpq.dll from the lib folder of the
postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the
Windows system search path.

Phpinfo shows that pdo_pgsql extension is loaded but not pgsql.

I have also tried copying the dependent dlls (ssleay32.dll,
libeay32.dll, libintl-8.dll, libiconv-2.dll) from the postgresql bin
folder to the php root folder).

Phpinfo show php_pdo_pgsql is enabled, but not php_pgsql.dll and an
undefined function call error is displayed by php when I try and run
any pg php functions.

Can anyone please shed any light on what more I need to do?

So what is the error you are getting?

Or to put it another way, what is not happening?

Regards,

Mark

--
Adrian Klaver
adrian.klaver@aklaver.com

#4Daniel Verite
daniel@manitou-mail.org
In reply to: Mark Williams (#1)
Re: PostgreSQl, PHP and IIS

Mark Williams wrote:

Can anyone please shed any light on what more I need to do?

Overall, what you did looks good.
I've never used IIS, but when faced with similar problems with Apache,
ProcessExplorer [1]https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer has been quite effective to figure out which
dependent DDLs were missing, where PHP was searching for them,
and the precise errors it encountered.

[1]: https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

Best regards,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite

#5Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Mark Williams (#3)
Re: PostgreSQl, PHP and IIS

On 9/22/18 3:06 AM, Mark Williams wrote:

"Fatal error: Call to undefined function pg_connect".

Obviously, that is to be expected if pgsql module is not loading.

Went back over your previous post and saw:

"I have copied the version of libpq.dll from the lib folder of the
postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the
Windows system search path.
"

I would say add the lib/ of the Postgres install to the search path.

__

-----Original Message-----
From: Adrian Klaver <adrian.klaver@aklaver.com>
Sent: 21 September 2018 23:02
To: Mark Williams <markwillimas@gmail.com>;
pgsql-general@lists.postgresql.org
Subject: Re: PostgreSQl, PHP and IIS

On 9/21/18 10:35 AM, Mark Williams wrote:

I have PHP v7.2.7 and PostgreSQL v10 with Windows IIS.

I am trying to get this to work following any advice I have been able
to find on the web, but with no success. My configuration so far is as

below.

PHP.ini extension list includes both php_pdo_pgsql.dll and php_pgsql.dll.

Both these dlls are located in the correct extensions directory
according to phpinfo.

According to phpinfo the Configuration File Path is "C:\Windows" and
the Loaded Configuration File is "C:\Program Files\PHP\v7.2\php.ini".
I have the same php.ini file at both locations.

I have copied the version of libpq.dll from the lib folder of the
postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the
Windows system search path.

Phpinfo shows that pdo_pgsql extension is loaded but not pgsql.

I have also tried copying the dependent dlls (ssleay32.dll,
libeay32.dll, libintl-8.dll, libiconv-2.dll) from the postgresql bin
folder to the php root folder).

Phpinfo show php_pdo_pgsql is enabled, but not php_pgsql.dll and an
undefined function call error is displayed by php when I try and run
any pg php functions.

Can anyone please shed any light on what more I need to do?

So what is the error you are getting?

Or to put it another way, what is not happening?

Regards,

Mark

--
Adrian Klaver
adrian.klaver@aklaver.com

--
Adrian Klaver
adrian.klaver@aklaver.com

#6Mark Williams
markwillimas@gmail.com
In reply to: Adrian Klaver (#5)
RE: PostgreSQl, PHP and IIS

Thanks for the suggestions.

I don't think there is any dependencies in the lib folder, but added it anyway and it made no difference.

I tried "Process Explorer" (having previously tried "Dependency Walker") PE revealed one or two more dependencies I was previously unaware of. Added these to the root PHP folder, but still got me no further. I have even added Postgres.EXE to the php root folder.

In desperation I tried adding all the postgres files to the PHP Ext folder. Unsurprisingly that did not yield results either.

Does anyone know of a step by step guide for installing php and postgres on windows server? So I can doublecheck to see if there is anything I have missed. I can only assume I have made some simple mistake as it surely can't be this difficult to set up.

Cheers,

Mark

__

-----Original Message-----
From: Adrian Klaver <adrian.klaver@aklaver.com>
Sent: 22 September 2018 16:45
To: Mark Williams <markwillimas@gmail.com>; pgsql-general@lists.postgresql.org
Subject: Re: PostgreSQl, PHP and IIS

On 9/22/18 3:06 AM, Mark Williams wrote:

"Fatal error: Call to undefined function pg_connect".

Obviously, that is to be expected if pgsql module is not loading.

Went back over your previous post and saw:

"I have copied the version of libpq.dll from the lib folder of the postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the Windows system search path.
"

I would say add the lib/ of the Postgres install to the search path.

__

-----Original Message-----
From: Adrian Klaver <adrian.klaver@aklaver.com>
Sent: 21 September 2018 23:02
To: Mark Williams <markwillimas@gmail.com>;
pgsql-general@lists.postgresql.org
Subject: Re: PostgreSQl, PHP and IIS

On 9/21/18 10:35 AM, Mark Williams wrote:

I have PHP v7.2.7 and PostgreSQL v10 with Windows IIS.

I am trying to get this to work following any advice I have been able
to find on the web, but with no success. My configuration so far is
as

below.

PHP.ini extension list includes both php_pdo_pgsql.dll and php_pgsql.dll.

Both these dlls are located in the correct extensions directory
according to phpinfo.

According to phpinfo the Configuration File Path is "C:\Windows" and
the Loaded Configuration File is "C:\Program Files\PHP\v7.2\php.ini".
I have the same php.ini file at both locations.

I have copied the version of libpq.dll from the lib folder of the
postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the
Windows system search path.

Phpinfo shows that pdo_pgsql extension is loaded but not pgsql.

I have also tried copying the dependent dlls (ssleay32.dll,
libeay32.dll, libintl-8.dll, libiconv-2.dll) from the postgresql bin
folder to the php root folder).

Phpinfo show php_pdo_pgsql is enabled, but not php_pgsql.dll and an
undefined function call error is displayed by php when I try and run
any pg php functions.

Can anyone please shed any light on what more I need to do?

So what is the error you are getting?

Or to put it another way, what is not happening?

Regards,

Mark

--
Adrian Klaver
adrian.klaver@aklaver.com

--
Adrian Klaver
adrian.klaver@aklaver.com

#7Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Mark Williams (#6)
Re: PostgreSQl, PHP and IIS

On 9/23/18 3:54 AM, Mark Williams wrote:

Thanks for the suggestions.

I don't think there is any dependencies in the lib folder, but added it anyway and it made no difference.

I tried "Process Explorer" (having previously tried "Dependency Walker") PE revealed one or two more dependencies I was previously unaware of. Added these to the root PHP folder, but still got me no further. I have even added Postgres.EXE to the php root folder.

In desperation I tried adding all the postgres files to the PHP Ext folder. Unsurprisingly that did not yield results either.

Does anyone know of a step by step guide for installing php and postgres on windows server? So I can doublecheck to see if there is anything I have missed. I can only assume I have made some simple mistake as it surely can't be this difficult to set up.

Maybe this?:

https://docs.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-on-iis/install-and-configure-php

Cheers,

Mark

__

-----Original Message-----
From: Adrian Klaver <adrian.klaver@aklaver.com>
Sent: 22 September 2018 16:45
To: Mark Williams <markwillimas@gmail.com>; pgsql-general@lists.postgresql.org
Subject: Re: PostgreSQl, PHP and IIS

On 9/22/18 3:06 AM, Mark Williams wrote:

"Fatal error: Call to undefined function pg_connect".

Obviously, that is to be expected if pgsql module is not loading.

Went back over your previous post and saw:

"I have copied the version of libpq.dll from the lib folder of the postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the Windows system search path.
"

I would say add the lib/ of the Postgres install to the search path.

--
Adrian Klaver
adrian.klaver@aklaver.com

#8Mark Williams
markwillimas@gmail.com
In reply to: Adrian Klaver (#7)
RE: PostgreSQl, PHP and IIS

Hi thanks,

Sadly PHP and IIS isn't the issue. It’s when you bring Postgres into the fold that I am getting a problem. But thanks.

Mark

__

-----Original Message-----
From: Adrian Klaver <adrian.klaver@aklaver.com>
Sent: 23 September 2018 15:36
To: Mark Williams <markwillimas@gmail.com>; pgsql-general@lists.postgresql.org; daniel@manitou-mail.org
Subject: Re: PostgreSQl, PHP and IIS

On 9/23/18 3:54 AM, Mark Williams wrote:

Thanks for the suggestions.

I don't think there is any dependencies in the lib folder, but added it anyway and it made no difference.

I tried "Process Explorer" (having previously tried "Dependency Walker") PE revealed one or two more dependencies I was previously unaware of. Added these to the root PHP folder, but still got me no further. I have even added Postgres.EXE to the php root folder.

In desperation I tried adding all the postgres files to the PHP Ext folder. Unsurprisingly that did not yield results either.

Does anyone know of a step by step guide for installing php and postgres on windows server? So I can doublecheck to see if there is anything I have missed. I can only assume I have made some simple mistake as it surely can't be this difficult to set up.

Maybe this?:

https://docs.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-on-iis/install-and-configure-php

Cheers,

Mark

__

-----Original Message-----
From: Adrian Klaver <adrian.klaver@aklaver.com>
Sent: 22 September 2018 16:45
To: Mark Williams <markwillimas@gmail.com>; pgsql-general@lists.postgresql.org
Subject: Re: PostgreSQl, PHP and IIS

On 9/22/18 3:06 AM, Mark Williams wrote:

"Fatal error: Call to undefined function pg_connect".

Obviously, that is to be expected if pgsql module is not loading.

Went back over your previous post and saw:

"I have copied the version of libpq.dll from the lib folder of the postgresql installation to the root folder of the PHP installation.

I have added the bin folder of the postgresql installation to the Windows system search path.
"

I would say add the lib/ of the Postgres install to the search path.

--
Adrian Klaver
adrian.klaver@aklaver.com

#9rob stone
floriparob@gmail.com
In reply to: Mark Williams (#8)
Re: PostgreSQl, PHP and IIS

Hi

On Mon, 2018-09-24 at 10:46 +0100, Mark Williams wrote:

Hi thanks,

Sadly PHP and IIS isn't the issue. It’s when you bring Postgres into
the fold that I am getting a problem. But thanks.

Mark

I'm not a Windows user and no little about setting up Postgres using
IIS, but you might find something useful from users' comments at this
link:-

http://www.php.net/manual/en/pgsql.setup.php

Cheers,
Rob