天天看點

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

文章目錄

目錄

文章目錄

導語

1.購買與配置阿裡雲伺服器

1.1 購買域名

1.2 購買伺服器

1.3 域名實名認證

1.4 備案伺服器

2.在伺服器中配置php開發環境

2.1 下載下傳 XShell 6 ,Xftp 6

2.2 先更新apt-get

2.3 安裝 MySQL

2.4 安裝 Apache2

2.5 安裝 php7.0

2.6 安裝apache的php子產品

2.7 安裝php-mysql

3.上傳本地 ThinkPHP 5 項目

3.1 使用Xftp上傳本地項目

3.2 修改伺服器apache網站預設根路徑

3.3 遠端連接配接 MySQL 

3.4 隐藏網站通路路徑中的index.php

參考資料

導語

本教程使用阿裡雲 ubuntu 16.04 伺服器,部署 ThinkPHP5 項目(學生輕量應用伺服器),本地環境 windows10 64位,工具 XShell 6,Xftp 6,navicat for mysql

1.購買與配置阿裡雲伺服器

1.1 購買域名

(根據自己需求可購買可不購買,如果不購買可直接看 1.2 我這裡購買的是 騰訊雲域名)

啥?你問為什麼選擇 騰訊 域名,當然是因為 便宜 啊。我購買的是 .xyz 域名。靈活經濟是也~

當然購買 阿裡雲域名 ,操作也是一緻的。

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

1.2 購買伺服器

 阿裡雲學生輕量應用伺服器購買位址 

選擇 系統鏡像 > Ubuntu 16.04 64位 ( 有效期可根據自己需求選擇,但是如果需要備案伺服器的話,需要有效期 >= 3個月 )

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

1.3 域名實名認證

# 當天就可以認證

1.4 備案伺服器

阿裡雲伺服器備案需1天,隔天阿裡雲從業人員會與你确認備案資訊。

* 前提:域名必須實名認證超過3天,否則域名注冊商那裡查詢不到該域名,備案會失敗

2.在伺服器中配置php開發環境

  MySQL + apache2 + php 7.0

使用工具 XShell 6 ,Xftp 6 工具進行遠端連接配接阿裡雲伺服器

2.1 下載下傳 XShell 6 ,Xftp 6

附上百度網盤位址,提取碼:zica 

安裝完成後,打開 XShell 6

  • 建立會話 預設端口 22
  • 使用 ssh 實作公鑰登陸
所謂"公鑰登入",原理很簡單,就是使用者将自己的公鑰儲存在遠端主機上。登入的時候,遠端主機會向使用者發送一段随機字元串,使用者用自己的私鑰加密後,再發回來。遠端主機用事先儲存的公鑰進行解密,如果成功,就證明使用者是可信的,直接允許登入shell,不再要求密碼。
# 用ssh-keygen生成一個公鑰
ssh-keygen
           

運作上面的指令以後,系統會出現一系列提示,可以一路回車。其中有一個問題是,要不要對私鑰設定密碼(passphrase),如果擔心私鑰的安全,這裡可以設定一個。

運作結束以後,在$HOME/.ssh/目錄下,會新生成兩個檔案:id_rsa.pub和id_rsa。前者是你的公鑰,後者是你的私鑰。

這時再輸入下面的指令,将公鑰傳送到遠端主機host上面:

ssh-copy-id root@公網IP
           

好了,從此你再登入,就不需要輸入密碼了。

如果還是不行,就找到遠端主機的/etc/ssh/sshd_config這個檔案( 用Xftp 6打開 ),

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

左邊為你本地 windows 10 上的資源管理,右邊為遠端主機的檔案管理,在右邊找到 sshd_config 檔案,右鍵 用記事本編輯

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

檢查下面幾行前面"#"注釋是否取掉。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
           

然後,重新開機遠端主機的ssh服務。

service ssh restart
           

之後,你再進入 XShell 6 中時,不用再輸入密碼

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

2.2 先更新apt-get

一定要先更新,避免遇到找不到軟體包的錯誤。

sudo apt-get update
sudo apt-get upgrade
           

2.3 安裝 MySQL

sudo apt-get install mysql-server
mysql --version
# 出現如下界面,則MySQL成功安裝
           
阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

2.4 安裝 Apache2

sudo apt-get install apache2
           

在浏覽器打開 公網ip ,若出現如下界面,則成功安裝

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

2.5 安裝 php7.0

sudo apt-get install php7.0
           

2.6 安裝apache的php子產品

* 使apache可以調用php引擎處理php程式,不然無法解析 php代碼,會把php代碼當作字元串直接顯示在頁面上

apt-get install libapache2-mod-php

#運作完成之後通過指令檢視是否安裝成功

cat /etc/apache2/mods-enabled/php7.0.load
           

如果顯示下列内容,則代表成功

Conflicts: php5

LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so

驗證是否安裝完成,建一個文檔:(/var/www/html 為 apache 網站預設根目錄)

sudo vi /var/www/html/info.php
           

按下i鍵編輯檔案 輸入

<?php
  phpinfo();
?>
           

按下Esc退出寫入模式,輸入

:wq

儲存退出(記住有冒号)

重新開機Apache:

service apache2 restart

,在浏覽器中輸入

公網IP/info.php

如果看到下圖則說明PHP安裝成功。

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

2.7 安裝php-mysql

* 不然會遇到未找到PDO驅動錯誤could not find driver 問題

sudo apt install php7.0-mysql
           

修改配置檔案 去掉

/etc/php/7.0/apache2/php.ini

檔案中

extension=php_pdo_mysql.dll

前面的

;

然後重新開機Apache

驗證,可以通過檢視phpinfo中的PDO擴充是否有mysql

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

3.上傳本地 ThinkPHP 5 項目

3.1 使用Xftp上傳本地項目

上傳本地檔案到伺服器

/var/www/html

目錄下

3.2 修改伺服器apache網站預設根路徑

打開 /etc/apache2/sites-available/000-default.conf

  • 把  DocumentRoot /var/www/html 改成  DocumentRoot /var/www/html/你的項目名/public
  • 重新開機Apache,在浏覽器中輸入正确的項目網址,即完成。(service apache2 restart)

檢查配置成功沒:可以把上面的 info.php 複制到 public 目錄下,在浏覽器打開 域名/info.php

( 伺服器沒備案完成 / 沒域名:在浏覽器打開 公網IP/info.php )

3.3 遠端連接配接 MySQL 

  • 安裝 Navicat for MySQL 

Navicat for MySQL 網盤下載下傳位址   提取碼:g5fu 

安裝 Navicat for MySQL 後運作下 檔案夾中的  PatchNavicat.exe 激活

  • 在阿裡雲控制台開放3306端口

打開 安全 > 防火牆 > 添加規則 MYSQL (如果有就不用添加了)

阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料
  • 配置mysql允許遠端連接配接

一、修改/etc/mysql/my.conf

找到bind-address = 127.0.0.1這一行

改為bind-address = 0.0.0.0即可

二、為需要遠端登入的使用者賦予權限

在 XShell 中,運作

mysql -u root -p
#提示輸入密碼
           

如果輸入密碼後能登入 mysql> 界面,則直接跳到 三、建立使用者遠端連接配接mysql資料庫

若提示不能登入,但确定自己密碼沒有輸錯,則我們嘗試啟用安全模式登入MySQL,這樣可以繞過密碼登入,登入後再修改MySQL密碼。

安全模式登入MySQL

1

2

3

4

5

6

7

$ sudo /etc/init.d/mysql stop

-------------------------------------

[sudo] wl 的密碼:

[ ok ] Stopping mysql (via systemctl): mysql.service.

$ sudo /usr/bin/mysqld_safe 

--skip-grant-tables --skip-networking &

 輸入第一行終止MySQL運作,成功,會提示下面兩行;輸入第四行,成功,沒有任何報錯則可以另外打開一個終端視窗進行下一步操作;但是一般會報錯,比如提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists

是以我們嘗試輸入以下代碼

1

2

3

$ sudo mkdir -p /var/run/mysqld

$ sudo chown mysql:mysql /var/run/mysqld

 最後再次輸入:

1

sudo /usr/bin/mysqld_safe 

--skip-grant-tables --skip-networking &

 到了這裡不在提示錯誤,可以打開另一個終端端口了,嘗試無密碼登入MySQL。

1

mysql -u root

 到這裡應該可以進入MySQL了,繼續操作

1

2

3

4

5

6

7

> use mysql;

update

user

set

authentication_string=

PASSWORD

(

"這裡輸入你要改的密碼"

where

User

=

'root'

; #更改密碼

update

user

set

plugin=

"mysql_native_password"

; #如果沒這一行可能也會報一個錯誤,是以需要運作這一行

> flush 

privileges

; #更新所有操作權限

> quit;

 4、使用修改的密碼登入MySQL

經過上面一系列的操作,應該可以正常使用你更改的密碼登入了。

1

2

3

4

sudo /etc/init.d/mysql stop

sudo /etc/init.d/mysql start # reset mysql

mysql -u root -p

三、建立使用者遠端連接配接mysql資料庫

1

2

3

4

5

6

7

> use mysql;

grant all on *.* to admin@'%' identified by '123456' with grant option;  # 使用者名為admin,密碼為123456,可根據自己需要修改

> flush 

privileges

; #更新所有操作權限

> select host,user from user; # 檢視結果

# 結果 +-----------+------------------+ | host      | user             | +-----------+------------------+ | %         | admin         | | localhost | debian-sys-maint | | localhost | mysql.session    | | localhost | mysql.sys        | | localhost | root             | +-----------+------------------+

若遇到 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 問題

1

2

3

4

#ps -A|grep mysql

顯示類似:

  1829 ?        00:00:00 mysqld_safe

   1876 ?        00:00:31 mysqld

#kill -9 1829

#kill -9 1876

#/etc/init.d/mysql restart

#mysql -u root -p

若還未解決,可參考  ERROR 2002 (HY000)解決辦法 解決

  • Navicat for MySQL 實作遠端連接配接,連接配接測試通過後,點選确定
阿裡雲ubuntu部署TP5項目文章目錄導語1.購買與配置阿裡雲伺服器2.在伺服器中配置php開發環境3.上傳本地 ThinkPHP 5 項目參考資料

我是通過 導入.sql 檔案

此時通過浏覽器可通路 公網IP/index.php/....(你route.php中設定的路由規則 eg.公網IP/index.php/api/v1/theme/1)

(如果備案好了,則可以用 域名/index.php/....(你route.php中設定的路由規則 eg.域名/index.php/api/v1/theme/1))

3.4 隐藏網站通路路徑中的index.php

檢查一下

/etc/apache2/apache2.conf 

檔案中的AllowOverride None 是否已經改為 AllowOverride All

重新開機Apache(service apache2 restart)

此時通過浏覽器可通路 公網IP/....(你route.php中設定的路由規則 eg.公網IP/api/v1/theme/1)

(如果備案好了,則可以用 域名/....(你route.php中設定的路由規則 eg.域名/api/v1/theme/1))

參考資料

ssh原理與運用:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

配置mysql允許遠端登陸: http://www.cnblogs.com/linjiqin/p/5270938.html

mysql root使用者重置密碼: https://blog.csdn.net/heatdeath/article/details/78907563

ERROR 2002(HY000)解決辦法: https://blog.csdn.net/heatdeath/article/details/78907563

用Navicat for mysql導入.sql檔案:https://www.cnblogs.com/keyi/p/5978982.html

阿裡雲ECS配置TP5項目: https://blog.csdn.net/u014570569/article/details/83275780