一、配置简介
本文采用 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
删除或注释