背景
笨熊人如其名,有些愚钝。仅仅是将本地写好的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上创建项目
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公钥
第一步:
第二步:
第三步:
请不要使用Windows自带的记事本,最好使用开源软件Notepad++打开id_rsa.pub
(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
此操作是添加远程地址,地址获取方式如下图所示:
git push -u origin master
此操作是把本地仓库push到Github上。
【注意】如果出现以下错误:
只需要执行下列代码后再次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
地址获取方式如下:
执行后/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
配置项目如下:
需要修改的项目有:
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项目就成功部署到服务器上了!