В PHP 7.2 на компьютере с Centos 7 я пытаюсь получить доступ к конечной точке Apache Jena Fuseki 3.6 SPARQL.
Fuseki работает на порту 3030, имя набора данных ds
и я могу успешно бежать curl http://localhost:3030/ds
— при входе в систему даже с пользователем без прав.
Пока все в порядке.
Тем не менее, когда я пытаюсь в сценарии PHP сделать fopen("http://127.0.0.1:3030/ds","r");
или же fopen("http://localhost:3030/ds","r");
Я всегда заканчиваю с PHP Warning: fopen(http://localhost:3030/ds): failed to open stream: Permission denied
,
Извлечение файла из WWW или даже с того же сервера Apache, как fopen("http://localhost/mytest.html","r");
работает хоть.
Существуют ли какие-либо специальные разрешения, необходимые для доступа к другому локальному порту? firewalld
деактивирован, кстати.
Оказалось, что причиной проблемы является SELinux, не позволяющий Apache выполнять исходящие соединения на других портах.
Посмотреть здесь: http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/
Других решений пока нет …