最近一兩週,IT幫的會員、BA學員和AM學員時不時反饋網站打不開、敏捷我的APP登陸不了,有時候又能夠可是很慢,還有的時候電信能訪問而聯通網絡訪問不了。php
這個體驗可很差,因而前天想把站點和APP後臺都挪一下窩,因而在騰訊買了個雲主機,開始網站搬遷。html
在過程當中學習,如下是此次搬遷中的技術問題和解決記錄,說不定對一些人有幫助,也能夠給本身作個備份,以便以後再次搬遷時查看。mysql
購買雲主機,安裝系統
在騰訊雲選了配置,付錢就OK了。由於我沒學過Linux啊,之前都是在window上幹活,工做中服務器端我也不須要本身去作,我提出需求便可。因此雲主機購買時我選擇的是window系統,由於總以爲這樣搬移個人工做量就能夠少。linux
不過我不喜歡重複,因此想換成CentOS系統。從window切換到centos系統會更改系統盤大小之類的,要下工單由後臺從新分配主機。沒過多久給我從新分配安裝了CentOS 6。經過騰訊雲控制檯登陸,感受網頁操做有點慢,因而想着遠程命令行操做。個人是Mac機,因而百度了「Mac CentOS 遠程操做」,知道經過終端SSH就能訪問,因而經過SSH進行了遠程操做。nginx
由於沒學過linux,不熟悉命令行啊,因而想弄個圖形桌面是否是更容易上手呢。因而網上查了一些如何安裝圖形界面。操做了幾回,死機幾回,重裝了幾回。後來想幹脆從CentOS6重裝到CentOS7.2,雖然網上有人說CentOS7可能會對熟悉的人有些不方便。不過我反正都不會,因而選擇裝最新版,因此本身從新安裝了CentOS7系統。web
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @…Host key verification failed.
這個問題搞定以後,經過SSH操做。由於我對linux的生疏,仍是不習慣命令行,因此仍是想要一個圖形界面來遠程操做,因而網上找如何安裝系統桌面,又查找VNC怎麼安裝。按照不一樣文章所示進行操做,死機了幾回,重裝了幾回。最後終於安裝好了,不過最後發現基本也沒有用到,由於我以爲得練習一下命令行操做,並且大部分教程也都是命令行的。sql
安裝PHP環境數據庫
由於IT幫網站、敏捷我的APP後臺都是基於PHP開發的,因此在搞定系統以後就開始時安裝環境了。固然爲了簡單性,你也能夠直接從服務市場得到作好的PHP環境鏡像。不過我第一次弄這個,仍是留給我本身吧。apache
上網搜索「CentoOS7 PHP環境」,出來不少相關文章,這個過程仍是又折騰了一些時間。如下是正確操做的這一次的步驟:vim
卸載mariadb
CentOS7默認不用MySQL,而是mariadb了,雖然說mariadb能夠向後兼容MySQL,不過我仍是想用MySQL,因此我先要卸載mariadb。
先列出全部被安裝的rpm package
# rpm -qa | grep mariadb
mariadb-libs-5.5.50-1.el7_2.x86_64 mariadb-5.5.50-1.el7_2.x86_64 mariadb-server-5.5.50-1.el7_2.x86_64
不一樣版本返回結果可能不同,按照返回版本號卸載上面返回的內容
# rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64
安裝MySQL
CentOS 7的yum源中貌似沒有正常安裝mysql時的mysql-sever文件,須要去官網上下載
# wget
http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
#
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
# yum
install -y mysql-community-server
|
成功安裝以後重啓mysql服務
# service mysqld restart
|
爲了增強安全性,MySQL5.7爲root用戶隨機生成了一個密碼,在error log中,關於error log的位置,若是安裝的是RPM包,則默認是/var/log/mysqld.log。
只有啓動過一次mysql才能夠查看臨時密碼
grep 'temporary password' /var/log/mysqld.log(若是以前安裝過MySQL則這裏可能會有多個密碼,用最後一個,注意這個密碼輸入時是能夠粘貼的)
這裏的密碼是YdsGaxOq>2n!
登錄並修改密碼
使用默認的密碼登錄
mysql -uroot -p(這是一個MySQL的以密碼登陸root用戶的命令)
能夠經過如下命令去設置密碼:
# mysql -uroot
mysql> set password for 'root'@'localhost' = password('mypasswd');
mysql> exit
|
如何在CentOS中添加Swap
MySQL啓動如下後發現自動關閉,查找日誌發現:cannot allocate the memory for the buffer pool。經過 free -ml 看到swap是0,因而要添加swap文件。
一、使用dd命令建立一個swap交換文件
dd if=/dev/zero of=/home/swap bs=1024 count=1024000
這樣就創建一個/home/swap的分區文件,大小爲1G。
二、製做爲swap格式文件:
mkswap /home/swap
三、再用swapon命令把這個文件分區掛載swap分區
/sbin/swapon /home/swap
咱們用free -m命令看一下,發現已經有交換分區了。
可是重啓系統後,swap分區又變成0了。
四、爲防止重啓後swap分區變成0,要修改/etc/fstab文件
vi /etc/fstab
在文件末尾(最後一行)加上
/home/swap swap swap default 0 0
這樣就算重啓系統,swap分區仍是有值。
刪除swap交換文件
一、先中止swap分區
/sbin/swapoff /home/swap
二、刪除swap分區文件
rm -rf /home/swap
三、刪除自動掛載配置命令
vi /etc/fstab
這行刪除
/home/swap swap swap default 0 0
這樣就能把手動增長的交換文件刪除了。
注意:
一、增長刪除swap的操做只能使用root用戶來操做。
二、裝系統時分配的swap分區貌似刪除不了。
三、swap分區通常爲內存的2倍,但最大不超過2G
安裝Apache
yum install httpd #根據提示,輸入Y安裝便可成功安裝
- systemctl start httpd.service #啓動apache
- systemctl stop httpd.service #中止apache
- systemctl restart httpd.service #重啓apache
- systemctl enable httpd.service #設置apache開機啓動
在客戶端瀏覽器中打開服務器IP地址,會出現下面的界面,說明apache安裝成功
安裝PHP
#Centos 5.X:
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
#CentOs 6.x:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
#CentOs 7.X:
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
4.安裝新的版本
yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-fpm php71w-gd php71w-mbstring php71w-mysqlnd php71w-opcache php71w-pdo php71w-xml php71w-ldap php71w-mcrypt
根據提示輸入Y直到安裝完成。
apache默認的程序目錄是/var/www/html
複製網站文件
環境搭建好了,就要拷貝文件了。此次要從原有網站把完整目錄拷貝到雲主機,不過我怎麼拷貝呢。想到最簡單的辦法就是經過FTP上傳文件了。因而百度如何開啓FTP服務。
yum install -y vsftpd
vsftpd默認設置爲禁止root帳戶登陸,開啓的方式以下:
1.編輯/etc/vsftpd/user_list和/etc/vsftpd/ftpusers兩個設置文件腳本,將root帳戶前加上#號變爲註釋。(即讓root帳戶從禁止登陸的用戶列表中排除)
2.從新開啓vsftpd service vsftpd reload
容許root帳戶訪問ftp,能夠遠程訪問centos系統中的任一文件,對於遠程維護centos系統或下載文件十分方便。但從安全角度考慮,最好爲臨時性開啓,日常仍是把它關掉吧。
FTP配置文件地址:/etc/vsftpd/vsftpd.conf
Mac下以前我用的是ForkLift訪問FTP,此次我用它訪問原有和如今的主機,並開始拖動上傳文件。一切正常,可是訪問網站發現網頁不顯示圖片,原來是圖片是中文名,而ForkLift對中文名顯示亂碼。
因而開始找有沒有其餘FTP工具,找了一個Transmit,發現仍是亂碼,又搜索如何解決亂碼問題,發如今Transmit中的View菜單選擇文本編碼爲GB 2312,接着拷貝正常,網頁顯示正常。
- 啓動Vsftpd服務:service vsftpd start
- 設置vsftpd開機啓動, systemctl enable vsftpd
- 從新啓動Vsftpd服務的命令爲:service vsftpd restart
備份恢復數據庫
文件拷貝完了,就這就是恢復數據庫了。本來想着把備份好的SQL文件上傳到服務器,而後再去執行。想着如今對安全性也要求不高,簡單一些,使用Navicat遠程訪問服務器執行SQL文件進行數據庫恢復。
這步一切正常。
受權遠程訪問:
開放防火牆端口:
重啓防火牆:
SSH登陸