在 Ubuntu 系统中,可以使用 apt-get 命令来搭建 LNMP环境。这种方式较编译方式安装更加简便,因此选择使用该方式来搭建环境以供学习。

安装Nginx

使用 sudo apt-get install nginx 就能自动安装 Nginx,为了确保获得最新的 Nginx,可以先使用 sudo apt-get update 命令更新源列表。http://blog.csdn.net/STFPHP/article/details/53492723

安装好之后,使用 dpkg -S nginx 命令来搜索 nginx相关文件,可以从命令显示结果看出 Nginx默认的安装位置是/etc/nginx目录,其配置文件nginx.conf也是在该目录下,并且在 etc/init.d 下有 nginx的启动程序,该目录下的程序都会在系统开启时启动。

此外,Nginx的默认网站目录是 /usr/share/nginx/html/,默认Nginx网站配置文件为 /etc/nginx/sites-available/default 。

启动 Nginx服务,使用下面两个命令任意一个即可:

sudo /etc/init.d/nginx start
sudo service nginx start

使用 netstat -anp 则可以看到80端口已经处于 LISTEN状态了。
直接查看80端口可以使用命令:sudo lsof -i :80

在浏览器输入 127.0.0.1后,就可以看见 Nginx的欢迎页面了。

安装 PHP 7.1 与 PHP7.1-FPM

直接运行 sudo apt-get命令安装 PHP 会报错误:

E: Unable to locate package php7.1
E: Couldn't find any package by regex 'php7.1'

原因是 PHP7 等并不在 Ubuntu的软件库中,因此要使用 PPA ppa:ondrej/php 库

使用下列命令:

sudo apt-add-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.1 php7.1-fpm

安装 PHP7.1包的同时也安装了 PHP7.1-CLI

可以使用 php -v 命令来查看 PHP 版本信息。

Nginx 与 PHP-FPM集成

PHP-FPM 与 Nginx 通信方式有两种,一种是TCP方式,一种是unix socket 方式。

Unix domain socket 可以使同一台操作系统上的两个或多个进程进行数据通信。Unix domain sockets 的接口和 Internet socket 很像,但它不使用网络底层协议来通信。

服务器压力不大的情况下,tcp 和 socket 差别不大,但在压力比较满的时候,用套接字方式,效果确实比较好。

socket方式:

在 /etc/nginx/sites-available/default 配置文件中(网站根目录也在是这里更改), Nginx已经为与 PHP-FPM的整合准备好了,只需要将下面这部分改好就可以了。sock文件路径为 /run/php/php7.1-fpm.sock 。

location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}

然后再修改 PHP-FPM的配置文件 /etc/php/7.1/fpm/pool.d ,如下:

;  与 Nginx监听同一个 sock
listen = /run/php/php7.1-fpm.sock

配置好后重启服务:

sudo /etc/init.d/nginx restart sudo /etc/init.d/php7.1-fpm restart

安装 MySQL

使用命令 sudo apt-get  install mysql-server mysql-client php7.1-mysql

第三个是 PHP的 MySQL扩展。

安装过程中会让你为 MySQL root用户设置密码。

同样,使用命令 netstat -anp ,会发现 3306端口正在被监听了。

现在可以编写 PHP脚本来连接数据库了。

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

root /vagrant/myblog/public;
    index index.html index.htm index.php;

# Make site accessible from http://localhost/
    server_name www.myblog.com;

try_files $uri $uri/ @rewrite;    
        
    location @rewrite {    
        rewrite ^/(.*)$ /index.php?_url=/$1;    
    }    
        location ~ \.php$ {
                #include snippets/fastcgi-php.conf;
                fastcgi_index   index.php;
                #fastcgi_pass    127.0.0.1:9000;
                include         fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
                fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        }
}

配置LNPM的更多相关文章

  1. 配置android sdk 环境

    1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/

  2. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  3. react-router 组件式配置与对象式配置小区别

    1. react-router 对象式配置 和 组件式配置    组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...

  4. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

  5. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

  6. Virtual Box配置CentOS7网络(图文教程)

    之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...

  7. [linux]阿里云主机的免登陆安全SSH配置与思考

    公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...

  8. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  9. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

随机推荐

  1. Knockout学习,添加模板,事件,Mouseover,mouseout

    <div class="rtitle">我的收藏</div> <div class="list_ul" data-bind=&qu ...

  2. zabbix agent 3.4 安装指南

    从官方网站www.zabbix.com 下载zabbix agent安装包.目前最新版本是4.0 LTS release. 在需要监控的服务器上安装zabbix agent. 先解压安装包. 配置 c ...

  3. 使用 HPC Pack 为 Azure 中的 Windows HPC 工作负荷创建和管理群集的选项

    利用 Microsoft HPC Pack 和 Azure 的计算与基础结构服务,创建和管理基于云的高性能计算 (HPC) 群集. HPC Pack 是在 Azure 和 Windows Server ...

  4. Vue以CDN方式调用Swiper轮播异常

    问题概览: 有一个小型单页应用项目,嫌用组件式调用vue-swiper麻烦,因此以CDN的方式调用swiper,结果轮播的图不动了! 爬了半天百度和谷歌都无解决方案,最后曲线救国的方式解决了问题. 解 ...

  5. JDOM 操作XML

    http://www.cnblogs.com/hoojo/archive/2011/08/11/2134638.html 可扩展标记语言——eXtensible Markup Language 用户可 ...

  6. CameraAPI中的 自定义照相功能

    前几天的项目需要使用CameraAPI自己定义照相机,之前用过的二维码也要自己写底层代码,于是总结一下使用CameraAPI的几点事项.现在由于JDK7.0及其以上版本的官方文档已经不再推荐使用cam ...

  7. 【转】Mysql学习---SQL的优化

    [原文]https://www.toutiao.com/i6594314336913588743/ mysql如何处理亿级数据,第一个阶段--优化SQL语句 1.应尽量避免在 where 子句中使用! ...

  8. 【转】Redis学习---阿里云Redis多线程性能增强版详解

    [原文]https://www.toutiao.com/i6594620107123589635/ 摘要 Redis做为高性能的K-V数据库,由于其高性能,丰富的数据结构支持,易用等特性,而得到广泛的 ...

  9. SDN 第四次作业

    阅读 了解SDN控制器的发展 http://www.sdnlab.com/13306.html http://www.docin.com/p-1536626509.html 了解ryu控制器 http ...

  10. BZOJ3211:花神游历各国(线段树)

    Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 ...