美文网首页
LAMP环境下的Laravel项目部署

LAMP环境下的Laravel项目部署

作者: 笨熊公子 | 来源:发表于2017-06-02 18:36 被阅读0次

    背景


    笨熊人如其名,有些愚钝。仅仅是将本地写好的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项目就成功部署到服务器上了!

    相关文章

      网友评论

          本文标题:LAMP环境下的Laravel项目部署

          本文链接:https://www.haomeiwen.com/subject/ipfsfxtx.html