Ubuntu系统下lnmp环境搭建和Nginx多站点配置
最近需要使用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多站点配置的更多相关文章
- Ubuntu系统下QEMU环境搭建
(这篇文章是在搭建QEMU环境时,在网上找到了一些教程资料,并在实际操作中遇到的一些问题的整理) 下载Linux内核 下载内核有两种方法,一种是用git直接下载内核代码树,方便后面的内核开发.另一种是 ...
- centos7系统下 docker 环境搭建
运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ...
- LNMP环境搭建:Nginx安装、测试与域名配置
Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...
- Linux下-LNMP环境搭建博客网站(全过程)
通常我们所说的LNMP是指一个网站基本的组织框架,即Linux系统支持,Nginx静态服务,Mysql数据库支持以及PHP动态编程语言支持.目前Mysql数据库被Oracle数据库分析公司收购,其创始 ...
- ubuntu环境下lnmp环境搭建(2)之Nginx
1. ubuntu编译安装nginx http://www.cnblogs.com/zhangjun516/archive/2013/02/03/2890990.html 1. 手动编译安装 Ngin ...
- Linux 下LNMP环境搭建_【all】
LNMP = Linux + Nginx + Mysql + PHP 1.0 Linux环境搭建 Linux 系统安装[Redhat] 1.1. FastCGI介绍 1.什么是CGI(common g ...
- 在阿里云Centos下LNMP环境搭建
首先,需要安装C语言的编译环境,因为Nginx是C语言编写的.通常大多数Linux都会默认安装GCC,如果没有的话,可以如下安装. 安装make: yum -y install gcc automak ...
- php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建
1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...
- node在Fedora 22系统下开发环境搭建
事实上,环境搭建在linux系统还是比較简单的,下载已经编译好的包,配置一下环境变量. 或者下载源代码,自己编译. 这里记录一下,主要是node版本号变化节奏很块的情况下.怎样配置一次环境变量就不要再 ...
随机推荐
- php备份mysql的代码
1. mydb.php //DB类2. backup.php //备份脚本3. restore.php //还原脚本 mydb.php <?class db{ var $linkid;var $ ...
- oracleDBA-D4
1.数据字典: 创建和维护的可修改的系统表..它存放有关数据库和数据库对象的信息. 数据字典=基表+字典视图 2.数据字典所存放的信息: 数据库的逻辑和物理结构(如:表空间和数据文件),数据对象定义的 ...
- C#操作XML之读取数据
List<Ztree> ZTreeList = new List<Ztree>(); XDocument MenuConfigDoc = XDocument.Load(&quo ...
- BMW
tc金游世界单登陆允许服务 tc金游世界注册机允许服务 tc金游辅助智能游戏清分允许服务[智能游戏] tc金游辅助挂机王清分允许服务[游辅助挂机清分] tc金游世界王自动打牌允许服务[自动打牌] tc ...
- 鱼搜_鱼搜官网_鱼搜搜索_http://www.7yusou.com
收集了N多视频小站,然后花了3天时间弄了一个鱼搜搜索网站.欢迎大家访问哟. http://www.7yusou.com
- Linux系统目录结构以及简单说明
Linux系统目录结构以及简单说明 linux目录图: / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...
- MS SQLServer 批量附加数据库 分类: SQL Server 数据库 2015-07-13 11:12 30人阅读 评论(0) 收藏
************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注释 ...
- PL/SQL客户端中执行insert语句,插入中文乱码
问题描述:在PL/SQL客户端中执行insert语句,插入中文乱码 解决方案: 1.执行脚本 select userenv('language') from dual; 结果为AMERICAN_ ...
- android中接口和抽象类的区别
最近发现很多基础有点生疏了,特地写一点博客来巩固一下.今天主要来谈谈接口和抽象类的区别,我们在项目的很多地方都会用到接口或者抽象类,但是它们之间的一些区别和相同点不知道大家有没有注意到,还有就是,什么 ...
- Http、Https请求工具类
最近在做微信开发,使用http调用第三方服务API,有些是需要https协议,通过资料和自己编码,写了个支持http和https的工具类,经验证可用,现贴出来保留,也供需要的人使用(有不足的地方,也请 ...