-
Notifications
You must be signed in to change notification settings - Fork 1.2k
分布式爬虫环境配置
这几天有用户反应环境配置比较麻烦,所以写了一篇文章,专门介绍如何搭建环境。
下面记录了如何在ubuntu16.04上安装mysql5.7的方法。
sudo apt install mysql-server
安装时会让你输入mysql root
用户的密码,并确认密码
sudo apt install mysql-client
然后可以通过
ps aux|grep mysql
查看mysql是否安装成功并且已经启动
再通过
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改
bind-address = 127.0.0.1
为
bind-address = 0.0.0.0
这样的话,mysql才能监听远程的请求
一般,生产环境中,不建议直接使用root,我们通过mysql客户端新建一个用户weibospider
,并给它赋予权限
mysql -u root -p
然后输入 安装mysql的时候输入的密码,进入mysql命令行后
grant all on *.* to weibospider@'%' identified by '123456';
这里我们并未先创建一个用户,而是直接运行赋权限的语句,它在执行的时候会先看有不有weibospider
这个用户,有就使用,没有就创建,这里我们给该用户设置的密码是123456
,权限*.*
表示所有权限
然后再在mysql命令行中刷新一下
flush privileges;
最后重启mysql使之生效
sudo /etc/init.d/mysql restart
上述是mysql5.7的安装过程,顺利的话,我们已经可以连接并且使用mysql了,但是由于mysql server默认编码是latin1
,我们还需要做一些修改。先通过
show VARIABLES LIKE '%char%';
查看mysql编码,发现
character_set_server latin1
character_set_database latin1
我们先通过
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]
域下加上以下内容
character-set-server=utf8
最后,在该文件默认添上下面内容
[mysql]
default-character-set=utf8
然后重启mysql即可
sudo /etc/init.d/mysql restart 建议大家使用可视化工具(比如navicat或者datagrip)来操作mysql数据库
好像大家的疑问都集中在redis的配置上,下面我详细说说
- 在要安装redis的目录下载好redis,比如我的路径是
/home/ubuntu/program/
,先需要切换到该目录(通过cd /home/ubuntu/program
切换),然后通过wget
进行下载
- 解压下载好的压缩包
tar xzf redis-3.2.9.tar.gz
- 进入解压的目录
cd redis-3.2.9/
- 通过
make
编译,它会自己执行make install
make
- 启动redis看是否成功
src/redis-server
如果不成功就给我提issue,成功了就往下面看
- 按
ctrl+c
停止redis,在redis-3.2.9/
这个目录下修改redis.conf配置文件,主要是改这几点:(1)为redis设置密码 (2)让redis监听所有请求 (3)把redis进程改为守护进程
vim redis.conf
在
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
后面加一行
bind 0.0.0.0
它的作用是让redis监听所有ip请求
然后在
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared
这里添加一行
requirepass weibospider
这里的作用是为redis设置密码,我设置的密码是weibospider
,你们可以根据实际情况设置
然后在这里
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize no
将daemonize no
改成 daemonize yes
然后再将改动保存,退出。(这里我并没介绍vim的操作,大家如果这里操作有难度,可以自行google解决啊)
- 这次通过配置文件启动redis,同样在
redis-3.2.9/
这个目录下,通过
src/redis-server redis.conf
启动redis
- 其实,到这里,redis就已经启动了。可以通过
ps aux|grep redis
查看redis进程是否存在
一般linux平台都带有python3,如果没有的话,可按照如下过程安装(这里我以centos为例)
- 先下载python3
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
- 再解压
tar -zxvf Python-3.5.2.tgz
- 再切换到解压后的目录
cd Python-3.5.2
- 切换到Module目录下,去掉关于SSL模块的注释
cd Modules
vim Setpy.dist
找到下面这段代码
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
# SSL=/usr/local/ssl
# _ssl _ssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/lib -lssl -lcrypto
修改为下面所示
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
# SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
如果是没有安装openssl-devel的话,还需要安装openssl-devel包
yum install openssl-devel -y
- 编译安装python
cd ..
./configure
make && make install
如果没安装gcc的话,编译会失败,安装方式如下
yum install gcc
- 给Python3.52建立软连接
rm -f /usr/bin/python
ln -s /usr/local/bin/python3 /usr/bin/python
至此,关于Python3.5的安装的整个过程就结束了。
使用这种方式升级Python的话会导致yum不能使用,原因是yum默认使用系统自带的python版本,解决方法如下 修改yum文件:
vi /usr/bin/yum
将文件头部的
#!/usr/bin/python
改为如下内容
#!/usr/bin/python2.7
这里python2.7我的服务器系统自带的python版本,所以大家需要根据自身情况改成自己系统自带的python版本