我的 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
。