我有可能(希望如此?)一个简单的权限问题,我一直在努力解决这个问题。希望一些新鲜的眼睛会有所帮助。
我在 Centos 6.2 上运行。我正在使用 python 成功访问和管理 postgresql 数据库。
但是,当我尝试通过 php 运行这些 python 脚本时,我在访问数据库时遇到错误。
我的 php 调用:
exec('python test_get_bcas.py 2>&1 1> /dev/null', $output);
和我的结果(请原谅格式);
0 => 'Traceback (most recent call last):',
1 => ' File "test_get_bcas.py", line 3, in <module>',
2 => ' response = getBCAs()',
3 => ' File "/var/www/html/proj/getBCAs.py", line 22, in getBCAs',
4 => ' database = Database()',
5 => ' File "/var/www/html/proj/databaseFunctions.py", line 32, in __init__',
6 => ' self.connection = psycopg2.connect("dbname=bsr user=gbtc password=broadcast host=localhost port=5432")',
7 => ' File "/usr/lib/python2.6/site-packages/psycopg2-2.4.5-py2.6-linux-x86_64.egg/psycopg2/__init__.py", line 179, in connect',
8 => ' connection_factory=connection_factory, async=async)',
9 => 'psycopg2.OperationalError: could not connect to server: Permission denied',
10 => ' Is the server running on host "localhost" and accepting',
11 => ' TCP/IP connections on port 5432?',
12 => '',
13 => 'Exception AttributeError: AttributeError("\'NoneType\' object has no attribute \'close\'",) in <bound method Database.__del__ of <databaseFunctions.Database instance at 0x7f0de346efc8>> ignored',
我的 python 代码如下所示:
self.connection = psycopg2.connect("dbname=proj user=user password=pw host=localhost port=5432")
我认为问题出在运行 httpd 进程的用户身上。但是我尝试过弄乱文件的权限,甚至在 sudoers 文件中添加 apache 作为 root 用户。
任何人有任何想法我错过了什么?