Hỏi Đáp

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

0

Cách cấu hình trỏ domain vào odoo cài đặt trên window?

Ảnh đại diện
Thomas

Chào các bác,

Mình mới tạo được một vài trang website giới thiệu cho công ty. Mình cài đặt odoo trên một vps window. vps này còn một số phần mềm khác nữa nên mình không thể chuyển qua linux được.

Mình đang tìm cách trỏ domain vào odoo dùng mode wsgi. Mình có xampp trên window và đã load được module wsgi_mode vào apache. Trên vhosts của apache mình thêm như sau:

<VirtualHost *:80>

  # Site name
  ServerName mydomain.com

  # Setup WSGI
  WSGIScriptAlias / "C:/Odoo 8.0-20150323/server/openerp/service/wsgi_server.py.py"
  <Directory "C:/Odoo 8.0-20150323/server/openerp/service">
    <Files wsgi_server.py.py>
      Order deny,allow
      Allow from all
    </Files>
  </Directory>
</VirtualHost>


File wsgi_server là file mặc định của bản cài odoo trên window.

Khi chạy thì báo lỗi
ImportError: No module named werkzeug.serving

Mình đã cài thêm cái werkzeug vào python. thì hết lỗi đó.

Nhưng giờ lại bị lỗi:
ImportError: No module named openerp

Đến đây thì mình tắc tịt vì không hiểu cơ chế deploy thế nào.

Bác nào có kinh nghiệm về vụ này xin chỉ giúp mình. Nếu không còn cách nào nữa thì có thể mình phải mua thêm 1 vps khác. Hoặc chuyển sang dùng erponline cho nó nhanh :|.

Cảm ơn mọi người.
Ảnh đại diện
Huỷ bỏ
5 Trả lời
0
Ảnh đại diện
Trần Ngọc Tuấn
Best Answer
Thomas viết:
Vậy bây giờ mình sẽ cài NginX làm proxy. Một số website thì điều hướng nó về apache. Một số thì điều hướng về Odoo phải không ạ? Vậy cái NginX nó sẽ dùng cổng 80 mặc định cho web để chặn tất cả các request. Còn tên apache thì phải đổi sang port khác để nhận request từ NginX đúng ko?
Đúng rồi! Bạn có thể đổi port của apache sang 8080. Có thể tham khảo thêm ở đây (Tutor trên CentOS nhưng có thể áp dụng cho Windows ở phần config): http://ma.tvtmarine.com/vi/blog/entry/cai-dat-nginx-cung-cap-proxy-cho-apache
Thomas viết:
Nếu bạn thực sự cho rằng dữ liệu Odoo là sự sống còn thì bạn nên vận hành nó trên VPS riêng và thực hiện việc sao lưu thường xuyên. Hoặc bạn nên vận hành với 2 VPS ở chế độ replication cho PostgreSQL. Nếu bạn lưu dữ liệu ở filestore của Odoo thì bạn nên có thêm môt cơ chế dự phòng cho dữ liệu lưu ở filestore.
Hiện tại mình đang cài để chạy xem có vấn đề gì hay cần customize gì không, nên mình chưa nghĩ tới việc Replicate và Backup. Mình nghĩ cứ chạy Single tenant trước. Sau đó chuyển sang Multi cũng ko sao. Chỉ tùy thuộc vào việc cài đặt và quản trị.
OK. Khi nào bạn mệt mỏi và đau đầu với mấy vụ cài đặt và bảo trì thì lên… "mây" nhé ^_^
1 Bình luận
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
ViindooBot
-

Ok bác.

Cảm ơn bác David Tran.

Hiện tại mình thấy ở VN ko có mấy forum để trao đổi về Odoo ERP có những thành viên "chất lượng" như bác. Hi vọng được trao đổi và chia sẻ dài dài :).

0
Ảnh đại diện
Thomas
Best Answer

Cảm ơn bác David Tran.

Mình đã trỏ thành công domain vào vps window.

Mình bị sai cái ProxyPass

ProxyPass / **http://myvpsip:8069/web/login?db=test**
ProxyPassReverse / **http://myvpsip:8069/web/login?db=test**


Phải là:

ProxyPass / http://myvpsip:8069/
ProxyPassReverse / http://myvpsip:8069/


Nếu trỏ thẳng vào database nào thì mình không dùng cái này được mà phải dùng tham số db-filter phải ko bác David Tran.

https://www.odoo.com/documentation/8.0/reference/cmdline.html#cmdoption-odoo.py--db-filter

1 Bình luận
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
Trần Ngọc Tuấn
-

Dùng db-filter là được!

0
Ảnh đại diện
Thomas
Best Answer
Bạn cũng cần tạo Bootscript cho Odoo để tự khởi chạy khi khởi động server. Vụ này trên Windows mình không rành lắm
. Trên window thì bản cài tạo cho mình một service của odoo. Service này mình thiết lập là automatic start.

Mình cũng muốn xài NginX nhưng trên vps cũng đang có 1 website khác đang chạy trên xampp rồi. Vậy bây giờ mình sẽ cài NginX làm proxy. Một số website thì điều hướng nó về apache. Một số thì điều hướng về Odoo phải không ạ? Vậy cái NginX nó sẽ dùng cổng 80 mặc định cho web để chặn tất cả các request. Còn tên apache thì phải đổi sang port khác để nhận request từ NginX đúng ko?

Nếu bạn thực sự cho rằng dữ liệu Odoo là sự sống còn thì bạn nên vận hành nó trên VPS riêng và thực hiện việc sao lưu thường xuyên. Hoặc bạn nên vận hành với 2 VPS ở chế độ replication cho PostgreSQL. Nếu bạn lưu dữ liệu ở filestore của Odoo thì bạn nên có thêm môt cơ chế dự phòng cho dữ liệu lưu ở filestore.

Hiện tại mình đang cài để chạy xem có vấn đề gì hay cần customize gì không, nên mình chưa nghĩ tới việc Replicate và Backup. Mình nghĩ cứ chạy Single tenant trước. Sau đó chuyển sang Multi cũng ko sao. Chỉ tùy thuộc vào việc cài đặt và quản trị.
Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Trần Ngọc Tuấn
Best Answer

Bạn nên vận hành theo hướng dùng Apache làm Reverse Proxy thay vì mod_wsgi. mod_wsgi thì cũng được nhưng không linh hoạt và khó scale sau này.
Dùng mod_proxy thì vhost của bạn có thể trông như sau:

<VirtualHost *:80>
    ServerName mydomain.com
    ErrorLog /duong_dan/odoo/odoo-error.log
    CustomLog /duong_dan/odoo/odoo-access.log combined
    LogLevel warn
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests Off
    ProxyPass / http://mydomain.com:8069/
    ProxyPassReverse / http://mydomain.com:8069/
    ProxyVia On
</VirtualHost>

Với cách này, bạn cần cài mod_proxy cho Apache. Bạn cũng cần tạo Bootscript cho Odoo để tự khởi chạy khi khởi động server. Vụ này trên Windows mình không rành lắm :p

Mà tốt hơn nữa thì không nên xài Apache. Hãy dùng NginX làm proxy. NginX nhanh, nhẹ, tốn ít tài nguyên server hơn so với Apache. NginX cũng dễ scale hơn Apache!

Nếu bạn thực sự cho rằng dữ liệu Odoo là sự sống còn thì bạn nên vận hành nó trên VPS riêng và thực hiện việc sao lưu thường xuyên. Hoặc bạn nên vận hành với 2 VPS ở chế độ replication cho PostgreSQL. Nếu bạn lưu dữ liệu ở filestore của Odoo thì bạn nên có thêm môt cơ chế dự phòng cho dữ liệu lưu ở filestore.
Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Thomas
Best Answer
<VirtualHost *:80>
ServerName mydomain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass / **http://myvpsIp:8069/web/login?db=test**
ProxyPassReverse / **http://myvpsIp:8069/web/login?db=test**
ProxyVia On
LogLevel warn
</VirtualHost>


Mình có dùng cái vhosts này thì không thấy có error gì cả. Nhưng báo lỗi: Internal Server Error

và trên apache thì warning thế này:

[Thu May 21 11:16:36.641750 2015] [proxy:warn] [pid 572:tid 348] [client 42.114.128.224:52990] AH01144: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Thu May 21 11:16:36.641750 2015] [proxy:warn] [pid 572:tid 348] [client 42.114.128.224:52990] AH01144: No protocol handler was valid for the URL /error/HTTP_INTERNAL_SERVER_ERROR.html.var. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
1 Bình luận
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
Trần Ngọc Tuấn
-

ProxyPass không đúng.
mod_proxy chưa được cài hoặc cài rồi nhưng chưa load.

Trả lời của Bạn

Vui lòng đảm bảo câu trả lời của bạn có liên quan và giải đáp đúng nội dung câu hỏi. Nếu muốn bình luận về câu hỏi hoặc câu trả lời, hãy sử dụng công cụ Bình luận. Lưu ý, bạn có thể thay đổi nội dung trả lời thay vì trả lời lại 02 lần cho cùng một câu hỏi. Đồng thời bạn có thể nhấn nút để bầu chọn câu hỏi / câu trả lời tốt nhất.