LAMP環境下的Laravel項目部署

背景


笨熊人如其名,有些愚鈍。僅僅是將本地寫好的Laravel項目部署到服務器上,就花了整個端午假期。痛定思過后,笨熊決定開始記錄下自己曾經踩過的坑,一方面防止自己再次遇到相同的問題時手足無措,一方面希望能夠幫助和我一樣的小白們解決問題,如有錯誤,盡請指正。


環境簡介


操作系統:Linux Ubuntu 16.04

Web服務器:Apache / 2.4.18 (Ubuntu)

編譯引擎:PHP 7.0.18

數據庫:Mysql 5.7.18

數據庫管理工具:PhpMyAdmin


一、上傳方式


代碼的上傳可以分兩種方法:

1.使用FTP軟件或SFTP軟件

優點:便捷,界面友好,可視化

缺點:上傳速度受服務器帶寬限制,大文件上傳耗時長

這里我使用的軟件是WinSCP以及PhpStorm,服務器是騰訊云1元學生機,配置為1核 1GB 1Mbps,上傳27M的項目代碼耗時約為一個半小時。

2.使用Git

優點:快速,方便修改

缺點:對新手而言操作繁瑣,界面不友好

本篇文章我著重講解方法二:使用Git


二、項目搬家


這里我們使用Github作為代碼托管平臺。

1.在github上創建項目

第一步,創建Github新賬戶并登陸


第二步,新建倉庫


第三步,填寫名稱,簡介(可選),勾選Initialize this repository with a README


2.本地上傳項目至Github

Git下載地址:git-scm.com/downloads

(1)下載并安裝完成后,在【開始】菜單,打開Git Bash。

(2)配置用戶名和郵件地址

我們需要設置一個用戶名和郵箱,當本地倉庫至Github時后,在Github會顯示上傳者。

在Git Bash中輸入以下命令。假設用戶名是ClumsyBear,郵箱是clumsybear@gmail.com

git config --global user.name "Clumsybear"

git config --global user.email "clumsybear@gamil.com"

(3)生成SSH密匙

在Git Bash中輸入以下命令。

ssh-keygen -t rsa -C "user@email.com"

注意:這里的user@email.com請使用注冊Github時所使用的郵箱。

不建議新手設置密碼,三個連續回車后,會在~/.ssh下生成兩個文件:私鑰id_rsa和公鑰id_rsa.pub。

(4)添加SSH公鑰

第一步:

在右上方賬戶里找到Settings


第二步:

左側菜單欄中選擇SSH and GPG keys,在SSH keys欄右上角選擇New SSH key


第三步:

找到本地.ssh文件夾,復制公鑰id_rsa.pub的內容,粘貼至Key欄中,Title欄內容自選


請不要使用Windows自帶的記事本,最好使用開源軟件Notepad++打開id_rsa.pub

下載鏈接:notepad-plus-plus.org/download/v7.4.1.html

(5)測試公鑰是否添加成功

在Git Bash中輸入以下命令:

ssh -T git@github.com

如果是第一次連接,會提示是否continue,輸入yes。出現You've successfully authenticated, but GitHub does not provide shell access,則表示已成功連接Github。

(6)生成遷移文件(若已生成過可忽略此步驟)

在本地終端中進入項目文件,輸入以下命令

php artisan make:migration create_users_table

其中users改為自己的用戶名,table改為表名,生成文件會儲存在database\migrations\中。

(7)建立倉庫,上傳項目

在Git Bash中進入項目根目錄,輸入以下命令:

git init

出現Initialized empty Git repository in C:/project/.git/,則表示成功建立倉庫。

git add .

注意不要忽略后面的 . ,此操作是把項目文件夾下面的所有文件添加到倉庫。

git commit -m "備注信息"

此操作是把添加的文件提交到倉庫。

git remote add origin git@github.com:yourName/yourProject.git

此操作是添加遠程地址,地址獲取方式如下圖所示:


SSH獲取方式


git push -u origin master

此操作是把本地倉庫push到Github上。

【注意】如果出現以下錯誤:

出現這個錯誤的主要原因是Github項目中的README.md文件不在本地代碼目錄中

只需要執行下列代碼后再次push即可:

git pull --rebase origin master


3.下載項目至服務器(需配置LAMP環境)

(1)下載Git至服務器(服務器預裝Git的可以忽略這一步)

命令行如下:git-scm.com/download/linux

(2)下載項目

執行以下命令:

cd /var/www/html

sudo chmod 777 /var/www/html

git clone https://github.com/yourName/yourProjects

地址獲取方式如下:

紅色方框處可切換SSH和HTTPS,這里我們選擇HTTPS

執行后/var/www/html目錄下會出現一個與Github項目相同名字的文件夾,這就是我們的項目文件了。

(3)下載安裝composer

Laravel使用Composer管理依賴,所以我們需要執行以下命令下載并安裝Composer:

cd usr/local/bin

sudo curl -s https://getcomposer.org/installer | sudo php

sudo chmod a+x composer.phar

mv composer.phar /usr/local/bin/composer

sudo composer.phar self-update

composer --version

(4)安裝項目

執行以下代碼:

composer install


三、配置Laravel


1. 設置storage文件夾權限:

chmod -R 777 storage

chmod -R 777 bootstrap/cache

2. 生成.env文件

mv .env.example .env

3. 應用Key:

php artisan key:generate

4. 配置.env文件:

sudo vim .env

配置項目如下:

.env默認配置

需要修改的項目有:

APP_DEBUG=false


DB_HOST=localhost

DB_DATABASE=yourDatabase

DB_USERNAME=yourUsername

DB_PASSWORD=yourPassword


REDIS_HOST=localhost

5. 重啟服務器:

service apache2 restart

6. 瀏覽器訪問

Ubuntu地址/項目名/public/

即可見項目主頁。

7. Apache2 路由配置

此時你可能遇到一個問題,那就是只有項目主頁可見,而訪問其他頁面時會報404錯誤,這是因為laravel的入口文件在public文件夾下,這時我們需要配置Apache2路由:

(1)開啟rewrite模板

sudo a2enmod rewrite

(2)修改修改/etc/apache2/sites-available/000-default.conf

sudo vim /etc/apache2/sites-available/000-default.conf

修改此文件

在下方添加:

<Directory "/var/www/html">

Allowoverride All

</Directory>

【注意】DocumentRoot是根目錄,我們可以把他修改成項目文件夾下public文件夾,這樣服務器的默認主頁就變成了項目的默認主頁,但是<Directory "/var/www/html">中的目錄一定要和DocumentRoot保持一致。

(3)重啟Apache2

service apache2 restart

這樣,我們的laravel項目就成功部署到服務器上了!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容