Tôi có lệnh sau trong tệp apache2_site.conf của mình:
Nhật ký tùy chỉnh "|/home/me/myjlog.py %h \"%r\"" phổ biến
sẽ tạo nhật ký trong máy chủ MySQL của tôi. myjlog.py
bắt đầu với:
#!/usr/bin/python3
nhập khẩu pymysql
nhập khẩu hệ thống
ip=sys.argv[1]
req=sys.argv[2]
...
Tuy nhiên, đối với mỗi yêu cầu đối với trang web của tôi, việc đăng nhập vào cơ sở dữ liệu của tôi chưa được thực hiện.
Những gì xuất hiện trong /var/log/apache2/error.log
Là:
AH00106: chương trình nhật ký theo đường ống '/home/me/myjlog.py %h "%r"' bất ngờ bị lỗi
Traceback (cuộc gọi gần đây nhất cuối cùng):
Tệp "/home/alibaba/myjlog.py", dòng 2, trong <module>
nhập khẩu pymysql
ModuleNotFoundError: Không có mô-đun nào có tên 'pymysql'
Có vẻ như python không nhận ra mô-đun pymysql
. Tuy nhiên mô-đun này được cài đặt cho người dùng tôi
và nguồn gốc
...
Làm cách nào tôi có thể đảm bảo quyền truy cập vào pymysql
đến apache2
?
CHỈNH SỬA:
1 - Tôi không sử dụng bất kỳ môi trường ảo nào trên máy chủ này.
2 - Sau khi cài đặt chmod -R g+rx /home/me/.local
và chmod -R a+rx /home/me/.local
, Tôi chạy trang web sudo -u dữ liệu www python3 -m
và thu được:
sys.path = [
'/nhà/tôi',
'/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-gói',
'/ usr/lib/python3/dist-gói',
]
USER_BASE: '/home/me/.local' (tồn tại)
USER_SITE: '/home/me/.local/lib/python3.6/site-packages' (tồn tại)
ENABLE_USER_SITE: Đúng
Nhưng vẫn là Nhật ký tùy chỉnh
chỉ thị không thể truy cập pymysql
.