Apache CustomLog 指令失败 - 管道

Apache CustomLog 指令失败 - 管道

我的 apache2_site.conf 文件中有以下指令:

        CustomLog "|/home/me/myjlog.py %h \"%r\"" common

它应该在我的 MySQL 服务器中创建一个日志。myjlog.py开头为:

#!/usr/bin/python3
import pymysql
import sys

ip=sys.argv[1]
req=sys.argv[2]
...

但是,对于我的网站的每个请求,我的数据库都没有记录下来。

出现的/var/log/apache2/error.log是:

AH00106: piped log program '/home/me/myjlog.py %h "%r"' failed unexpectedly
Traceback (most recent call last):
  File "/home/alibaba/myjlog.py", line 2, in <module>
    import pymysql
ModuleNotFoundError: No module named 'pymysql'

看来 Python 无法识别该模块pymysql。但是,此模块是为用户安装的me,并且root...

我怎样才能保证可以pymysql访问apache2

编辑:1 - 我没有在此服务器上使用任何虚拟环境。2 - 设置chmod -R g+rx /home/me/.local和后chmod -R a+rx /home/me/.local,我运行sudo -u www-data python3 -m site并获得:

sys.path = [
    '/home/me',
    '/usr/lib/python36.zip',
    '/usr/lib/python3.6',
    '/usr/lib/python3.6/lib-dynload',
    '/home/me/.local/lib/python3.6/site-packages',
    '/usr/local/lib/python3.6/dist-packages',
    '/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/me/.local' (exists)
USER_SITE: '/home/me/.local/lib/python3.6/site-packages' (exists)
ENABLE_USER_SITE: True

但该CustomLog指令仍然无法访问pymysql

相关内容