Позволяване на fsockopen в PHP
На документи замествам за няколко дни колега, макар че на практика не разбирам от РНР. Поискаха ми да разреша fsockopen на един от нашите сървъри. Имам пълни права върху сървъра, но нямам никаква представа как да го направя.
Та, как да проверя дали този параметър или каквото е там, е забранен на първо място и ако да, как да го позволя.
Сървърът е 2003 с IIS и РНР 5.2.0
Re: Позволяване на fsockopen в PHP
Ето ти едно бързо предложение как да провериш дали fsockopen е позволен:
Код:
<?php
$result = fsockopen(localhost);
if ($result) echo 'fsockopen() successful';
else echo 'fsockopen() failed'
?>
Утре ще го мъдрим повече.
Re: Позволяване на fsockopen в PHP
Цитат:
Първоначално публикувано от Slero
Ето ти едно бързо предложение как да провериш дали fsockopen е позволен:
Код:
<?php
$result = fsockopen(localhost);
if ($result) echo 'fsockopen() successful';
else echo 'fsockopen() failed'
?>
Утре ще го мъдрим повече.
Благодаря. А мъдренето ще е в понеделник всъщност, че това е на работа. Не ми се занимава от в къщи
Re: Позволяване на fsockopen в PHP
Цитат:
Първоначално публикувано от Slero
Ето ти едно бързо предложение как да провериш дали fsockopen е позволен:
Код:
<?php
$result = fsockopen(localhost);
if ($result) echo 'fsockopen() successful';
else echo 'fsockopen() failed'
?>
Утре ще го мъдрим повече.
Резултатът тук е: "fsockopen() failed".
Разбирам, че е забранен. Сега какво следва?
Re: Позволяване на fsockopen в PHP
fsockopen отваря сокет конекция на определен порт към определен ресурс - каква е ситуацията по-точно (?
примерно, кажи резултата от следния код:
Код:
<?php
$fp = fsockopen("www.dir.bg", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
echo "Socket opened and is closing now ... <br />\n";
fclose($fp);
}
?>
Re: Позволяване на fsockopen в PHP
Доколкото аз разбрах, ресурсът, към който трябва да се осъществява конекция, е въпросният сървър с 2003 и IIS. Така ли е?
Re: Позволяване на fsockopen в PHP
Цитат:
Първоначално публикувано от recycled_bin
fsockopen отваря сокет конекция на определен порт към определен ресурс - каква е ситуацията по-точно (?
примерно, кажи резултата от следния код:
Код:
<?php
$fp = fsockopen("www.dir.bg", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
echo "Socket opened and is closing now ... <br />\n";
fclose($fp);
}
?>
Резултатът от това е: Цитат:
Socket opened and is closing now ...
А цялата ситуация е следната - сървър под Windows Server 2003 със стартиран IIS и инсталиран PHP 5.2.0. Има инсталиран форум SMF 1.1.1. Един от модераторите иска да инсталира този мод, на чиято страница изрично пише "Requires fsockopen php function to be enabled". Моята задача беше да видя тази функция дали е позволена и ако не - да я позволя и това ми беше всъщност въпросът в първия пост.
Re: Позволяване на fsockopen в PHP
А ако изпълниш същия код, но вместо "www.dir.bg" напишеш "localhost" или "adresa.na.smf.foruma", какъв е резултата?
Допълнение: И провери дали в php.ini имаш такъв ред:
Код:
allow_url_fopen = On
Re: Позволяване на fsockopen в PHP
Цитат:
Първоначално публикувано от Slero
А ако изпълниш същия код, но вместо "
www.dir.bg" напишеш "localhost" или "adresa.na.smf.foruma", какъв е резултата?
И в двата случая същия като с www.dir.bg:
Цитат:
Socket opened and is closing now ...
Цитат:
Първоначално публикувано от Slero
Допълнение: И провери дали в php.ini имаш такъв ред:
Код:
allow_url_fopen = On
Да.
Re: Позволяване на fsockopen в PHP
Според мен, при това положение fsockopen() не е забранен. Въпросният модератор има ли проблем при инсталирането на mod-a ?
Re: Позволяване на fsockopen в PHP
Цитат:
Първоначално публикувано от Slero
Според мен, при това положение fsockopen() не е забранен. Въпросният модератор има ли проблем при инсталирането на mod-a ?
И аз така го разбирам. В крайна сметка аз инсталирах мода и мина успешно, само че самия мод не върши работа. Вероятно проблемът е някъде другаде, може би защото това е интранет сървър и няма достъп до Интернет, а той мода на това разчита, до колкото разбирам...
Re: Позволяване на fsockopen в PHP
fsockopen си работи безпроблемно, както вече са ти казали
като гледам мода, който искаш да сложиш, ти трябва външен достъп до RSS feeds на разни сайтове за автоматичното им публикуване - сигурен ли си, че на този сървър няма външен достъп до интернет, тъй като в противен случай теста с дир.бг не би трябвало да мине?
мога само да предположа, че в случая трябва да направиш някакъв windows task job, който да пуска регулярно съответния скрипт (тъй като под уиндоус нямаш cron демон, който са предложили)