Estou tentando configurar o domínio de uma forma, para poder usar o subdomínio para acessar o banco de dados. Por exemplo, se meu domínio for domain.com
e eu tiver bancos de dados demo
e demo2
. Então eu deveria ser capaz de acessá-lo escrevendo demo.domain.com
e demo2.domain.com
. Mas nada disso funciona. Eu segui este guia: http://opensourceholic.com/2014/05/09/deploy-openerp-using-mod_proxy-and-mod_wsgi-on-linux-server/
Depois de fazer tudo pelo guia, o que consegui fazer foi só conseguir acessar o OpenERP (ou Odoo) web escrevendo domain.com
, mas se eu escrever demo.domain.com
, receberei apenas esta mensagem This webpage is not available
.
Então o que eu fiz:
Meus arquivos de configuração do apache2:
openerp.conf
<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com // Use this if you want dbfillter on subdomain
ErrorLog /var/log/openerp/openerp-error.log
CustomLog /var/log/openerp/openerp-access.log combined
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass / http://domain.com:8069/
ProxyPassReverse / http://domain.com:8069/
ProxyVia On
LogLevel warn
</VirtualHost>
openerp-wsgi.conf
:
<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com // Use this if you want dbfillter on subdomain
WSGIScriptAlias / /opt/openerp/server/openerp-wsgi.py
WSGIDaemonProcess oe user=user group=oerp processes=2 python-path=/opt/openerp/server/ display-name=apache-openerp
WSGIProcessGroup oe
ErrorLog /var/log/openerp/openerp-error.log
CustomLog /var/log/openerp/openerp-access.log combined
<Directory /opt/openerp/server>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Minha openerp-wsgi.py
configuração:
import openerp
#----------------------------------------------------------
# Common
#----------------------------------------------------------
openerp.multi_process = True # Nah!
# Equivalent of --load command-line option
openerp.conf.server_wide_modules = ['web']
conf = openerp.tools.config
# Path to the OpenERP Addons repository (comma-separated for
# multiple locations)
conf['addons_path'] = '/opt/openerp/server/addons/,/opt/openerp/server/openerp/addons/'
# Optional database config if not using local socket
#conf['db_name'] = 'demo'
conf['db_host'] = '127.0.0.1'
conf['db_user'] = 'user'
conf['db_port'] = 5433
conf['db_password'] = 'password'
#conf['dbfilter'] = '%d'
#----------------------------------------------------------
# Generic WSGI handlers application
#----------------------------------------------------------
application = openerp.service.wsgi_server.application
openerp.service.server.load_server_wide_modules()
#----------------------------------------------------------
# Gunicorn
#----------------------------------------------------------
# Standard OpenERP XML-RPC port is 8069
bind = '0.0.0.0:8069'
pidfile = '.gunicorn.pid'
workers = 4
timeout = 240
max_requests = 2000
E mesmo depois de fazer isso, ainda não estava funcionando, então adicionei esta linha em /etc/hosts:
127.0.0.1 domain.com
Então eu consegui acessar o OpenERP ao inserir o endereço domain.com, mas apenas isso. Se eu adicionar o filtro sugerido (diretamente no arquivo de configuração ou no arquivo openerp-wsgi.py), o sistema não encontrará nenhum banco de dados e não consigo acessar nenhum deles, mesmo na lista, sem mencionar o principal motivo pelo qual estou fazendo isso - para acessar por subdomínio (conforme escrito em um exemplo).
Então, o que há de errado aqui?
Observação. Estou tentando isso no Odoo v8 (anteriormente OpenERP).
Você tem dois arquivos virtualhost para o mesmo domínio, para a mesma porta. Você precisa de apenas um arquivo para isso. Escolha se deseja servir seu Odoo usando mod_proxy ou mod_wsgi, mas não ambos.
Achei que precisava inserir manualmente todos os subdomínios em
etc/hosts
, só então começa a funcionar como eu esperava.