烂泥:学习ubuntu之快速搭建LNMP环境
现在公司使用的都是ubuntu系统,这几天由于个别项目需要,需要搭建一个LNMP环境。为了快速搭建这个环境,我使用是apt-get方式进行安装。具体的操作步骤,看下面的文章。
PS:按照在centos系统下nginx与php-fpm集成是行不通的,因为按照centos下配置的话,nginx访问的主页是空白的。
一、安装nginx
我们首先来安装nginx,使用如下命令:
sudo apt-get -y install nginx
nginx安装完毕后,我们来查看nginx都安装了什么文件。使用如下命令进行查看,如下:
dpkg -S nginx
通过上图,我们可以看出nginx默认的安装位置是/etc/nginx目录,而且nginx的配置文件nginx.conf也是在该目录下。
除此之外,nginx的默认网站目录在/usr/share/nginx/html下,默认nginx网站配置文件为/etc/nginx/sites-available/目录下的default文件。
现在我们来启动nginx,可以使用如下命令:
sudo /etc/init.d/nginx start
sudo service nginx start
以上两条命令都可以启动nginx,我个人比较倾向于使用第一条命令,因为这个是直接通过nginx的启动脚本来启动的。
netstat –tunlp
sudo lsof -i :80
通过网页进行访问看看实际效果,如下:
或者通过curl命令进行访问,如下:
curl http://192.168.1.9
二、安装php与php-fpm
nginx安装完毕后,我们现在来安装php与php-fpm,使用如下命令,如下:
sudo apt-get -y install php5 php5-fpm php5-cli
查看php版本,如下:
php5 -v
三、nginx与php-fpm集成
nginx与php安装完毕后,我们现在开始把nginx与php集成。其实nginx与php集成是通过fastcgi来实现,而fastcgi我们一般使用的是php-fpm。
php-fpm与nginx通信方式有两种,一种是TCP方式,一种是unix socket方式。
TCP方式就是使用TCP端口连接,一般是127.0.0.1:9000。
Socket是使用unix domain socket连接套接字/dev/shm/php-cgi.sock(很多教程使用路径/tmp,而路径/dev/shm是个tmpfs,速度比磁盘快得多),在服务器压力不大的情况下,tcp和socket差别不大,但是在压力比较满的时候,使用套接字方式,效果确实比较好。
3.1 TCP方式
先来修改nginx的默认网站文件default,如下:
sudo vi /etc/nginx/sites-available/default
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params; }
现在来修改nginx的fastcgi_params文件,添加如下命令。
注意:这个命令一定要添加,否则nginx与php集成后,网页会显示空白。
sudo vi /etc/nginx/fastcgi_params
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
修改nginx的默认主页,如下:
sudo vi /usr/share/nginx/html/index.php
<?php phpinfo(); ?>
现在我们再来修改php的配置文件php.ini,如下:
sudo vi /etc/php5/fpm/php.ini +758
除此之外,我们还需要修改php-fpm的配置文件www.conf,如下:
sudo vi /etc/php5/fpm/pool.d/www.conf
listen = 127.0.0.1:9000
以上修改完毕后,我们现在来重启nginx与php-fpm,如下:
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart
现在我们来访问nginx,如下:
http://192.168.1.9/index.php
现在来查看系统的端口,如下:
netstat -tunlp
以上就是php-fpm与nginx的TCP通信方式。
3.2 socket方式
修改nginx的默认网站文件default,如下:
sudo vi /etc/nginx/sites-available/default
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params; }
现在再来修改php-fpm的配置文件www.conf,如下:
sudo vi /etc/php5/fpm/pool.d/www.conf
listen = /var/run/php5-fpm.sock
其他的修改和TCP方式连接的是一样的,现在我们再来重启nginx与php-fpm。如下:
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart
现在我们再来看看,php-fpm是否占用系统端口。如下:
可以看到此时php-fpm并没有占用系统端口。
四、安装mysql
现在来开始安装mysql,如下:
sudo apt-get –y install mysql-server mysql-client php5-mysql
mysql安装完毕后,我们现在来使用php连接mysql。创建ilanni.php文件,内容如下:
sudo vi /usr/share/nginx/html/ilanni.php
<?php
$host='127.0.0.1';
$root='root';
$pwd='123456';
$con= mysql_connect($host,$root,$pwd);
if ( $con == false ) {
echo "connect false";
} else{
echo "connect true";
}
?>
现在来通过php来访问mysql,如下:
通过上图,我们可以看到php已经正常连接mysql数据库,这也说明mysql也已经安装成功。
烂泥:学习ubuntu之快速搭建LNMP环境的更多相关文章
- 烂泥:学习centos之快速搭建LNMP环境
本文由秀依林枫提供友情赞助,首发于烂泥行天下 以前在centos下安装软件都是喜欢源码安装,不过昨天因为一个事情需要一个centos 下的LNMP环境.反倒不会搞了,今天特意记录下,以备后续使用. 一 ...
- 阿里云体验实验室 教你如何《快速搭建LNMP环境》
## 体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和 ...
- Docker快速搭建LNMP环境
一.使用Dockerfile制作镜像 前面的博客中已经介绍了如何基于容器制作镜像,此方法的原理是使用一个正在运行的容器,根据生产所需进行配置更改等操作后,使其满足生产环境,再将这个容器打包制作为镜像, ...
- 小白简单快速搭建lnmp环境(centos7)
本来想着自己搭建lnmp,由于php包下载不下来因此这次本人使用的lnmp一键包搭建的环境(很遗憾还没有php7.3.5)很详细并且方便快捷网址https://lnmp.org/install.htm ...
- centos7.2环境yum方式快速搭建lnmp环境nginx+mariadb+php-fpm
centos7.2环境yum方式安装nginx+mariadb+php-fpm 1.安装lnmp环境 安装epel源 yum install -y epel-release 安装 MySQL + PH ...
- Ubuntu 18.04.1 下快速搭建 LNMP环境
1.Nginx的安装 Nginx安装是属于最简单的,只需要在命令行执行 sudo apt-get install nginx 就能自动安装 Nginx,其中过程中需要 选择 Y/n 的选择Y就行了,当 ...
- ubuntu系统快速搭建开发环境
1.免密登陆 1.1 原理 ssh协议中用到了对称加密和非对称加密,如果不了解可以百度一下,原理引用一下这篇博客 在ssh中,非对称加密被用来在会话初始化阶段为通信双方进行会话密钥的协商.由于非对称加 ...
- Python学习:1.快速搭建python环境
一.安装python 现在python有两个比较大的版本一个是python3.x一个是python2.x,python3.x相当于与python2.x是一个比较大的升级,但是python3.x没有向下 ...
- vagrant快速搭建LNMP环境并且打包带走留着以后用
不多说废话,全文文字,照着输就没问题 vagrant下载 可以到VirtualBox的官网进行下载: https://www.virtualbox.org/wiki/Downloads vagran ...
随机推荐
- java servlet调用带有多个返回结果集的存储过程
一.mysql存储过程 这里我先说下我这个功能实现的逻辑及途中遇到的一些问题.这个存储过程一共带两个输入参数,一共关联到两张表的查询,每个参数都对应查询表中的一个判断,所以一共返回了两个结果集(当然要 ...
- 【Linux_Fedora_应用系列】_3_如何利用Smplayer播放WMV格式的文件
在上一篇我们成功安装了视频播放器,并且成功安装里解码器[Linux_Fedora_应用系列]_2_如何安装视频播放器和视频文件解码 安装完的Smplayer的GUI的界面程序,可以播放FLV.AVI. ...
- 第 30 章 使用 Emmet 插件
学习要点: 1.安装方式 2.自定义!生成 3.快速生成 主讲教师:李炎恢 本章主要探讨了解一下 Sublime Text3 的一个 HTML5 代码提示插件:Emmet,这个插件比自带原生的要强 ...
- loadrunner录制webservice接口需要用户名密码时的解决方法
当loadrunner进行webservice测试,进入访问地址,限制要输入用户名密码才能登陆时,添加以下代码: web_set_user("acerpc/admin"," ...
- JBox - 模态窗口,工具提示和消息 jQuery 插件
jBox 是一个强大而灵活的 jQuery 插件,可以帮助实现模态窗口,工具提示,通知和更多的功能.你可以使用 jQuery 选择器轻松地添加工具提示效果到元素上,您可以以同样的方式设置模态窗口.该库 ...
- 移动 Web 开发必备!时尚的 Off Canvas 导航
这里向大家分享一组创新的 Off Canvas 导航效果.Off Canvas 导航在一些移动应用程序中被广泛使用.当你点击汉堡按钮(一般是三条横线组成)时,在左侧或者右侧拉出一个菜单,这样可以充分利 ...
- 【前端盲点】DOM事件流论证CSS盒模型是否具有厚度
前言 很久没有扯淡了,我们今天来扯淡吧. 我今天思考了一个问题,我们页面的dom树到底是如何渲染的,而CSS盒模型与javascript是否有联系,于是便想到一个问题: CSS的盒模型具有厚度么??? ...
- js引入php 用来加载静态页面 输出到页面中
HTML页面中加入代码 <script type="text/javascript" src="http://www.域名.com/js.php?id=tjyd&q ...
- DataGridView 设置某个列为只能为数字
public DataGridViewTextBoxEditingControl CellEdit = null; int idx = 1; private void dataGridView1_Ed ...
- arcgis批量处理mxd定义服务中的路径
>>> from arcpy import env... env.workspace=r"c:\165mxd"... out = r"c:\166mx ...