Centos7 Mysql + PHP + Nginx 环境配置 终结版

Nginx (读“engine x”)是一款免费、开源、高性能的HTTP服务器。 Nginx 因性能稳定、功能丰富、配置简单、资源消耗低而著称。
本文介绍如何在Linux服务器(Cent OS7)上安装Nginx、MySQL和PHP,这个环境也简称 LNMP 或LEMP 。其中,Nginx和PHP的采用PHP-FPM方式。

先看虚拟机配置【电脑位32G内存,所以可以这么任性 -_-】

Paste_Image.png
Paste_Image.png

本问中的测试主机是用虚拟机IP地址来访问的,请根据具体情况替换
教程中的命令都是在root权限下操作,请切换到root用户,命令

su

输入密码后进入root用户控制台

Paste_Image.png

安装 MySQL5

与CentOS 6不同,CentOS 7服务器必须通过社区仓库来安装MySQL。如果像CentOS 6中用:yum install mysql
,默认就会安装 MariaDB 数据库。(说明:MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险,目前来看没有太大必要。)
MySQL的社区仓库:https://dev.mysql.com/downloads/repo/yum/,安装步骤:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server

在询问的时候键入y
确定安装。然后启动MySQL,并设置开机启动:

systemctl start mysqld # 启动 MySQL
systemctl enable mysqld # 开机启动ySMySQL

MySQL默认会绑定到地址 localhost(127.0.0.1),默认用户名是root
,密码为空。使用下面的命令修改密码:

mysql_secure_installation

搞死人 --- 安装半个 源不在国内。。

Paste_Image.png

安装 Nginx

如果系统安装了Apache,先卸载。

service httpd stop
systemctl disable httpd
yum remove httpd

再安装Nginx:

yum install epel-release
yum -y install nginx

启动 Nginx,并设置为开机启动:

systemctl start nginx
systemctl enable nginx

又10多分钟过去了

我们输入

ip addr  //查看我们虚拟机的ip地址
Paste_Image.png

我们还有开启80端口的权限

iptables -I INPUT -p tcp --dport 80 -j ACCEPT 
Paste_Image.png

可以访问了

安装 PHP5-FPM

yum install php php-mysql php-fpm

然后是配置。打开文件 /etc/php.ini,设置cgi.fix_pathinfo=0(要先删除前面的;注释符),如下:

[...]
cgi.fix_pathinfo=0
[...]

用vim打开 直接/cgi.fix_pathinfo 回车就可以到达

再配置PHP-FPM。打开文件 /etc/php-fpm.d/www.conf

将 127.0.0.1:9000 改为 php-fpm.sock 文件
取消 listen.owner和listen.group前面的注释
将user 和 group 的值由apache 改为 nginx

如下

[...]
listen = /var/run/php-fpm/php-fpm.sock
[...]
listen.owner = nobodylisten.group = nobody
[...]
user = nginxgroup = nginx
[...]

启动 PHP-FPM,并设置为开机启动:

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM 启动之后,会生成 socket 文件 /var/run/php-fpm/php-fpm.sock
作为守护进程运行 FastCGI 服务。接下来配置 Nginx 的时候会用到这个 socket 文件。

配置 Nginx

Nginx 的配置文件是:/etc/nginx/nginx.conf,使用 vim 打开:

vi /etc/nginx/nginx.conf

配置项非常简单,如果需要了解详细内容,可看:https://www.nginx.com/resources/wiki/start/topics/examples/full/。下面介绍基本的配置。
首先,根据情况调整worker_processes和keepalive_timeout(可选):

[...]
worker_processes 4;
[...]
keepalive_timeout 2;
[...]

虚拟主机定义在 server{} 容器中,修改为如下内容:

[...] 
server { 
    listen 80; 
    listen [::]:80 default_server;  
    server_name _; root /usr/share/nginx/html; 
    index index.php index.html index.htm; 
    location / { 
    # First attempt to serve request as file, then 
    # as directory, then fall back to displaying a 404. 
    try_files $uri $uri/ =404; 
    } 
    error_page 404 /404.html; 
    location = 40x.html { 
        root /usr/share/nginx/html; 
    } 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
        root /usr/share/nginx/html; 
    } 
    location ~ \.php$ { 
        try_files $uri =404; 
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_index index.php; include fastcgi_params; 
    } 
}
[...]

关于配置的一些说明:
首先,我们打开两个listen
,让 Nginx 同时侦听 IPv4 和 IPv6 的80
端口。
server_name _;
绑定所有的 vhost(可以指定主机名,如 www.example.com)。
脚本根目录 root 不变,依然是 /usr/share/nginx/html

索引首页文件 index 添加上 index.php

其中针对 PHP 很重要的部分在location ~.php$ {}
中。为防止零日攻击(详见:http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP andhttp://forum.nginx.org/read.php?2,88845,page=3),该部分开头设置了try_files $uri =404;

保存配置文件后,检查配置文件的语法,再重新加载 Nginx:

nginx -t # 检查配置文件语法
systemctl reload nginx # 重新加载nginx

在 /usr/share/nginx/html 目录下创建文件 index.php,内容为:

<?php 
    phpinfo()
;?>
Paste_Image.png

可以看到,PHP5 已经工作,根据 Server API 行看出,是通过 FPM/FastCGI 方式工作的,往下拉会看到 PHP5 加载的其他模块,包括MySQL、cURL、sqlite模块的支持。

PHP-FPM 使用 TCP 连接

默认情况下,PHP-FPM 通过 /var/run/php-fpm/php-fpm.sock 文件侦听 socket。当然,也可以设置 PHP-FPM 使用 TCP 连接。打开文件 /etc/php-fpm.d/www.conf,设置 listen
值如下:

[...]
;listen = /var/run/php-fpm/php-fpm.sock
listen = 127.0.0.1:9000
[...]

这样 PHP-FPM 会侦听地址 127.0.0.1(localhost)和端口9000,确保这个端口没有被其他程序占用。然后重新加载 PHP-FPM:

systemctl reload php-fpm

接下来,编辑 /etc/nginx/nginx.conf 文件,修改如下一行:

[...]
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
[...]

然后,重载 nginx 就可以了:

sytemctl reload nginx

这样,整个LNMP环境就搭好了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 1,762评论 0 3
  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 10,126评论 5 124
  • 前言 LIUNX服务器部署,百度找的资料有些都是老的。查了一些资料顺便整合了一下,阿里云服务器(ECS)可以选择多...
    熊大y阅读 1,181评论 1 5
  • 对世界充满憧憬与善意的女生总是活在一个美好的世界里。就像她,脸上洋溢着青春的微笑。 她是个自信的女孩,她自信她最美...
    Esther_Han阅读 156评论 0 1
  • 有数据显示,中国智能手机的持有量已经达到5亿,预计2018年移动支付交易规模达到18万亿元,由此可见扫码支付的前景...
    中原快报阅读 331评论 0 0