本文由秀依林枫提供友情赞助,首发于烂泥行天下

现在公司使用的都是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环境的更多相关文章

  1. 烂泥:学习centos之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 以前在centos下安装软件都是喜欢源码安装,不过昨天因为一个事情需要一个centos 下的LNMP环境.反倒不会搞了,今天特意记录下,以备后续使用. 一 ...

  2. 阿里云体验实验室 教你如何《快速搭建LNMP环境》

    ## 体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和 ...

  3. Docker快速搭建LNMP环境

    一.使用Dockerfile制作镜像 前面的博客中已经介绍了如何基于容器制作镜像,此方法的原理是使用一个正在运行的容器,根据生产所需进行配置更改等操作后,使其满足生产环境,再将这个容器打包制作为镜像, ...

  4. 小白简单快速搭建lnmp环境(centos7)

    本来想着自己搭建lnmp,由于php包下载不下来因此这次本人使用的lnmp一键包搭建的环境(很遗憾还没有php7.3.5)很详细并且方便快捷网址https://lnmp.org/install.htm ...

  5. 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 ...

  6. Ubuntu 18.04.1 下快速搭建 LNMP环境

    1.Nginx的安装 Nginx安装是属于最简单的,只需要在命令行执行 sudo apt-get install nginx 就能自动安装 Nginx,其中过程中需要 选择 Y/n 的选择Y就行了,当 ...

  7. ubuntu系统快速搭建开发环境

    1.免密登陆 1.1 原理 ssh协议中用到了对称加密和非对称加密,如果不了解可以百度一下,原理引用一下这篇博客 在ssh中,非对称加密被用来在会话初始化阶段为通信双方进行会话密钥的协商.由于非对称加 ...

  8. Python学习:1.快速搭建python环境

    一.安装python 现在python有两个比较大的版本一个是python3.x一个是python2.x,python3.x相当于与python2.x是一个比较大的升级,但是python3.x没有向下 ...

  9. vagrant快速搭建LNMP环境并且打包带走留着以后用

    不多说废话,全文文字,照着输就没问题 vagrant下载 可以到VirtualBox的官网进行下载:  https://www.virtualbox.org/wiki/Downloads vagran ...

随机推荐

  1. SSO单点登录实现原理与总结

    一.什么是单点登录SSO(Single Sign-On) SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用 ...

  2. Scalaz(1)- 基础篇:隐式转换解析策略-Implicit resolution

    在正式进入scalaz讨论前我们需要理顺一些基础的scalaz结构组成概念和技巧.scalaz是由即兴多态(ad-hoc polymorphism)类型(typeclass)组成.scalaz typ ...

  3. C++11 之 nullptr

    C++11 中,nullptr 是空指针,可用来给 (指向任意对象类型的) 指针赋值 广义整型 (integral types) = char, short, int, long, long long ...

  4. 解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)

    http://www.jb51.net/article/27616.htm   有次同事提出开发使用的mysql数据库连接很慢,因为我们的mysql开发数据库是单独一台机器部署的,所以认为可能是网络连 ...

  5. Jquery UI 和Easy UI常用插件

    一.Jquery的插件简介 (一)什么是插件 插件(Plug-in)是一种遵循一定的应用程序接口规范编写出来的程序,是原有系统平台或应用软件平台功能的一种扩展和补充. 注意!!其只能在程序规定的系统平 ...

  6. reset

    html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, ...

  7. 为你的网页图标(Favicon)添加炫丽的动画和图片

    Favico.js 在让你的网页图标显示徽章,图像或视频.你设置可以轻松地在网页图标中使用动画,可以自定义类型的动画,背景颜色和文字颜色.它支持的动画,像幻灯片,渐变,弹出等等. 您可能感兴趣的相关文 ...

  8. js、jquery获取当前url中各个参数

    首先,先把获取各参数的方式再写一遍,相信大家都耳熟能详,就写几个常用的吧. 以此网址https://i.cnblogs.com/EditPosts.aspx?opt=1为例: 1. var url=w ...

  9. C#关于word文档的书签替换操作

    public void Get_Word(string gjbh) { try { DataSet ds = OperaterBase.GetDsBySql("select diffTabl ...

  10. iOS带动画的环形进度条(进度条和数字同步)

    本篇写的是实现环形进度条,并带动画效果,要实现这些,仅能通过自己画一个 方法直接看代码 为了方便多次调用,用继承UIView的方式 .m文件 #import <UIKit/UIKit.h> ...