Tôi đang chạy một FlaskApp sử dụng mod_wsgi
và apache2
trên máy chủ Ubuntu. Tôi đã thử chạy ứng dụng bình trên localhost
thành công và sau đó triển khai nó trên máy chủ ubuntu.OperationalError: cố gắng viết một cơ sở dữ liệu chỉ đọc trong máy chủ ubuntu
Nhưng khi tôi cố gắng cập nhật cơ sở dữ liệu, lỗi cho nó: Failed to update model. (OperationalError) attempt to write a readonly database u'UPDATE mysongs SET songurl=? WHERE songid.id = ?' (u'www.site.com/I_wanna_dance', 1)
Bây giờ tôi đã cố gắng nhìn cho phép tập tin cơ sở dữ liệu đó là: -rwxr-xr-x 1 www-data www-data 10240 Jul 14 15:35 /var/www/mywebsite/appfolder/appdata.db
Khi tôi cố gắng thay đổi phép 777, 755, 644, vv nó cho thấy một lỗi khác: unable to open database file
Mặc dù tệp cơ sở dữ liệu hoạt động tốt với quyền 644 trên localhost
nhưng không có trên máy chủ ubuntu.
Ngoài ra tôi đã kiểm tra quyền của các thư mục và cho /var
/var/www
/var/www/mywebsite
/var/www/mywebsite/appfolder
v.v., tất cả đều có www-data:www-data
làm tên người dùng và nhóm chủ sở hữu của nó.
Tôi đã thử googling và không có giải pháp thích hợp nào khác ngoài đề xuất thay đổi quyền truy cập tệp/thư mục mà tôi đã thử.
Tại sao nó không thể đọc/truy cập tệp cơ sở dữ liệu?
Vui lòng đề xuất.
Bạn đã sử dụng uid (http://uwsgi-docs.readthedocs.org/en/latest/Options.html#uid) và gid (http://uwsgi-docs.readthedocs.org/en/latest/Options) .html # gid) để chạy uwsgi. Người dùng nào bắt đầu uwsgi? – tbicr
Bạn có đang sử dụng đường dẫn tuyệt đối đến tệp cơ sở dữ liệu không? Dưới mod_wsgi thư mục làm việc hiện tại sẽ không được nơi bạn nghĩ rằng nó nên được và đường dẫn tương đối sẽ thất bại. Bởi quyền nếu đây là những gì bạn đang làm, sau đó nó thậm chí sẽ không tìm thấy một tập tin cơ sở dữ liệu, nhưng giá trị kiểm tra. Đồng thời xác nhận rằng các quy trình ứng dụng web trên thực tế đang chạy dưới dạng www-data. –