Ubuntu18 配置 Laravel 运行环境

一、配置简介

本文采用 LNMP 的方式配置服务器环境即 Ubuntu + Nginx + Mysql + PHP(7.1)

二、准备工作

更新列表

apt-get update

安装语言包

sudo apt-get install -y language-pack-en-base

locale-gen en_US.UTF-8

三、开始安装

安装 PHP7

sudo apt-get install -y software-properties-common

sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

再次更新列表

sudo apt-get update

搜索PHP7.1

apt-cache search php7.1

安装PHP7.1

sudo apt-get install -y php7.1

中途可能连续报错关于 apache 的,先忽略。看看php7.1 是否安装成功

$ php -v
PHP 7.1.18-1+ubuntu14.04.1+deb.sury.org+1 (cli) (built: Jun 11 2018 14:42:27) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.18-1+ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

至此php7.1安装成功

安装相关模块

sudo apt-get install -y php7.1-mysql
sudo apt-get install -y php7.1-fpm
sudo apt-get install -y php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring

安装 Mysql

sudo apt-get install -y mysql-server

安装过程会要求输入密码。请设置并牢记此密码

安装 Nginx。

注意我们刚刚装php的时候报了关于 apache 的错误,所以我们先检查是否安装了 apache

$ apache2 -v          
Server version: Apache/2.4.7 (Ubuntu)
Server built:   Apr 18 2018 15:36:26

先停止服务

$ sudo service apache2 stop
* Stopping web server apache2
* 

进行卸载

sudo apt-get --purge remove apache2
sudo apt-get --purge remove apache2.2-common
sudo apt-get autoremove

安装 nginx

sudo apt-get install -y nginx

测试是否安装成功

$ nginx -v
nginx version: nginx/1.4.6 (Ubuntu)

四、配置

配置PHP

sudo vim /etc/php/7.1/fpm/php.ini

;cgi.fix_pathinfo=1改为cgi.fix_pathinfo=0

编辑fpm的配置文件

sudo vim /etc/php/7.1/fpm/pool.d/www.conf

listen = /run/php/php7.1-fpm.sock修改为listen = /var/run/php/php7.1-fpm.sock 即在其前面添加 /var

配置nginx

sudo vim /etc/nginx/sites-available/default

核心配置代码如下:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/laravel/public; # 你的项目路径
    index index.php index.html index.htm; # 注意添加 index.php

    server_name xx1.xxx.com; # 域名,多个指向可空格之后继续添加

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {             
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}

配置完重启生效

sudo service nginx restart

五、部署

将代码上传到服务器有多种方式,例如 ftp 、 git 、scp 命令等。使用哪种方式看自己喜欢了。现在越来越多人推荐 git,好处就是可以方便地进行版本控制。

scp 命令

上传整个目录到服务器

scp -r local_path root@serverip:/server_path

下载只是吧参数倒转

scp -r root@serverip:/server_path local_path

从服务器下载文件

scp root@serverip:server_path local_path

同理参数颠倒变成上载

scp local_path root@serverip:server_path

git

在服务器上使用 git clone 拉取代码(前提是你已经将自己的项目提交到远程仓库了)

git clone 

更改文件夹权限

sudo chmod -R 777 storage/ bootstrap/cache

注意:如果有软连接的话请删除再创建,因为服务器上的路径不一定和本地相同

Mysql 数据库迁移

首先我们需要将本地数据库导出

mysqldump -u root -p  database_name > file_name.sql

然后将文件上传到服务器,git 或者 scp 随意。

进入服务器上的mysql

mysql -u root -p

创建数据库并使用

create database dbname;

use dbname;

导入数据(path 表示你导出的xxx.sql 文件绝对路径)

source path

执行完成数据导入最后注意网站配置文件的数据库密码是否对应。完成部署

补充:使用git部署的注意事项

安装 composer

在根目录下执行下面命令

curl -sS https://getcomposer.org/installer | php

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

如果你还没有安装 zip 及 unzip 的话请先安装,有时候执行 composer 的时候会依赖于这两个

sudo apt-get install zip unzip 

安装依赖

composer install

注意,git 默认忽略文件中可能包含 .env 也就说按默认的,你的git 仓库中将没有 .env。要么自行创建,要么将 .gitignore 中的 .env 删除或注释

未经允许不得转载