LEMP环境指的是Linux+Nginx+MariaDB+PHP

这里我选择的版本是最新的MariaDB和PHP7

安装Nginx

相对于Apache,Nginx是一个轻量级的高性能web服务器并在近年来越来越流行。Nginx也可以同时作为一个反向代理。在Debian8上安装Nginx, 输入下面的命令。

sudo apt-get install nginx -y

安装完成后,Nginx会自动运行。

$ sudo service nginx status
[ ok ] nginx is running.

查看Nginx版本

$ nginx -v
nginx version: nginx/1.6.2

在浏览器地址栏中输入Debian服务器的IP, 回车。如果你看到下面的文字,说明Nginx正确地安装好了。

你可以使用下面的命令查看服务器的IP。

curl http://hostname.com

安装MariaDB

MariaDB是MySQL的一个替代品。使用下面的命令安装:

sudo apt-get install -y mariadb-server mariadb-client

在安装过程中会要求你为MariaDB root用户设置一个密码。输入密码后按回车。记住,MariaDB root用户是数据库的管理员,与Linux的root用户是不同的。

再次输入密码并回车。

查看MariaDB版本

$ mysql --version
mysql Ver 15.1 Distrib 10.0.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

运行安全脚本

sudo mysql_secure_installation

输入MariaDB root用户密码。当它问你是否要更改root密码时,选择n. 然后你可以一路按回车键来回答其他所有的问题。

MariaDB数据库安装完成。

安装PHP7

在/etc/apt/sources.list文件中添加下面两行文字以安装dotdeb.org软件源。

deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

下载并安装GnuPG key

wget https://www.dotdeb.org/dotdeb.gpg

sudo apt-key add dotdeb.gpg

更新本地软件包索引并安装PHP7

sudo apt-get update

sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-gd php7.0-json php7.0-cli php7.0-curl

配置PHP7

编辑php.ini文件

sudo vi /etc/php/7.0/fpm/php.ini

找到如下一行

;cgi.fix_pathinfo=1

去掉前面的分号,并将1改为0

cgi.fix_pathinfo=0

保存文件后重启php7.0-fpm

sudo service php7.0-fpm restart

配置Nginx Virtual Host

/etc/nginx/sites-available目录下创建一个新的virtual host配置文件

sudo vi /etc/nginx/sites-available/yourdomain.conf

将yourdomain替换成你实际的域名。然后在文件中添加下面的配置。

server {
listen 80;
server_name yourdoman.com www.yourdomain.com;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html; location / {
try_files $uri $uri/ =404;
} error_page 404 /404.html;
error_page 500 502 503 504 /50x.html; location = /50x.html {
root /var/www/html;
} location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

注意,上面第4行 root /var/www/html; 中的root是指网站的根目录,而不是指Linux系统的root用户。

保存文件后,创建一个软链接。

sudo ln -s /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-enabled/yourdomain.conf

测试Nginx配置

sudo nginx -t

测试成功:

 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重新加载Nginx配置

sudo service nginx reload

/var/www/html目录的所有者更改为Nginx用户www-data

sudo chown www-data:www-data /var/www/* -R

测试PHP

在/var/www/html/目录下新建一个文件info.php

sudo vi /var/www/html/info.php

将下面的内容粘贴到info.php文件中。

<?php
phpinfo();
?>

保存文件。然后在浏览器的地址栏输入下面的地址。

yourdomain.com/info.php

用你的实际域名替换yourdomain.com. 如果你看见下面的文字,说明PHP运行正常。

请确保你已经为你的域名设置好了一个A记录。

info.php文件只是用于测试的。为了安全起见,你可以删除它。好了!现在你应该成功地在Debian 8 Jessie上搭建好了LNMP.

502 Bad Gateway

如果你在测试PHP时网页显示502 Bad Gateway错误。那么很有可能是nginx服务器fastcgi_pass的值与PHP www.conf文件中 listen的值不一致造成的。

打开你的virtual host文件。

sudo vi /etc/nginx/sites-available/yourdomain.conf

查看fastcgi_pass的值。

再打开php的www.conf文件。

sudo vi /etc/php/7.0/fpm/pool.d/www.conf

找到文件中的listen这一行,我们需要让nginx fastcgi_pass的值与php listen的值一致。修改完后重启nginx进程和php-fpm进程,这时502 bad gateway错误应该就解决了,可以正常打开网页了。

另外/run/php/php7.0-dpm.sock文件的所有者要与nginx进程用户www-data一致.

ls /run/php/php7.0-fpm.sock -lh
srw-rw---- 1 www-data www-data 0 Mar 19 03:31 /run/php/php7.0-fpm.sock

(参考资料:https://www.linuxdashen.com/debian8-jessie安装lnmp架构(nginx-mariadb-php7)

Debian8搭建LEMP环境的更多相关文章

  1. mac下通过docker搭建LEMP环境

    在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...

  2. 在阿里云ECS上搭建LEMP环境

    在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...

  3. Debian8搭建php环境

    安装apache 新装的系统发现 apt-get install apach<tab> 没有自动补全 请查看 这里 apt-get install apache2 安装mysql apt- ...

  4. 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导

    导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络 ...

  5. Flume1 初识Flume和虚拟机搭建Flume环境

    前言:       工作中需要同步日志到hdfs,以前是找运维用rsync做同步,现在一般是用flume同步数据到hdfs.以前为了工作简单看个flume的一些东西,今天下午有时间自己利用虚拟机搭建了 ...

  6. 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展

    上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...

  7. 搭建LNAMP环境(二)- 源码安装Nginx1.10

    上一篇:搭建LNAMP环境(一)- 源码安装MySQL5.6 1.yum安装编译nginx需要的包 yum -y install pcre pcre-devel zlib zlib-devel ope ...

  8. 搭建LNAMP环境(一)- 源码安装MySQL5.6

    1.yum安装编译mysql需要的包 yum -y install gcc-c++ make cmake bison-devel ncurses-devel perl 2.为mysql创建一个新的用户 ...

  9. Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1

    交叉编译工具链是为了编译.链接.处理和调试跨平台体系结构的程序代码,在该环境下编译出嵌入式Linux系统所需要的操作系统.应用程序等,然后再上传到目标板上. 首 先要明确gcc 和arm-linux- ...

随机推荐

  1. wcf感悟与问题

    默认情况下,BasicHttpBinding发送的是明文数据,而WsHttpBinding发送的是加密和更加安全的数据.契约相当于公司与客户之间签订的合同DataContract需要引用命名空间sys ...

  2. python爬微信公众号前10篇历史文章(3)-lxml&xpath初探

    理解lxml以及xpath 什么是lxml? python中用来处理XML和HTML的library.与其他相比,它能提供很好的性能, 并且它支持XPath. 具体可以查看官方文档->http: ...

  3. business expressions(二)

    1,to give someone a heads up = to inform someone about something important ("heads up") be ...

  4. 数据库操作sql

    一.把从另外一张表里查到的值插入到前表: 1. 表结构完全一样 insert into 表1 select * from 表2 2. 表结构不一样(这种情况下得指定列名) insert into 表1 ...

  5. Algorithm --> 树中求顶点A和B共同祖先

    树中求顶点A和B共同祖先 题目: 给定一颗树,以及两个顶点A和B,求最近的共同祖先,和包含的子顶点个数? 比如:给定如下图的树,以及顶点13和8,则共同祖先为3,以3为root的子顶点共有8个

  6. dubbo服务简单搭建

    一.初识dubbo: 架构图: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. Monitor: 统计服务的 ...

  7. C语言中的atan和atan2

    本文内容为转载,是在阅读 RTKLIB源码时意识到的这个问题,原文地址为:https://www.cnblogs.com/dutlei/archive/2013/01/14/2860332.html ...

  8. Leetcode 19——Remove Nth Node From End of List

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...

  9. Beta冲刺第七天

    一.昨天的困难 没有困难. 二.今天进度 1.林洋洋:MD图片上传,修复权限问题,修复本地存储判空问题,修复协作申请没有过滤问题. 2.黄腾达:添加文件链接和邀请链接复制功能,协作树界面优化. 3.张 ...

  10. 20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计

    20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...