«

Ubuntu 16.04 下快速搭建 LNMP环境

时间:2024-2-17 15:29     作者:韩俊     分类: Linux


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

在安装个软件之前,为了确保获得的软件是最新的,可以先使用 sudo apt-get update 命令更新源列表。

安装 Nginx

执行命令

sudo apt-get install nginx

就能自动安装 Nginx

安装好之后,使用 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

关闭 Nginx 服务

sudo /etc/init.d/nginx stop

重启 Nginx 服务

sudo /etc/init.d/nginx restart

使用 netstat -anp 则可以看到80端口已经处于 LISTEN 状态了。 

直接查看80端口可以使用命令:sudo lsof -i :80

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

安装 PHP 7.1 与 PHP7.1-FPM

执行命令

sudo apt-get install php7.1 php7.1-fpm php7.0-dev

此过程中如果报如下错误:

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

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

可使用下列命令将 php7 添加到 ubuntu 软件库中:

sudo apt-add-repository ppa:ondrej/php
sudo apt-get update

安装完毕可以执行 php -v 命令来查看 PHP 版本信息。

Nginx 与 PHP-FPM集成

PHP-FPM 与 Nginx 通信方式有两种,一种是基于TCP的 Internet domain socket 方式,一种是 UNIX domain socket 方式。

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

服务器压力不大的情况下,这两种方式性能差别不大,但在压力比较满的时候,用UNIX domain socket方式,效果确实比较好。

UNIX domain socket 方式:

在 /etc/nginx/sites-available/default 配置文件中(网站根目录也在是这里更改), Nginx已经为与 PHP-FPM的整合准备好了,主要是通过配置 fastcgi_pass 参数来完成。如下:

location ~ \.php$ {
    ......
    # fastcgi_pass 127.0.0.1:9000;
    fastcgi_pass unix:/run/php/php7.1-fpm.sock; #基于UNIX domain socket的方式
}

然后再修改 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.0-mysql

第三个是 PHP的 MySQL扩展。

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

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

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

下面附一个 nginx 的简要站点配置信息:

server {
    listen       90;                            # 监听端口
    server_name local.yaf.com;            # 站点域名
    root  /home/yhm/yhmyaf;                  # 站点根目录
    index index.html index.htm index.php;       # 默认导航页

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }   
}

标签: linux

热门推荐