最近需要使用Ubuntu作为服务器搭建Lnmp环境,顺便将操作过程写下来,与大家分享。如有不足之处,欢迎大家提出不同意见。(本文默认读者已经熟悉相关linux命令的使用,比如创建文件和文件夹,编辑文件的命令等。)

操作系统:Ubuntu 15.10

本系统是新装的,所以没有Nginx、mysql和php环境。如果之前有装过这些环境的还得先把之前的软件先卸载。

一、安装MySQL

直接输入命令:sudoapt-get install mysql-server mysql-client

中间需要你输入root账户的密码,按要求操作就可以了。

二、安装Nginx

直接输入命令:sudo apt-get install nginx

在本地浏览器输入127.0.0.1,出现以下页面说明安装成。

三、安装PHP5

直接输入命令:sudo apt-get install php5-fpm

安装完还要安装需要用到的拓展,比如:

php5-mysql、php5-gd、php5-json、php5-curl……

具体可以使用命令sudo apt-cache search php5查看拓展信息。

然后使用命令sudo apt-get install php5-mysql php5-gd php5-json php5-curl 进行拓展安装。

安装完写个test.php文件测试下,执行结果如图:

<?php

$a="php test\n";

echo $a;

?>

php安装成功!

安装过程到这里算是完成,接下来就是配置让Nginx做php5-fpm的代理了。(不懂php5-fpm是什么鬼的同学就自己去搜索吧,后面还有fastcgi等概念也都应该了解下。大神请无视~)

四、配置nginx做代理

进入/etc/nginx目录,打开nginx.conf配置文件可以在http模块底部看到一行:

include /etc/nginx/sites-enabled/*;

因此我们可以在/etc/nginx/sites-enables目录下新建个配置文件test.conf,内容如下:

其中设置fastcgi_pass 为127.0.0.1:9000,那么还需要到/etc/php5/fpm/pool.d/www.conf文件中找到:

listen = /var/run/php5-fpm.sock

将其注释,在下方新增一行:

listen = 127.0.0.1:9000

保存退出后重启php5-fpm:service php5-fpm restart

给test.conf中配置的是8080 端口,所以还要配置防火墙开启8080端口(后面多站点的配置端口同理):sudo ufw allow 8080

在配置的站点的根目录也就是说/var/www/test下新建文件index.php:

<?php

Phpinfo();

?>

配置完在本地浏览器输入:127.0.0.1:8080 竟然出现空白页面,找到/etc/nginx/fastcgi_params,也就是前面test.conf文件中include fastcgi_params的文件,在其头部新增一行:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#设置脚本文件请求的路径。

保存后重启nginx或者使用命令:nginx –s reload 重新加载配置文件。到浏览器刷新,成功

五、不同端口多站点配置

像第一个站点一样先在/var/www目录下新建两个文件test2和test3分别作为另外两个站点的目录。

新建测试文件/var/www/test2/index.php:

<?php

$test=”test2 site \n”;

echo $test;

?>

再新建测试文件/var/www/test3/index.php:

<?php

$test=”test3 site \n”;

echo $test;

?>

然后到/etc/nginx/sites-enabled目录下新建两个站点配置文件,像刚刚新建的test.conf一样。配置文件:/etc/nginx/sites-enabled/test2.conf

配置文件:/etc/nginx/sites-enabled/test3.conf

配置完,sudo nginx –s reload重新加载配置文件。防火墙开启相应8082和8083端口。

测试站点test2:本地浏览器输入:127.0.0.1:8082

测试站点test3:本地浏览器输入:127.0.0.1:8083

六、80端口做多站点配置

以上是不同端口多个站点配置,下面我们看看在80端口如何做多站点配置

上面的操作已经实现了不同端口多个站点的配置,现在修改/etc/nginx/sites-enable/test2.conf和/etc/nginx/sites-enable/test3.conf两个配置文件,将监听的端口全部改为80端口。站点目录不变:

改完重新加载nginx配置文件

使用刚刚在配置文件里设置的server_name来访问,也就是test2.com和test3.com,还得修改host文件。打开/etc/host文件,新增两行:

127.0.0.1          test2.com

127.0.0.1          test3.com

打开本地浏览器分别输入test2.com和test3.com查看结果:

配置成功!

总结:

1、  每次修改完nginx配置文件之后都需要让重新加载配置文件,也可以重启。php5-fpm也一样。

2、本文虽然讲解如何搭建环境,和配置环境,但对于相应环境的运行原理并没有做过多讲讨论。所以,要想真正熟悉相应环境的运行原理,还得下点功夫去了解相应的知识点。例如fastcgi_params文件的作用,nginx配置文件中每个模块的功能,和php5-fpm的机制等。

3、安装配置过程中难免会出现一些意想不到的问题,这种情况下要学会分析日志定位问题。日志一般都放在/var/log目录下,比如刚刚配置第一个站点是访问遇到空白页面,但是看/var/log/nginx/access.log日志却显示状态码为200,这说明nginx是收到请求的,只是没有把请求的内容发给php5-fpm,所以定位到问题是出现在nginx和php5-fpm的通信上。

Ubuntu系统下lnmp环境搭建和Nginx多站点配置的更多相关文章

  1. Ubuntu系统下QEMU环境搭建

    (这篇文章是在搭建QEMU环境时,在网上找到了一些教程资料,并在实际操作中遇到的一些问题的整理) 下载Linux内核 下载内核有两种方法,一种是用git直接下载内核代码树,方便后面的内核开发.另一种是 ...

  2. centos7系统下 docker 环境搭建

    运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ...

  3. LNMP环境搭建:Nginx安装、测试与域名配置

    Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...

  4. Linux下-LNMP环境搭建博客网站(全过程)

    通常我们所说的LNMP是指一个网站基本的组织框架,即Linux系统支持,Nginx静态服务,Mysql数据库支持以及PHP动态编程语言支持.目前Mysql数据库被Oracle数据库分析公司收购,其创始 ...

  5. ubuntu环境下lnmp环境搭建(2)之Nginx

    1. ubuntu编译安装nginx http://www.cnblogs.com/zhangjun516/archive/2013/02/03/2890990.html 1. 手动编译安装 Ngin ...

  6. Linux 下LNMP环境搭建_【all】

    LNMP = Linux + Nginx + Mysql + PHP 1.0 Linux环境搭建 Linux 系统安装[Redhat] 1.1. FastCGI介绍 1.什么是CGI(common g ...

  7. 在阿里云Centos下LNMP环境搭建

    首先,需要安装C语言的编译环境,因为Nginx是C语言编写的.通常大多数Linux都会默认安装GCC,如果没有的话,可以如下安装. 安装make: yum -y install gcc automak ...

  8. php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  9. node在Fedora 22系统下开发环境搭建

    事实上,环境搭建在linux系统还是比較简单的,下载已经编译好的包,配置一下环境变量. 或者下载源代码,自己编译. 这里记录一下,主要是node版本号变化节奏很块的情况下.怎样配置一次环境变量就不要再 ...

随机推荐

  1. C# 操作excel单元格居中

    C# 操作excel //导出Excel        private void ExportExcel(string fileName, System.Data.DataTable myDGV, s ...

  2. 简单的SQL语句

    说明:SQL语句大小写都可以,执行一句时,后面可不加分号,如果同时执行两句,就必须加分号,不然会报错. --+空格  是SQL的注释 表格名为users,里面有name和age属性 一.增 inser ...

  3. 漫谈iOS程序的证书和签名机制

    接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕和崇拜.于是,花了一点时间去研究了一下 ...

  4. 3.1 AngularJS必备知识

    AngularJS是一个WEB应用框架. 本节我们会学习控制器(控制数据),会学习作用域(连接控制器和用户界面),用户界面又叫做视图,通过模板和作用域来创建交互视觉效果.另外,我们还会学习其他的特性比 ...

  5. sql中NVARCHAR(MAX) 性能和占空间分析 varchar(n),nvarchar(n) 长度性能及所占空间分析

    varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvar ...

  6. 《Python数据分析》环境搭建之安装Jupyter工具(一)

    (免责声明:本文档是针对Python有经验的用户,如果您对Python了解很少,或者从未使用,建议官方教程用Anaconda安装) 前期准备:Python环境 虽然Jupyter可以运行多种编程语言, ...

  7. 7 Container With Most Water_Leetcode

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). ...

  8. Beginning Scala study note(4) Functional Programming in Scala

    1. Functional programming treats computation as the evaluation of mathematical and avoids state and ...

  9. 进击的Python【第十七章】:jQuery的基本应用

    进击的Python[第十七章]:jQuery的基本应用

  10. Poj The xor-longest Path 经典题 Trie求n个数中任意两个异或最大值

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5646   Accepted: 1226 Description In an ...