PHP connect to Postgre(cygwin)
1 отговора
33 прегледа
PHP connect to Postgre(cygwin)
hi
na windows mashina sum.
instalirah si Cygwin vsi4ko s nego e OK. Vurvi si normalno. Conectwam se pisha zqwki v konzolata.
Problema mi e 4e ne moga da se svyrja s PHP kym PostgreSQL(cygwin).
Dawa slednoto suob6tenie:
"pg_connect(): Unable to connect to PostgreSQL server: could not create socket: An address incompatible with the requested protocol was used. "
Nqkoj moje li da pomogne i da kaje kude e problema eventualno i da napishe edin conn string za wryzka kum PostgreSQL(cygwin).
nestat -an ne mi dawa 5432 port da se slu6a na nego, ta si mislq eventualno cygwin да е писнал Постгрето на друг порт не на дефоултния.
na windows mashina sum.
instalirah si Cygwin vsi4ko s nego e OK. Vurvi si normalno. Conectwam se pisha zqwki v konzolata.
Problema mi e 4e ne moga da se svyrja s PHP kym PostgreSQL(cygwin).
Dawa slednoto suob6tenie:
"pg_connect(): Unable to connect to PostgreSQL server: could not create socket: An address incompatible with the requested protocol was used. "
Nqkoj moje li da pomogne i da kaje kude e problema eventualno i da napishe edin conn string za wryzka kum PostgreSQL(cygwin).
nestat -an ne mi dawa 5432 port da se slu6a na nego, ta si mislq eventualno cygwin да е писнал Постгрето на друг порт не на дефоултния.
Re: PHP connect to Postgre(cygwin)
значи по подразбиране postgresql не слуша на порт, а само на UNIX socket, сега проблема като е под cygwin, там незнам къде си гослага този socket
обикновено е /tmp/.s.PGSQL.5432 (това се вижда от cygwin-а от windows, трябва да е примерно c:\cygwin\tmp\.s.PGSQL.5432
значи ако php-то също е под cygwin-а може да пробваш в connection стринга, да не слагаш host=localhost тогава ще търси сокета и най-вероятно ще го намери, ако не го намери или php-то не е по cygwin остава другият вариант ;-) TCP/IP
отиваш в data директорията на postgresql-а, там има файл postgresql.conf в него има ред tcpip_socket = false, правиш го да е true (може да добавиш и virtual_host ако имаш много IP-та и не искаш да слуша на всички, изобщо за security чети :-)))
след това при този файл има някъде и файл pg_hba.conf
там най отдолу добавяш например
host all all 10.0.0.0 255.255.255.0 md5
реда зависи от версията на postgresql, това е за 7.4.2, ако е различна ще видиш промерите от горе, където 10.0.0.0/255.255.255.0 е мрежата от която искаш да разрешаваш връзка (и пак за допълнително security, прочети кво пише поне в тези файлове ;-))
обикновено е /tmp/.s.PGSQL.5432 (това се вижда от cygwin-а от windows, трябва да е примерно c:\cygwin\tmp\.s.PGSQL.5432
значи ако php-то също е под cygwin-а може да пробваш в connection стринга, да не слагаш host=localhost тогава ще търси сокета и най-вероятно ще го намери, ако не го намери или php-то не е по cygwin остава другият вариант ;-) TCP/IP
отиваш в data директорията на postgresql-а, там има файл postgresql.conf в него има ред tcpip_socket = false, правиш го да е true (може да добавиш и virtual_host ако имаш много IP-та и не искаш да слуша на всички, изобщо за security чети :-)))
след това при този файл има някъде и файл pg_hba.conf
там най отдолу добавяш например
host all all 10.0.0.0 255.255.255.0 md5
реда зависи от версията на postgresql, това е за 7.4.2, ако е различна ще видиш промерите от горе, където 10.0.0.0/255.255.255.0 е мрежата от която искаш да разрешаваш връзка (и пак за допълнително security, прочети кво пише поне в тези файлове ;-))