阿里云服务器部署scrapy爬虫和apache2.4+php7.0+mysql5.7的配置

来源:互联网 发布:音域测试软件 编辑:程序博客网 时间:2024/06/08 09:58

一.注册阿里云服务器

我购买的是云服务器ECS,一核CPU,2GB内存,ubuntu16.0.4 64位系统,学生价9.9一个月,注册过程我不多说,网上很多。但是有一点要注意,因为我用的是apache服务器,端口号为80,但是刚开始怎么都访问不了阿里云给我的公网ip,原因是:需要进入安全组配置->配置规则->添加安全组规则,把80端口号加入进去。详见此文:http://blog.csdn.net/inite/article/details/73658214
在你的实例那一栏点击 ‘远程连接‘ ,输入阿里云给你的远程登录密码,就可以进入你的服务器系统:


此外,你也可以用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自启动服务:

 

用鼠标点击,也可以用键盘方向键定位,用空格键选择, “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,找到下面的内容改成我这样:
 


<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

mysql导入导出sql文件操作,详见此文http://www.cnblogs.com/yuwensong/p/3955834.html

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

mysql存储过程操作,详见此文http://www.cnblogs.com/mark-chan/p/5384139.html

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

linux定时执行脚本,详见这些文章https://my.oschina.net/junn/blog/138055          http://blog.csdn.net/zwhfyy/article/details/34065187    
写定时运行脚本时可能会遇到错误,需要开启crontab日志排错 ,参看 http://blog.csdn.net/gebitan505/article/details/17299755

四.效果图

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


原创粉丝点击