Centos7安装odoo总流程
一、安装系统后的基本配置
联网:先插上网线
Vim /etc/sysconfig/network-scripts/ifcfg-enp0s25
ONBOOT=yes
保存
重启
service network restart
Ping www.baidu.com可以使用。
查看IP : IP addr
关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
新建用户odoo
adduser odoo
修改odoo用户密码
passwd odoo
安装基本包
yum install lrzsz tree net-tools nmap vim bash-completion -y
yum -y install readline-devel
yum -y install zlib-devel
yum -y install make
二、安装python2.7.13
Su
Cd
查看当前python版本 python --version ,当前为2.7.5
安装所有的开发工具包
yum groupinstall -y “Development tools”
安装其它的必需包
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
下载、安装、编译python
cd
mkdir python
cd python
yum -y install wget
wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
tar zxf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make && make install
(健康汇报使用了这个方式,下方红色的方式没有使用:https://blog.csdn.net/weixin_43737422/article/details/84568115)
方法一(推荐)
cat /etc/centos-release
python -V
mv /usr/bin/python /usr/bin/python2.7.5
python2.7.5
ln -s /usr/local/bin/python2.7 /usr/bin/python
python -V
vim /usr/bin/yum
首行的#!/usr/bin/python 改为 #!/usr/bin/python2.7.5
vim /usr/libexec/urlgrabber-ext-down
首行的#!/usr/bin/python 改为 #!/usr/bin/python2.7.5
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
ln -s /usr/local/bin/pip2.7 /usr/bin/pip
方法二(不推荐)
更新系统默认python版本
先把系统默认的旧版 Python 重命名。
mv /usr/bin/python /usr/bin/python.old
再删除系统默认的 python-config 软链接。
rm -f /usr/bin/python-config
最后创建新版本的 Python 软链接。
ln -s /usr/local/bin/python /usr/bin/python
ln -s /usr/local/bin/python-config /usr/bin/python-config
ln -s /usr/local/include/python2.7/ /usr/include/python2.7
查看python版本,显示2.7.13
python --version
安装包
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
cp -r /usr/lib/python2.7/site-packages/yum /usr/local/lib/python2.7/site-packages/
cp -r /usr/lib/python2.7/site-packages/rpmUtils /usr/local/lib/python2.7/site-packages/
cp -r /usr/lib/python2.7/site-packages/iniparse /usr/local/lib/python2.7/site-packages/
cp -r /usr/lib/python2.7/site-packages/urlgrabber /usr/local/lib/python2.7/site-packages/
cp -r /usr/lib64/python2.7/site-packages/rpm /usr/local/lib/python2.7/site-packages/
cp -r /usr/lib64/python2.7/site-packages/curl /usr/local/lib/python2.7/site-packages/
cp -p /usr/lib64/python2.7/site-packages/pycurl.so /usr/local/lib/python2.7/site-packages/
cp -p /usr/lib64/python2.7/site-packages/_sqlitecache.so /usr/local/lib/python2.7/site-packages/
cp -p /usr/lib64/python2.7/site-packages/sqlitecachec.py /usr/local/lib/python2.7/site-packages/
cp -p /usr/lib64/python2.7/site-packages/sqlitecachec.pyc /usr/local/lib/python2.7/site-packages/
cp -p /usr/lib64/python2.7/site-packages/sqlitecachec.pyo /usr/local/lib/python2.7/site-packages/
easy_install pip
三、安装pgsql9.3
adduser openpg
passwd openpg
cd /home/openpg
通过windows下载了postgresql-9.3.3.tar.gz
通过xshell上传到centos,
cd postgresql-9.3.3
创建用户密码:
adduser postgres
passwd postgres
配置、编译及安装:
./configure
Make
make install
配置环境变量:
cd /usr/local/pgsql
vi /etc/profile
在文件最后加入:PATH=$PATH:/usr/local/pgsql/bin
然后刷新环境变量,即时生效 : source /etc/profile
初始化数据库:
cd /usr/local/pgsql
mkdir data
chown postgres:postgres /usr/local/pgsql/data/
su postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
复制安装目录下的linux文件到/etc/init.d/中,并将linux名称重命名为postgresql:
cp /home/openpg/postgresql-9.3.3/contrib/start-scripts/linux /etc/init.d/postgresql
chmod +x /etc/init.d/postgresql
启动数据库和设置开机自启动:
su
/etc/init.d/postgresql start
chkconfig postgresql on
测试是否创建成功:
su postgres
createdb test
psql test
ALTER USER postgres with encrypted password ‘111111’;
修改数据库外网访问
find / -name pg_hba.conf
find / -name postgresql.conf
/etc/init.d/postgresql stop
修改pg_hba.conf
vim /usr/local/pgsql/data/pg_hba.conf
添加:
host all 192.168.1.1/24 trust
修改postgresql.conf
vim /usr/local/pgsql/data/postgresql.conf
添加
listen_addresses = ‘*’
重启postgresql服务
/etc/init.d/postgresql start
使用pgadmin连接,创建用户openpg,恢复数据库,所有者为openpg
四、运行odoo代码:
(健康汇报没有安装如下依赖,直接安装request.txt,没有成功,然后安装如下依赖,再安装request.txt ,成功。)
安装依赖:
yum install libxslt*
yum install openldap
yum install openldap24-libs
yum install openldap-clients
yum install openldap-devel
yum install openssl-devel
安装requests.txt pip install -r requests.txt
下载nodejs
切换到/usr/src路径下,并下载node到此路径下。
(1)切换/usr/src路径:cd /usr/src
(2)下载node:https://www.cnblogs.com/zeroTime/p/10945459.html
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz
解压文件,顺便改个名字。
tar -xvf node-v10.16.0-linux-x64.tar.xz
mv node-v10.16.0-linux-x64 nodejs// 将node-v10.16.0-linux-x64修改为nodejs
4.配置环境变量
vim /etc/profile
在后面添加:
export NODE_HOME=/usr/src/nodejs #写上你安装node路径
export PATH=
P
A
T
H
:
PATH:
PATH:NODE_HOME/bin
export NODE_PATH=
N
O
D
E
H
O
M
E
/
l
i
b
/
n
o
d
e
m
o
d
u
l
e
s
重
新
刷
新
p
r
o
f
i
l
e
:
s
o
u
r
c
e
/
e
t
c
/
p
r
o
f
i
l
e
删
除
n
o
d
e
−
v
10.16.0
−
l
i
n
u
x
−
x
64.
t
a
r
.
x
z
(
删
不
删
都
由
你
)
r
m
−
r
f
.
/
n
o
d
e
−
v
10.16.0
−
l
i
n
u
x
−
x
64.
t
a
r
.
x
z
测
试
:
n
o
d
e
−
v
n
p
m
−
v
然
后
:
c
d
n
p
m
i
n
s
t
a
l
l
−
g
l
e
s
s
n
p
m
i
n
s
t
a
l
l
−
g
l
e
s
s
−
p
l
u
g
i
n
−
c
l
e
a
n
−
c
s
s
添
加
p
y
t
h
o
n
导
包
路
径
:
v
i
m
/
e
t
c
/
p
r
o
f
i
l
e
e
x
p
o
r
t
P
Y
T
H
O
N
P
A
T
H
=
NODE_HOME/lib/node_modules 重新刷新profile: source /etc/profile 删除node-v10.16.0-linux-x64.tar.xz(删不删都由你) rm -rf ./node-v10.16.0-linux-x64.tar.xz 测试: node -v npm -v 然后: cd npm install -g less npm install -g less-plugin-clean-css 添加python导包路径:vim /etc/profile export PYTHONPATH=
NODEHOME/lib/nodemodules重新刷新profile:source/etc/profile删除node−v10.16.0−linux−x64.tar.xz(删不删都由你)rm−rf./node−v10.16.0−linux−x64.tar.xz测试:node−vnpm−v然后:cdnpminstall−glessnpminstall−gless−plugin−clean−css添加python导包路径:vim/etc/profileexportPYTHONPATH=PATH:/usr/lib/python2.7/site-packages
:wq
source /etc/profile
本次将centos6.8的site-packages 替换了现有的site-packages #操作错误,不可以,centos6.8和centos7.2的pthon版本不一样
将odoo代码拷贝到odoo用户/home/odoo下。
Vim odoo.conf
将odoo.conf 和启动文件odoo移动到上一级,和odoo文件夹同级
Pip install pypinyin
Pip install xinge_push
命令行启动:python start.py(将odoo复制出来,重命名) -c odoo.conf
Worker数没有配置。postgersql的最大连接数使用的默认的。
五、配置两台电脑在同一个网段。
配置windows电脑:
插入网线,设置ipv4属性
配置以下IP地址,默认网关,子网掩码
更改完成以后查看ip
然后配置centos的静态ip
Vim /etc/sysconfig/network-scripts/ifcfg-enp0s25
修改
BOOTPROTO=static
新增
IPADDR=192.168.1.101
GATEWAY=192.168.1.2
NETMASK=255.255.255.0
DNS1=192.168.1.2
重启网络
service network restart
发现不能启动
查资料后发现需要将ifcfg-enp0s25中的DEVICE一行注释掉。
#DEVICE=enp0s25
重启网络
service network restart
查看IP
IP addr
发现IP为自己设置的IP。
配置两块网卡,复制ifcfg-enp0s25文件改名为ifcfg-enp0s26,修改内容
其中uuid获取方法:
六、配置pgsql主从备份。
系统描述
原理
(1)设置主机归档模式。
(2)主机使用PostgreSQL提供的pg_basebackup等工具制作一次基础备份并将备份文件拷贝至备机,完成一次主被机间的基础备份。
(3)主机产生WAL文件后通过archive_command参数调度命令传输至备机。
(4)备机接收到WAL文件后,持续恢复主机的WAL文件,最大限度跟上主机数据产生速度。
软件安装
主服务器和从服务器系统都是centos7.2系统,安装的数据库都为postgresql9.4.15
热备份
配置方法
(1)首先配置主服务器:
联网:先插上网线
Vim /etc/sysconfig/network-scripts/ifcfg-enp0s25
ONBOOT=yes
保存
重启
service network restart
Ping www.baidu.com可以使用。
yum install lrzsz tree net-tools nmap vim bash-completion -y
yum -y install readline-devel
yum -y install zlib-devel
yum -y install make
yum install gcc-c++
yum -y install pcre*
yum -y install openssl*
yum groupinstall -y “Development tools”
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
yum -y install wget
安装pgsql9.4.15
adduser openpg
passwd openpg
cd /home/openpg
通过windows下载了postgresql-9.4.15.tar.gz
通过xshell上传到centos,
cd postgresql-9.4.15
创建用户密码:
adduser postgres
passwd postgres
配置、编译及安装:
./configure
Make
make install
配置环境变量:
cd /usr/local/pgsql
vi /etc/profile
在文件最后加入:PATH=$PATH:/usr/local/pgsql/bin
然后刷新环境变量,即时生效 : source /etc/profile
初始化数据库:
cd /usr/local/pgsql
mkdir data
chown postgres:postgres /usr/local/pgsql/data/
su postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
复制安装目录下的linux文件到/etc/init.d/中,并将linux名称重命名为postgresql:
cp /home/openpg/postgresql-9.4.15/contrib/start-scripts/linux /etc/init.d/postgresql
chmod +x /etc/init.d/postgresql
启动数据库和设置开机自启动:
su
/etc/init.d/postgresql start
chkconfig postgresql on
测试是否创建成功:
su postgres
createdb test
psql test
ALTER USER postgres with encrypted password ‘111111’;
\q
su
创建文件夹 mkdir -p /opt/pgsql/pg_archive
cd /opt/pgsql
chmod 777 pg_archive/
创建一个用户进行主从同步
su postgres
psql
CREATE ROLE replica login replication encrypted password ‘replica’;
\q
su
修改pg_hba.com 文件
cd /usr/local/pgsql/data
vim pg_hba.conf
增加:
host all all 192.168.1.0/24 md5
host replication replica 192.168.1.100/32 md5
host replication replica 192.168.1.101/32 md5
分别是允许192.168.1网段访问,允许replica用户同步数据。
修改recoverydone文件。
cp /usr/local/pgsql/share/recovery.conf.sample /usr/local/pgsql/data/recovery.done
vim recovery.done
standby_mode = on
primary_conninfo = ‘host=192.168.1.100 port=5432 user=replica password=replica’
recovery_target_timeline = ‘latest’
修改postgresql.conf文件。
vim postgresql.conf
hot_standby=on
listen_addresses = ‘*’
archive_mode = on
archive_command = ‘cp %p /opt/pgsql/pg_archive/%f’
wal_level = hot_standby
max_wal_senders = 5
wal_sender_timeout = 60s
max_connections = 500
启动数据库
Su
Service postgresql start
Service postgresql restart
(2)然后配置从服务器
联网:先插上网线
Vim /etc/sysconfig/network-scripts/ifcfg-enp0s25
ONBOOT=yes
保存
重启
service network restart
Ping www.baidu.com可以使用。
yum install lrzsz tree net-tools nmap vim bash-completion -y
yum -y install readline-devel
yum -y install zlib-devel
yum -y install make
yum install gcc-c++
yum -y install pcre*
yum -y install openssl*
yum groupinstall -y “Development tools”
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
yum -y install wget
安装pgsql9.4.15
adduser openpg
passwd openpg
cd /home/openpg
通过windows下载了postgresql-9.4.15.tar.gz
通过xshell上传到centos,
cd postgresql-9.4.15
创建用户密码:
adduser postgres
passwd postgres
配置、编译及安装:
./configure
Make
make install
配置环境变量:
cd /usr/local/pgsql
vi /etc/profile
在文件最后加入:PATH=$PATH:/usr/local/pgsql/bin
然后刷新环境变量,即时生效 : source /etc/profile
初始化数据库:
cd /usr/local/pgsql
mkdir data
chown postgres:postgres /usr/local/pgsql/data/
su postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
复制安装目录下的linux文件到/etc/init.d/中,并将linux名称重命名为postgresql:
cp /home/openpg/postgresql-9.4.15/contrib/start-scripts/linux /etc/init.d/postgresql
chmod +x /etc/init.d/postgresql
启动数据库和设置开机自启动:
su
/etc/init.d/postgresql start
chkconfig postgresql on
测试是否创建成功:
su postgres
createdb test
psql test
ALTER USER postgres with encrypted password ‘111111’;
su
创建文件夹 mkdir -p /opt/pgsql/pg_archive
cd /opt/pgsql/
chmod 777 pg_archive/
cd /usr/local/pgsql/
rm -rf /usr/local/pgsql/data
然后将主节点服务器数据拷贝到从节点。
scp -r postgres@192.168.1.101:/usr/local/pgsql/data /usr/local/pgsql
rm -rf data/postmaster.pid
配置recovery.conf
cp /usr/local/pgsql/share/recovery.conf.sample /usr/local/pgsql/data/recovery.conf
cd data/
vim recovery.conf
standby_mode = on
primary_conninfo = ‘host=192.168.1.101 port=5432 user=replica password=replica’
recovery_target_timeline = ‘latest’
不再修改postgresql,以后主从切换,不需要修改。
#配置postgersql.conf
#Vim postgresql.conf
#注释掉#archive_mode = on
#archive_command = ‘cp %p /opt/pgsql/pg_archive/%f’
#max_wal_senders = 5
#wal_sender_timeout = 60s
#max_connections = 500
#新增:max_standby_streaming_delay = 30s
#wal_receiver_status_interval = 10s
#hot_standby_feedback = on
#max_connections = 1000
然后重启从服务器:
Su
重新启动。
cd /usr/local/pgsql/
chown -R postgres:postgres data
chmod -R 0700 data
service postgresql start
service postgresql restart
查看主服务器:
su postgres
psql
select client_addr,sync_state from pg_stat_replication;
说明100服务器是从服务器,正在进行异步流复制。
维护方法
搭建完成后
(1)当主服务器进行添加数据、修改数据、删除数据的时候,从服务器也会进行相应的增删改。
(2)在主机上创建表user,然后在备机上可以看到user表已经被复制过来了
(3)停止备机,在主机上插入数据,然后再启用备机,可以看到备机也是有这条数据的。所以从机停机不会影响主机。
(4)在主服务器上添加用户,从服务器上也自动添加上了此用户。
(5)从服务器无法进行增加、修改、删除,只能通过主服务器数据的变化而变化,说明在主备模式下备机是只读的。
主从切换
先将原来的主改为从:
mv recovery.done recovery.conf
service postgresql restart
再将原来的从该为主:
mv recovery.conf recovery.done
service postgresql restart
此时,验证原来的主只能查看数据,不能进行修改,原来的从改成了主,可以进行增删改,之前的主降为从,也发生了相应的变化。
数据恢复
恢复方法
(1)假设主服务器因某些原因丢失数据、宕机,那么这时候就需要将从服务器的数据恢复到主服务器。
(2)通过pgadmin3将从服务器上的数据库备份下来,然后重新启动主服务器,恢复到主服务器。
测试
首先主数据库删除数据,从数据库也跟着删除。
主数据库增加数据,从数据库也增加数据。
增加前主数据库: 增加前从数据库:
增加后主数据库: 增加后从数据库:
数据库表数据也相同。
单独修改从服务器数据:发现禁止删除。
修改数据表中的数据,发现也不能修改。
从服务器停止,主服务器增加、修改一些数据,然后启动从服务器:
修改主数据库后,启动从,观察两者数据库区别。
修改后的外出申请表数据:
启动从数据库:
查看从数据库的外出申请表。结果也发生了相同的变化,可以得出结论,从数据库不影 响主数据库工作。
主数据库停止一段时间后再启动,观察从数据库时候能够继续成功备份。
停止主数据库后查看从数据库日志:一直是拒绝连接状态。
重新启动主数据库:
丛服务器日志:开始进行流复制。
对主数据库数据进行修改:
查看从数据库,也进行了相应的修改
当主数据库被攻击以后,可以通过从数据库备份数据然后在主服务器上恢复。
配置odoo 报表环境
su
cd /home/odoo
安装wkhtmltopdf
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
cd wkhtmltox/bin/
mv ./wkhtmltopdf /usr/bin/wkhtmltopdf
chmod +x /usr/bin/wkhtmltopdf
yum install urw-fonts libXext openssl-devel
使用xftp将window的字体复制过去,我复制的是simsun.ttc,路径为下面路径:
C:\Windows\WinSxS\amd64_microsoft-windows-font-truetype-simsun_31bf3856ad364e35_10.0.17763.1_none_ebcf08efc7d83d60
复制到/usr/share/fonts路径下。
odoo配置为服务
cd /lib/systemd/system
vim odoo10.service
添加:
[Unit]
Description=Odoo10
After=postgresql.service
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/bin/python /home/odoo/odoo-10.0/start -c /home/odoo/odoo-10.0/odoo.conf
#注意:先运行上面一行/usr/bin/python /home/odoo/odoo-10.0/start.py -c /home/odoo/odoo-10.0/odoo.conf,看是否能运行成功。
[Install]
WantedBy=multi-user.target
然后保存,退出。
扫描新的服务
systemctl daemon-reload
启动服务
systemctl start odoo10
停止服务
systemctl stop odoo10
重启服务
systemctl restart odoo10
开机自启
systemctl enable odoo10
如果配置成服务后无法导入lessc,则在service中加入Environment=“PATH=/usr/src/nodejs/bin”
遇到的问题:
访问报错
解决办法:
1)首先清除浏览器历史记录。
2)运行命令“ createdb odoo”,或者也可以使用旧数据库。
3)使用此命令运行openerp-server
./openerp-server -u all
Centos7配置防火墙:
基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
查看所有打开的端口: firewall-cmd--zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
添加: firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --remove-port=80/tcp --permanent
查看firewall是否运行systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctldisable firewalld.service
查看服务是否开机启动:systemctlis-enabled firewalld.service