一、安装编译工具及库文件:

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

环境要求

nginx是C语言开发,建议在linux上运行,本文章使用Centos7作为安装环境。

安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

二、首先要安装 PCRE:

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。

1、PCRE 作用是让 Nginx 支持 Rewrite 功能。

cd /usr/local/src/   # 进入目录

下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2、解压安装包:

tar -zxvf pcre-8.35.tar.gz

3、进入安装包目录

cd pcre-8.35/

4、编译安装

./configure

make && make install

5、查看pcre版本

pcre-config --version

三、安装 Nginx:

1、下载 Nginx,下载地址:http://nginx.org/download/nginx-1.14.1.tar.gz

生产环境使用Stable version:最新稳定版,现在最新的版本是nginx-1.14.1

注意各版本的区别:Nginx官网提供了三个类型的版本

(1)Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
(2)Stable version:最新稳定版,生产环境上建议使用的版本
(3)Legacy versions:遗留的老版本的稳定版

cd /usr/local/src/

wget http://nginx.org/download/nginx-1.14.1.tar.gz

2、解压安装包:

tar -zxvf nginx-1.14.1.tar.gz

3、进入安装包目录

cd nginx-1.14.1/

4、编译安装

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35      # 编译源码包代码,追加--prefix参数,指定稍后源码包程序的安装路径

make      # 生成二进制安装程序

make install     # 运行二进制安装程序

5、查看nginx版本

/usr/local/webserver/nginx/sbin/nginx -v

到此,nginx安装完成。

四、Nginx 配置:

创建 Nginx 运行使用的用户和组 www:

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www

配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容

mv nginx.conf nginx.conf-backup     # 备份nginx的配置文件

vim nginx.conf     # 新建nginx的配置文件,写入以下内容

user www www;
worker_processes 2;   # 设置值和系统CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;  # 日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';

#charset gb2312;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;
# 下面是server虚拟主机的配置
server
{

listen 8000;   # 监听端口(根据自己的需求更改)
server_name localhost;   # 域名
index index.html index.htm index.php;
root /usr/local/webserver/nginx/html;   # 站点目录(也就是以后存放php文件的根目录)
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;   # 需要特别注意这个配置,这里是用来连接Nginx和PHP的php-fpm服务的默认端口9000,php-fpm服务后面会安装,可以根据自己的需求更改
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;
}

}

检查配置文件nginx.conf的正确性命令:

/usr/local/webserver/nginx/sbin/nginx -t

五、启动 Nginx:

Nginx 启动命令如下:

/usr/local/webserver/nginx/sbin/nginx
ps -ef | grep nginx

六、访问Nginx:

从浏览器访问我们配置的站点IP,如果出现Welcome to nginx!那么nginx就安装成功了!

Nginx 其他命令

以下包含了 Nginx 常用的几个命令:

/usr/local/webserver/nginx/sbin/nginx -s reload      # 重新载入配置文件

/usr/local/webserver/nginx/sbin/nginx -s reopen     # 重启nginx

/usr/local/webserver/nginx/sbin/nginx -s stop         # 停止nginx

七、安装PHP7

(1)安装php7

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

安装完成后键入php -v会显示出php的版本,代表我们php安装完成了,先别激动,接着往下看。

 

Nginx和PHP都安装完成了,此时还得配置php-fpm服务。让nginx与php连接起来,才能使用。

(2)安装php-fpm

yum install php70w-fpm php70w-opcache

打开php-fpm配置文件

vim /etc/php-fpm.d/www.conf

修改以下内容(这里查找配置项时,可以在末行模式下使用斜杠加要查找的关键字回车查找,如下图所示)

将listen.owner与listen.group参数分别修改为www

(3)最后,把三个参数修改完成后:wq退出,然后启动 php-fpm 服务

systemctl start php-fpm

注意:/var/log/php-fpm/error.log文件是php-fpm服务的错误日志文件,要是有什么错误可以去查看,我遇到了php-fpm服务默认9000端口被占用,导致php-fpm服务启动不了,要是你也遇到,更改冲突端口。

(4)开机启动设置

systemctl enable php-fpm
systemctl daemon-reload

(5)在之前设置的php目录下,新建一个php文件用于测试。

在 /usr/local/webserver/nginx/html 目录下建立 index.php 文件

cd /usr/local/webserver/nginx/html

vim index.php

(6)输入以下内容:

<?php
 phpinfo();
?>

退出保存

(7)重启Nginx

/usr/local/webserver/nginx/sbin/nginx -s reopen     # 重启nginx

/usr/local/webserver/nginx/sbin/nginx    # 启动nginx

ps -ef | grep nginx    # 以全格式查看所有nginx服务的进程信息

(8)然后,在浏览器上访问你的IP地址:端口号/index.php如果看到以下画面,则说明我们的 nginx + php 成功关联上了。

CentOS7下搭建Nginx+PHP7的安装配置的更多相关文章

  1. centos7下搭建nginx+php7.1+mariadb+memcached+redis

    一.环境准备 1.首先介绍一下环境,以及我们今天的主角们 我用的环境是最小化安装的centos7,mariadb(江湖传言mysql被oracle收购后,人们担心像java一样毁在oracle手上于是 ...

  2. 在centos7下搭建nginx环境,并配置负载均衡,最终能达到通过域名直接访问的目的

    1.关于nginx:个人理解的nginx它的主要用途就是负载均衡,当然可能还有其他一些功能可能我们不长用到,我们通过nginx可以干什么呢?为什么要引入它呢?原因是当有高并发访问服务器时,服务器可能会 ...

  3. windows下搭建nginx+php+虚拟主机配置过程

    需要软件信息: nginx php RunHiddenConsole 首先安装之前要规划一下把他们放到那里,比如我将他们统一放在e :/web下 那么将这些都拷贝过来,开始吧,window要执行php ...

  4. Linux系统:centos7下搭建Nginx和FastDFS文件管理中间件

    本文源码:GitHub·点这里 || GitEE·点这里 一.FastDFS简介 1.基础概念 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件上传 ...

  5. Linux系统:centos7下搭建Rocketmq4.3中间件,配置监控台

    本文源码:GitHub·点这里 || GitEE·点这里 一.环境搭建 环境版本 centos7 jdk1.8 已搭建好 rocketmq4.3 1.下载安装包 网址 https://www.apac ...

  6. CentOS7下MySQL8的二进制基本安装配置

    前言 基于本地Centos7.6虚拟机Mysql8的配置(亲测有效) 一.安装前的准备 1.到官网下载mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz 2.通过Xs ...

  7. Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)

    1.搭建MySQL数据库 安装MariaDB yum install mariadb-server -y 启动MySQL服务 emctl start mariadb #启动服务 emtcl enabl ...

  8. Centos7下的rabbitmq-server-3.8.11安装配置

    推荐大家看看这篇文章:https://blog.csdn.net/qq_27669839/article/details/113418827 下载安装文件 在网上去下载rabbmitmq-3.8.11 ...

  9. Linux系统:Centos7下搭建PostgreSQL关系型数据库

    本文源码:GitHub·点这里 || GitEE·点这里 一.PostgreSQL简介 1.数据库简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性.稳定性.数据一致性等特点,且可以 ...

随机推荐

  1. git 新建本地分支后将本地分支推送到远程库, 使用git pull 或者 git push 的时候报错

    是因为本地分支和远程分支没有建立联系  (使用git branch -vv  可以查看本地分支和远程分支的关联关系)  .根据命令行提示只需要执行以下命令即可git branch --set-upst ...

  2. 前端框架VUE----表单输入绑定

    vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V ...

  3. 怎样从外网访问内网Redis数据库?

    本地安装了一个Redis数据库,只能在局域网内访问到,怎样从外网也能访问到本地的Redis数据库呢?本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Redis数据库 默认安装的Redis ...

  4. Python+selenium点击网页上指定坐标

    from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains dr = ...

  5. pxc集群进入非主模式怎么让最后的节点允许提供服务

    这种情况一般是,集群其他节点意外宕机而最后一个节点无法自我仲裁,而进入非主模式. 该模式拒绝任何SQL的执行: ERROR 1047 (08S01): WSREP has not yet prepar ...

  6. jquery获取包含本身的元素

    我们知道,使用jquery获取一个元素内的所有元素非常容易,使用jQuery.html()就可以. 如果是js语法的话,使用domObj.innerHTML也很容易实现. 那么问题来了,要想获取包涵节 ...

  7. Solr导入MySQL数据之dataimport-handler

    Solr不借助手动JSolr编程情况下也可以将Mysql的数据导入到Solr中.实现方式是安装dataimport-Handler从关系数据库将数据导入到索引库. 1.向SolrCore中加入jar包 ...

  8. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  9. topcoder srm 330 div1

    problem1 link 直接模拟. import java.util.*; import java.math.*; import static java.lang.Math.*; public c ...

  10. javaScript随机数取值方法

    Math.random()方法返回0到1之间的一个随机数,不包括0和1 如若想取的一个范围的随机数可套用下面的公式: 一.X+开始数-1=结束数 二.Math.floor(Math.random()* ...