CentOS6.8 部署爬虫(Scrapy)和Django经验浅谈

###写在前面的话

在linux上部署Scrapy和Django比在window上麻烦很多,由于使用当前最新版本也造成各种问题的出现,由于自身对linux不是很熟悉,在模拟部署环境的时候踩坑不少,所以记一篇经验浅谈,供自己今后遇到类似问题进行查阅。

####准备工作

1、python:Python-3.6.2
2、Scrapy:Scrapy-1.4.0
3、Django:Django-1.11.4
4、各种依赖(有些依赖不需单独下载,用yum来安装即可):
zlib-1.2.11.tar.gz(在安装python3.6.2时使用)

####第一步:升级python

CentOS6.8是自带python的,但是版本却是python2.6.6

[root@jdu4e00u53f7 ~]# python -V 
Python 2.6.6

我们需要的是python3.6.2,所以需要对python的版本做一下升级,为了避免兼容性问题,我们依旧保留了python2.6.6。

1、将下载好的python3.6.2上传到linux中,我习惯性的在/etc目录下建立soft文件夹,将Python-3.6.2.tgz上传,解压文件并进入目录

[root@jdu4e00u53f7 soft]# tar xvf Python-3.6.2.tgz
[root@jdu4e00u53f7 soft]# cd Python-3.6.2

2、创建一个编译安装目录,

[root@jdu4e00u53f7 Python-3.6.2]# mkdir /usr/local/python3

3、安装依赖
如果系统中没有安装gcc,配置编译安装目录时会报错

checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for python3.6... no
checking for python3... no
checking for python... python
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... linux
checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in '/opt/soft/Python-3.6.2':
configure: error: no acceptable C compiler found in $PATH
See 'config.log' for more details

因此我们要先用yum安装gcc

[root@jdu4e00u53f7 Python-3.6.2]# yum install gcc

请用命令查看当前系统中是否安装了openssl

[root@jdu4e00u53f7 Python-3.6.2]# rpm -aq | grep -i openssl
openssl-1.0.1e-57.el6.x86_64
openssl-devel-1.0.1e-57.el6.x86_64

请注意,这里一定要是两个,openssl和openssl,缺少哪儿个就用yum安装哪儿个,再次提醒一定要安装,否则之后的pip会报错,安装后需要重新编译安装python。这个是个大坑。我就是没有注意,在之后使用pip时会一直报如下错误,不能使用。

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

请注意,又一个坑,在编译安装之前,一定要先修改一下setup.py这个文件,具体修改内容如下

sqlite_inc_paths = [ '/usr/include',
                     '/usr/local/sqlite3/include' #增加该行
                     '/usr/include/sqlite',
                     '/usr/include/sqlite3',
                     '/usr/local/include',
                     '/usr/local/include/sqlite',
                     '/usr/local/include/sqlite3',
                     ]

同时要用yum安装sqlite-devel。否则到后面会报缺少文件的错误,到时候又得重新再来(记不清这是重新再来的第几次了,哭)

4、配置编译安装目录

[root@jdu4e00u53f7 Python-3.6.2]# ./configure --prefix=/usr/local/python3

5、编译安装

[root@jdu4e00u53f7 Python-3.6.2]# make && make install

6、如果在步骤5最后出现如下错误

zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

请安装zlib
安装zlib步骤和安装python类似,都是解压,配置编译目录,编译安装,在此不做详述,下载zlib官方网址http://www.zlib.net/
如果没有出现改错误,请跳过本步骤。
成功安装zlib后,重新对python进行编译安装

7、备份旧的python

[root@jdu4e00u53f7 Python-3.6.2]# mv /usr/bin/python /usr/bin/python_old 

8、把新版本的python3.6.2链接到python,python3.6.2自带pip3,我们需要把pip3链接放至/usr/bin目录下,方便之后的使用

[root@jdu4e00u53f7 Python-3.6.2]# ln -s /usr/local/python3/bin/python3 /usr/bin/python
[root@jdu4e00u53f7 Python-3.6.2]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

9、测试python3.6.2是否安装成功

[root@jdu4e00u53f7 Python-3.6.2]# python -V
Python 3.6.2
  • 升级python会导致yum不可用,为了方便之后我们可以使用yum安装软件,我们需要对yum做一些改动。在/usr/bin目录找到yum文件,将文件中#!/usr/bin/python改为#!/usr/bin/python_old
  • 我们将python3安装在了自定义的位置,这样会导致之后通过pip安装的插件不能直接使用命令,所以需要将python目录下的bin目录加入到环境变量中,修改环境变量的方法,修改/etc下的profile文件,记得修改完后要source一下该文件使之马上生效
# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
    pathmunge /usr/local/python3/bin #添加行
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
    pathmunge /usr/local/python3/bin after #添加行
fi

至此,我们的python升级就完成了,接下来进行下一步。

####第二步:安装爬虫Scrapy

1、准备工作,安装依赖。
Twisted,版本一定要大于等于13.1.0,我就是因为安装了低版本,导致不懂如何升级到高版本重新重置了系统。(血泪教训,之前安装的又得从头再来,好在使用的时京东云服务,重置系统比较方便。),这个高版本需要手动下载,yum中存在的好像时8点几的版本,比较老了。

2、安装爬虫

[root@jdu4e00u53f7 soft]# pip install scrapy

安装的过程中会有很多依赖需要安装,静静等待就好。

3、安装所需的模块(自己项目中使用到的,记录方便自己查阅)
安装scrapy_djangoitem
安装BeautifulSoup4

####第三步:Django安装

django不同版本对python的支持是不一样的,例如Django 1.11.x 支持 Python 2.7, 3.4, 3.5 和 3.6
其他版本请查阅官网。

直接通过pip进行安装,我们在django后面跟上版本就可以安装指定的版本。

[root@jdu4e00u53f7 soft]# pip install django==1.11.4

安装所需的模块(自己项目中使用到的,记录方便自己查阅)
安装pymysql,一个连接mysql的驱动
安装requests
安装simplejson
安装apscheduler 一个可以实现异步定时任务

####第四步:安装mysql

如果不是要安装指定的mysql版本,可以使用yum来安装,方便快捷。

1、安装客户端和服务端
1)确认是否安装了mysql

[root@jdu4e00u53f7 soft]# yum list installed mysql*

2)安装客户端

[root@jdu4e00u53f7 soft]# yum install mysql

3)安装服务端

[root@jdu4e00u53f7 soft]# yum install mysql-server
[root@jdu4e00u53f7 soft]# yum install mysql-devel

2、修改配置文件,改变编码为utf-8
在/etc目录下找到my.cnf,将该文件修改如下(加粗字体为新增内容):

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8

3、启动msql

[root@jdu4e00u53f7 soft]# service mysqld start

4、设置开机启动

[root@jdu4e00u53f7 soft]# chkconfig --add mysqld
[root@jdu4e00u53f7 soft]# chkconfig mysqld on

5、允许远程访问设置

mysql> update user set `Host` = '%' where `User` = 'root' limit 1;

6、mysql的几个重要目录(使用yum安装的默认目录)

  • 数据库目录 /var/lib/mysql/
  • 配置文件 /usr/share/mysql(mysql.server命令及配置文件)
  • 相关命令 /usr/bin(mysqladmin mysqldump等命令)
  • 启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值