一.注册阿里云服务器


我购买的是云服务器ECS,一核CPU,2GB内存,ubuntu16.0.4 64位系统,学生价9.9一个月,注册过程我不多说,网上很多。 但是有一点要注意,因为我用的是apache服务器,端口号为80,但是刚开始怎么都访问不了阿里云给我的公网ip,原因是:需要进入安全组配置->配置规则->添加安全组规则,把80端口号加入进去。

在你的实例那一栏点击 ‘远程连接‘ ,输入阿里云给你的远程登录密码,就可以进入你的服务器系统:



云平台服务器如何抓包 云服务器部署爬虫_mysql



此外,你也可以用putty远程登录你的阿里云服务器


二.安装配置Apache2.4+mysql5.7+php7.0


因为需要将爬虫爬取的数据用网页显示,所以需要搭建这个web编程环境


首先要更新系统资源:apt-get update,apt-get upgrade  因为当前已经是root用户,所以不需要用sudo


1.安装配置Apache2.4

第一,安装:apt-get install apache2 

第二,apache2.4的主配置文件 /etc/apache2/apache2.conf ,里面的KeepAlive默认是On,是apache开机一直启动,不用改


第三,apache默认的multi-processing模块(MPM)是一个event模块,但是php默认的是使用prefork模块,禁用event模块,启用prefork模块:


    a2dismod mpm_event,a2enmod mpm_prefork


最后,重启:service apache2 restart,如果在重启时看见关于ServerName的报错,可以在apache主配置文件中添加一行 ServerName localhost,然后再重启



2.安装配置php7.0


ubuntu16.0.4下默认的php源就是php7.0,你如果想要用php5的话,那就自己添加外部源,我直接用的php7.0,安装:apt-get install php7.0


3.安装配置mysql5.7


ubuntu16.0.4下默认的mysql源就是mysql5.7,,在终端输入 apt-get install mysql-server mysql-client,在安装过程中会让你输入root用户密码,按要求输入即可,最后登陆mysql检查安装是否成功


再介绍一个工具sysv-rc-conf,用来设置ubuntu自启动服务:



 

云平台服务器如何抓包 云服务器部署爬虫_apache_02




用鼠标点击,也可以用键盘方向键定位,用空格键选择, “X”表示开启该服务。用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。

也可以用命令:

sysv-rc-conf --level 2345 mysql off

注意:Ubuntu系统中服务的运行级别

0        系统停机状态
	1        单用户或系统维护状态
	2~5      多用户状态
	6        重新启动


可以看见mysql已经默认是自启动了


mysql的开启:service mysql start,重启:service mysql restart,关闭:service mysql stop

以root身份登录mysql:mysql -uroot -p,然后会让你输入root密码

更改mysql字符编码,如果不改的话mysql数据库存的中文会变成乱码:


首先登录进mysql,进入你使用的数据库,输入命令show variables like ‘character_set_%’; ,查看mysql字符集,会出现一个表,我的默认都是latin编码。然后关闭 数据库,进入mysql配置文件:vim /etc/mysql/my.cnf,在里面添加:

[client]


default-character-set = utf8


[mysqld]


character-set-server = utf8


重启mysql,就能将数据库默认编码改为utf-8



注意:


网上很多资源都是在[mysqld]下添加

default-character-set=utf8

如果这样改会导致5.7版本mysql无法打开

所以要改为

character-set-server=utf8

改完后,要删除数据库中所有数据,重启数据库,才能使用。


4.整合


整合php和mysql:apt-get install php7.0-mysql


整合php和apache:apt-get install libapache2-mod-php7.0,重启apache:service apache2 restart


5.设置ubuntu文件执行读写权限


LAMP整合好后,php网络服务器根目录是 /var/www/html,由于linux安全性原则,必须先修改/var/www目录的读写权限,才能在www文件夹下创建,删除,修改php文件等:chmod 777 /var/www  (因为下面要将根目录更改为/var/www,所以直接给/var/www目录改权限就行,而不是改/var/www/html)


6.测试环境


第一,显示php版本:php -V


第二,Apache2.4默认的网站根目录位于  /var/www/html/,在这个目录里随意创建php文件,用浏览器访问:http://(给你的公网ip)/html/(你的php文件)

注意:


进入apache的主配置文件,vim /etc/apache2/apache2.conf,找到下面的内容改成我这样:


 

云平台服务器如何抓包 云服务器部署爬虫_云平台服务器如何抓包_03




<Directory /var/www>下面的Options Indexes FollowSymLinks,改成Options FollowSymLinks,即去掉Indexes,因为这会使得直接访问apache服务器根目录时,当发现没有index.html文件时,会把apache根目录文件结构显示出来,所以要去掉它。


再改一下apache2.4的默认网站根目录,vim /etc/apache2/sites-available/000-default.conf,进入后可以改成想要的目录 ,我改成/var/www/

默认主页的配置在/etc/apache2/mods-available/dir.conf可以为如下格式:index.html  index.cgi  index.pl  index.php index.xhtml index.htm可以修改为 ***.html等


三.将scrapy爬虫从windows7移植到ubuntu


我的scrapy爬虫是之前在windows下写好的,所以直接可以移植,使用filezilla可以轻松实现windows向ubuntu传送文件,此外我也将我的php程序从windows移植到ubuntu下,ubuntu16.0.4下已经预装好python环境了,我用的是python2.7.12环境,ubuntu下安装scrapy比在windows下简单,因为ubuntu已经预装好的很多东西了,我只做了以下几个工作:


第一,安装pip,再用pip安装Python的其他模块


第二,安装MySQLdb,pip install MySQLdb,安装完后进入Python环境import一下,看看是否成功,MySQLdb注意大小写


第三,在windows下用navicat导出在windows写好的数据库的所有表,是一个.sql文件,用filezilla将这个.sql文件传入云服务器,再用source命令将这个.sql导入mysql数据库: mysql>source 你的.sql文件路径,比如我的:mysql>source /usr/lijinze/houseprice.sql

第四,我的数据库中有9个表,主键id还是自动增长,在测试时经常清表,如果手动一个一个清很麻烦,而且id号还不是重新从1开始,所以写一个存储过程,过程里只有9段这样的代码:truncate table 表名;,这条语句可实现清表的同时自增长主键重新从1开始。

第五,我写了一个linux脚本,用crontab定时执行,让服务器每天定时执行一次爬虫

写定时运行脚本时可能会遇到错误,需要开启crontab日志排错


四.效果图


爬取的是我市几个区的房价的一些信息,数据来源:房天下网



云平台服务器如何抓包 云服务器部署爬虫_apache_04