У меня есть скрипт Python, который отлично работает в командной строке Linux. Когда я пытаюсь вызвать его изнутри страницы PHP, скрипт останавливается на запросе get. Честно говоря, вероятно, есть смысл лучше интегрировать скрипты Python в веб-страницы (не стесняйтесь, направьте меня к ресурсу, чтобы помочь мне начать здесь). Однако сейчас я пытаюсь заставить этот скрипт работать. Если я размещаю операторы print перед get, они печатаются. Тем не менее, операторы print не работают после get.
Скрипт python ничего не ожидает при вызове, я просто удалил имя пользователя и пароль из скрипта.
Вот что возвращается, когда я запускаю его из командной строки:
$ python test.py
(u'172.18.251.225', u'25502760-d9a5-11e6-80af-00505684337f', u'MNIT LAN Device')
$
Вот мой скрипт на python:
#!/usr/bin python
import json
import requests
ERSUser = 'user'
ERSPassword = 'pass'
s = requests.session()
s.auth = (ERSUser, ERSPassword)
s.verify = True
s.headers.update({
'Accept': 'application/json',
'Connection': 'keep_alive',
'Content_type': 'application/json'
})
url = "https://www.myserver.com:9060/ers/config/networkdevicefilter=ipaddress.EQ.172.18.251.225"
r = s.get(url)
for i in r.json()['SearchResult']['resources']:
print (i['name'], i['id'], i['description'])
Вот часть php, где я вызываю скрипт test.py:
$command = escapeshellcmd('/usr/bin/python /var/www/cgi-bin/test.py');
$output = shell_exec($command);
echo $output;
Вот из моего журнала Apache:
error: cannot open Packages index using db5 - Permission denied (13)
error: cannot open Packages database in /var/lib/rpm
Traceback (most recent call last):
File "/var/www/cgi-bin/test.py", line 19, in <module>
r = s.get(url)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 476, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 464, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(13, 'Permission denied'))
[dsampson@mnet-ws-dave httpd]$