0
は本当に何もするが、最小限のコードに問題があることを示していない/home/blakeh/test.py、です:なぜ、Python xmlrpc呼び出しでApacheを介して実行するとPermissionErrorが呼び出されますか?ここ
#!/usr/local/bin/python3
import xmlrpc.client
if __name__ == "__main__":
client = xmlrpc.client.ServerProxy('http://localhost:8010')
client.foo()
私はApacheのユーザーとして直接これを実行すると、作ると何の権限の問題はありませんRPC "foo"呼び出し。私がからまでのApacheを実行した場合にのみ発生します。私はPython 3.5.2を使用しています。私はこれを持っているのApache .confファイルで
:
ScriptAlias /test "/home/blakeh/test.py"
私はこのcurlコマンドを実行した場合:
curl -gix "" http://localhost/test
をこれはに追加して...私は/、内部サーバーエラーを取得しますvar/log/httpd/error_log:
[Wed Jan 04 21:23:09 2017] [error] [client ::1] Traceback (most recent call last):
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/home/blakeh/test.py", line 7, in <module>
[Wed Jan 04 21:23:09 2017] [error] [client ::1] client.foo()
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/xmlrpc/client.py", line 1092, in __call__
[Wed Jan 04 21:23:09 2017] [error] [client ::1] return self.__send(self.__name, args)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/xmlrpc/client.py", line 1432, in __request
[Wed Jan 04 21:23:09 2017] [error] [client ::1] verbose=self.__verbose
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/xmlrpc/client.py", line 1134, in request
[Wed Jan 04 21:23:09 2017] [error] [client ::1] return self.single_request(host, handler, request_body, verbose)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/xmlrpc/client.py", line 1146, in single_request
[Wed Jan 04 21:23:09 2017] [error] [client ::1] http_conn = self.send_request(host, handler, request_body, verbose)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/xmlrpc/client.py", line 1259, in send_request
[Wed Jan 04 21:23:09 2017] [error] [client ::1] self.send_content(connection, request_body)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/xmlrpc/client.py", line 1289, in send_content
[Wed Jan 04 21:23:09 2017] [error] [client ::1] connection.endheaders(request_body)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/http/client.py", line 1102, in endheaders
[Wed Jan 04 21:23:09 2017] [error] [client ::1] self._send_output(message_body)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/http/client.py", line 934, in _send_output
[Wed Jan 04 21:23:09 2017] [error] [client ::1] self.send(msg)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/http/client.py", line 877, in send
[Wed Jan 04 21:23:09 2017] [error] [client ::1] self.connect()
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/http/client.py", line 849, in connect
[Wed Jan 04 21:23:09 2017] [error] [client ::1] (self.host,self.port), self.timeout, self.source_address)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/socket.py", line 711, in create_connection
[Wed Jan 04 21:23:09 2017] [error] [client ::1] raise err
[Wed Jan 04 21:23:09 2017] [error] [client ::1] File "/usr/local/lib/python3.5/socket.py", line 702, in create_connection
[Wed Jan 04 21:23:09 2017] [error] [client ::1] sock.connect(sa)
[Wed Jan 04 21:23:09 2017] [error] [client ::1] PermissionError: [Errno 13] Permission denied
動作の違いを説明できますか?ありがとう!
AppArmorまたはSELinuxがあるかどうかを確認してください。 'sudo apparmor_status; sudo sestatus -v' – Velkan
ありがとう、それはselinuxがそれをブロックしていたことが判明し、 "setenforce 0"は私の周りを回避することができました。 – Blake