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项目就成功部署到服务器上了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容