好几年没写博客了,有时想找个技术学习,写写博客。但是现在技术更新太快,想到这,又不想研究了。遇到什么学什么。还是自己懒吧。以后还是找点技术研究,学习下,写写博客。
刚好公司做了一个python项目,需要部署在公司内网linux环境中,领导让我研究下。就有了这篇博客了。
话不多说了,本机装个虚拟机centos7.5,这个网上有很多。可以找找。
安装gcc等编译环境,局域网yum安装不了,只能先网上yum安装的时候下载下来。
下载需要修改/etc/yum.conf 文件,把keepcache这个值由0改为1
然后再yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
安装完成后,rpm缓存目录/var/cache/yum/x86_64/7/base/packages 这个里面,接着上传到内网中
cd到上传目录
rpm -Uvh *.rpm --nodeps --force进行安装
验证gcc -v
上传Python-3.6.0.tgz至opt目录
cd /opt
tar zxvf Python-3.6.0.tgz
cd Python-3.6.0/
./configure --prefix=/usr/local/python3
make
make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
python3 -V可能需要切换到python以前的版本
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
pip3 -V
升级pip3,上传包pip-20.1.1.tar.gz
tar -zxvf pip-20.1.1.tar.gz
cd pip-20.1.1
python3 setup.py build
python3 setup.py install
取得我们开发项目时所有需要的python依赖包
pip3 freeze >requirements.txt
下载依赖包
pip3 download -r requirements.txt
上传下载好的依赖包
cd /site-packages
加载依赖
pip3 install --no-index --find-links=/site-packages -r requirements.txt
升级sqlite,上传sqlite-autoconf-3290000.tar.gz
tar zxvf sqlite-autoconf-3290000.tar.gz
cd sqlite-autoconf-3290000
./configure --prefix=/usr/local
make && make install
最新安装的sqlite3版本
/usr/local/bin/sqlite3 --version
Centos7自带的sqlite3版本
/usr/bin/sqlite3 --version
更改旧的sqlite3
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
创建软连接ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
sqlite3 --version
将路径传递给共享库,设置开机自启动执行
vim ~/.bashrc
export LD_LIBRARY_PATH="/usr/local/lib"
source ~/.bashrc 立即生效
验证
python3
import sqlite3
sqlite3.sqlite_version
exit()
上传简体中文安装包
rpm -Uvh *.rpm --nodeps --force
echo $LANG
locale
vim /etc/locale.conf
LANG=zh_CN.UTF8
rpm -ivh convmv-1.15-2.el7.noarch.rpm
convmv -f gbk -t utf-8 -r --notest /home/shenk/price_predict/field
上传oracle-client
安装oracle 客户端
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
配置
vim ~/.bash_profile
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_BASE=/usr/lib/oracle/11.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
source ~/.bash_profile
/usr/lib/oracle/11.2/client64 目录新建 /network/admin目录
把tnsnames.ora文件上传上去
验证
sqlplus slhy/slhy@orcl
sqlplus wzjc/wzjc@orcl
上传cx-oracle,安装
tar -xzvf cx_Oracle-5.3.tar.gz
cd cx_Oracle-5.3
python3 setup.py build
python3 setup.py install
验证
python3
import cx_Oracle
db = cx_Oracle.connect('slhy/slhy@orcl')
print(db.version)
打开 开放端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone= public --query-port=8000/tcp
编写shell脚本,通过“service”命令进行管理(start|stop|restart)
新建runServiceSlhy.sh文件,内容如下
filepath="/home/shenk/price_predict/manage.py"
start(){
nohup python3 $filepath>/dev/null 2>&1 &
echo 'runServiceSlhy service OK'
}
stop(){
serverpid=`ps -aux|grep "$filepath"|grep -v grep|awk '{print $2}'`
kill -9 $serverpid
echo 'runServiceSlhy stop OK'
}
restart(){
stop
echo 'runServiceSlhy stop OK'
start
echo 'runServiceSlhy service OK'
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
start
esac
上传至内网服务器
sudo chmod +x runServiceSlhy.sh
./runServiceSlhy.sh start # 启动脚本
./runServiceSlhy.sh stop # 停止脚本
./runServiceSlhy.sh restart # 重启脚本
/bin/bash^M: 坏的解释器: 没有那个文件或目录
这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n
sed -i 's/\r$//' runServiceSlhy.sh 会把runServiceSlhy.sh中的行尾的\r替换为空白
写的有点杂乱,博友们勉强看看,到时我再加注释。写的好看些。如果里面内容有错误,请多多指教。其实在搭建的时候,遇到过很多问题,都一一解决了。
爱生活,爱分享,爱康宝!下篇博客准备写centos 7 中安装gitlab。