【Nginx学习00】CentOS7 搭建nginx+php运行环境

搭建环境

  • 服务器: 阿里云(1核/1GB)
  • 操作系统: CentOS / 7.5 x86_64 (64bit)
  • 本地计算机: Windows7 + SecureCRT+FlashFXP
    几点说明
    • 服务器 : 本教程中我们使用的是阿里云的服务器,其实不管是百度还是阿里腾讯的服务器,没多大差别,选择自己喜欢的(便宜的)就好。
    • 操作系统 : 本教程使用的是Linux 发行版本的Centos 7.5,Linux发行版有redhat和Ubuntu、Centos等等,不同的Linux 发行版配置方式有差异,初学者一般用Ubuntu,工程实践建议使用Centos。
    • 本地计算机 : 配置该环境需要远程连接服务器,连接服务器软件的软件有很多,本人比较喜欢用SecureCRT(具体的使用教程见左边超链接),FlashFXP主要用来使本地和服务器端进行文件共享,具体的使用教程见左边超链接。

正文


安装部分教程

Nginx

在Centos上,我们一般用 yum install命令来安装Linux源中自带的软件,该方法是不用自己下载相关的依赖项,直接一键全部安装好,在Ubuntu中我们一般使用apt-get install命令来安装软件,同样的相对于二进制编译安装的好处就是不用配置想相应的环境和依赖项。

首先通过yum方式来安装Nginx

#yum install为centos下安装软件的方式,-y表示表示“yes”,不用直接输入确认
yum -y install nginx

在这里插入图片描述
安装成功,接下来我们测试Nginx是否正常
1.启动Nginx,在命令行直接输入 nginx 启动nginx

2.打开浏览器,在地址栏输入自己的ip地址,出现如下界面表示nginx安装正常
在这里插入图片描述
3. 输入 nginx -V可以查看nginx的版本

在这里插入图片描述
我们注意两个文件路径

/usr/share/nginx/html
#该路径里面放的就是我们网站的内容,可以试着更改html里面的index.html内容,
刷新网站,会发现显示内容也会改变。将index.html里面的内容删掉,改为"hello",
刷新网站,显示如下:

在这里插入图片描述

/etc/nginx/nginx.conf
#此文件为nginx的配置文件,我们后面会修改此配置文件

nginx此时已经安装完成,具体配置会在后面详细说明。


PHP

使用yum方式安装PHP时,不能安装php7,只能安装php5,本教程中我们安装php5,新版本和旧版本的区别不是很大,没有必要纠结。

#下载php相关的软件,php-fpm是我们管理php的软件
yum install -y php php-fpm php-curl php-gd* php-mysql

安装完成。
在这里插入图片描述
启动php软件

service php-fpm start

查看php的版本

php -v


php安装成功。


联合配置

nginx + php

在前面我们分别安装好了nginx和php,现在将nginx和php联合配置起来。

将nginx和php设置为开机自启动。

systemctl enable nginx.service
systemctl enable php-fpm.service

打开nginx的配置文件,前面提到过配置文件的路径

vim /etc/nginx/nginx.conf

打开后界面如下图:

# nginx运行的用户名
user nginx;
# nginx启动进程,通常设置成和cpu的数量相等,这里为自动
worker_processes auto;

# errorlog文件位置
error_log /var/log/nginx/error.log;
# pid文件地址,记录了nginx的pid,方便进程管理
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
# 用来加载其他动态模块的配置
include /usr/share/nginx/modules/*.conf;

# 工作模式和连接数上限
events {
    # 每个worker_processes的最大并发链接数
    # 并发总数:worker_processes*worker_connections
    worker_connections 1024;
}

# 与提供http服务相关的一些配置参数类似的还有mail
http {
    # 设置日志的格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    # access_log记录访问的用户、页面、浏览器、ip和其他的访问信息
    access_log  /var/log/nginx/access.log  main;

    # 这部分下面会单独解释
    # 设置nginx是否使用sendfile函数输出文件
    sendfile            on;
    # 数据包最大时发包(使用Nagle算法)
    tcp_nopush          on;
    # 立刻发送数据包(禁用Nagle算法)
    tcp_nodelay         on;
    # 链接超时时间
    keepalive_timeout   65;
    # 这个我也不清楚...
    types_hash_max_size 2048;

    # 引入文件扩展名与文件类型映射表
    include             /etc/nginx/mime.types;
    # 默认文件类型
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    # http服务上支持若干虚拟主机。
    # 每个虚拟主机一个对应的server配置项
    # 配置项里面包含该虚拟主机相关的配置。
    server {
        # 端口
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 访问的域名
        server_name  _;
        # 默认网站根目录(www目录)
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.

        include /etc/nginx/default.d/*.conf;

        # 默认请求
        location / {
        }

        # 错误页(404)
        error_page 404 /404.html;
            location = /40x.html {
        }

        # 错误页(50X)
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

我们要更改配置的只需要server部分就可以了。进入vim编辑模式,或者用FlashFXP将配置文件共享到桌面来更改即可。

只需要改动三处即可

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 这里改动了,也可以写你的域名,我用的是IP地址
        server_name  106.12.129.252;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            # 这里改动了 定义首页索引文件的名称
            index index.php index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

        # 这里新加的
        # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
        # Fastcgi服务器和程序(PHP,Python)沟通的协议.
        location ~ \.php$ {
            # 设置监听端口
            fastcgi_pass   127.0.0.1:9000;
            # 设置脚本文件请求的路径
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            # 引入fastcgi的配置文件
            include        fastcgi_params;
        }
    }

更改后的配置文件为:
在这里插入图片描述

重启nginx服务器

nginx -s reload

此时,nginx和php已经联合配置完成了,但是我们并不知道实际配置效果如何,这个时候我们可以写一个小的测试脚本来验证一下。
之前提过了/usr/share/nginx/html是Nginx的网站根目录,我们可以在此目录下建立一个php测试脚本。

# phpinfo.php是我要建立的文件名
vim /usr/share/nginx/html/phpinfo.php

打开编辑器后,在里面输入


phpinfo();// 测试信息
?>

保存退出后,在浏览器中输入http://106.12.129.252/phpinfo.php,我这里的ip是106.12.129.252,你换成你们自己的即可。如图出现:
在这里插入图片描述
Nginx和php已经配置完成了。


后记

此次配置LNMP环境中间确实遇到了不少的坑,中间也参考了许多的博客,在此感谢所有的博主,正是他们的开源精神,使得我能顺利完成这个环境搭建,期间也不止一次的重装系统,最终还是成功的完成了搭建。


关于我自己

  • 一个正派但不正经的程序员

  • 18年计算机专业硕士毕业生,腾讯SNG部门实习生,现加盟快手科技 ,后端研发工程师一枚

  • 喜欢技术,喜欢互联网

  • 民遥控 ,赵雷、陈粒、宋冬野

  • 公众号:编程美学,时不时写篇文章,偶尔数羊,其实说到底,只是想和你聊聊
    在这里插入图片描述

你可能感兴趣的:(Nginx,LNMP)