LNMP环境搭建最佳实践

Jan 30 2019 Linux

laravel+LNMP配置最佳实践

更新软件源

sudo apt-get update

解决语言问题冲突

1
2
3
4
sudo apt-get install -y language-pack-en-base
locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

安装所有依赖

sudo apt install git vim php7.1-mysql php7.1-fpm php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring php7.1-curl php7.1-zip php mysql-server nginx -y

安装PHP7.1需要PPA第三方源支持,具体参考这篇文章

安装Git和Vim

sudo apt-get install git vim -y

安装 php7

sudo apt-get install php -y

查看php版本:php -v

安装 php7-lib

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

注意: php-zip 包,composer特别需要!

安装 mysql

sudo apt-get install mysql-server -y
查看mysql版本:mysql --verison

新建数据库

create database dbname default charset utf8mb4 collate utf8mb4_unicode_ci

更新数据库

1
2
sudo mysql_upgrade -u root -p
service mysql restart

安装 Nginx

sudo apt-get install nginx -y
查看nginx版本:nginx -v

配置 PHP

php-fpm配置

打开并编辑:/etc/php/7.1/fpm/pool.d/www.conf

1
2
3
listen.own = <nginx.user>
listen.group = <nginx.group>
listen = /var/run/php/php7.1-fpm.sock`

URL安全配置

打开并编辑: /etc/php/7.1/fpm/php.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/cgi.fix_pathinfo = 0
```

## 配置 Nginx

打开并编辑:` /etc/nginx/sites-available/default`

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

root YOUR-PROJECT-DIR/public;
index index.html index.php index.htm;

server_name YOUR DOMAIN OR IP;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
try_files $uri /index.php =404;
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;
}
}
```

## 配置gzip

打开并编辑:`/etc/nginx/nginx.conf`

gzip on;
gzip_disable “msie6”;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;
gzip_min_length 256;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript
text/xml application/xml application/xml+rss text/javascript;

1
2

同样的,在此文件最上面编辑 user

user user group

1
2
3
4
5
6
7

建议就使用当前用户
## 重启服务

```shell
sudo service nginx restart
sudo service php7.1-fpm restart

Composer

安装

1
2
sudo wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer
sudo chmod a+x /usr/local/bin/composer

注意:因为Composer不推荐使用root用户进行安装依赖(安全问题),所以最好把网站目录放在当前用户目录之下。

国内Composer镜像

1
composer config -g repo.packagist composer https://packagist.laravel-china.org

为文件目录赋权

为访问网站用户赋权,如果nginx设置的就是当前用户就不需要这一步。

sudo chown -R <nginx-user:nginx-group> YOUR-PROJECT-DIR

为storage赋予写权限,但这一步,我建议在开发环境就设置并提交到git中

sudo chmod -R 775 YOUR-PROJECT/storage

所以这两步骤都可以省略!最好都省略掉,如果不省略掉就会很麻烦的 git pull 之后还得更新文件权限和所属关系。

更多内容可以参见我的 nginx 分类中文章。