1. 程式人生 > >阿里雲伺服器部署scrapy爬蟲和apache2.4+php7.0+mysql5.7的配置

阿里雲伺服器部署scrapy爬蟲和apache2.4+php7.0+mysql5.7的配置

一.註冊阿里雲伺服器

我購買的是雲伺服器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

四.效果圖

爬取的是我市幾個區的房價的一些資訊,資料來源:房天下網