centos 7 服务器安装LNMP环境 (Linux+Nginx+Mysql8+PHP)

一、前言

在搭建环境的过程中,笔者在网上看到了太多教程,各执一词,新手虽然能照猫画虎成功,但不明白背后的弯弯,难免会迷糊,所以结合搭建实际,总结了这篇教程。

二、安装前的准备-配置selinux和防火墙

1,临时(永久)关闭selinux

为什么要关闭selinux(centos默认开启的安全加强的linux,详细问度娘),避免selinux的默认文件权限的限制,导致安装失败。操作如下:

查看SELinux状态命令:

  命令:/usr/sbin/sestatus -v

  如果SELinux status参数为enabled即为开启状态,disable为关闭

关闭SELinux方法:

  临时关闭(本次安装使用的方法,不用重启机器,重启后恢复):

  命令:setenforce 0

永久关闭:修改配置文件需要重启机器:

  修改/etc/selinux/config 文件(小白请自学vim操作)

  将SELINUX=enforcing改为SELINUX=disabled

  重启机器,如下命令都可以:

  reboot

  shutdown -r

  init 1

2,配置防火墙-开启关闭相关端口

经典工具iptables可以灵活的定义防火墙规则,功能非常强大。但是配置过于复杂,对新手不友好。建议使用ubuntu发行版的UFW(Uncomplicated Firewall不复杂的防火墙)的防火墙配置工具。

安装命令:yum install ufw

使用方法比较简单了:

首先启用ufw:

sudo ufw enable

开启禁止一切外部连接:

sudo ufw default deny

开启ssh用的22端口:

sudo ufw allow 22

开启web服务的80端口:

sudo ufw allow 80

是不是非常简洁~

如果你是远程登陆服务器的方式,开启后可能会导致putty,xshell等工具无法ssh连接。处理方法,在阿里云(腾讯云)的实例管理界面中登录ssh并开启22端口即可。

三、nginx的安装

1,通过源安装(推荐)

Nginx官方提供了最新Yum源(1.16版),

执行命令添加源:

sudo rpm -Uvh nginx.org/packages/centos/7/noarch/...

执行下列命令安装Nginx

sudo yum install nginx

启动Nginx

sudo systemctl start nginx.service

设置开机自动运行

sudo systemctl enable nginx.service

检查安装是否成功,在浏览器中输入服务器的地址,本机安装则输入172.0.0.1,回车:

会显示:welcome to nginx!

2,编译安装(新手不推荐)

看这篇:www.cnblogs.com/liaoxianfu/p/0ec64...

四、安装php7.2和php-fpm

1,yum安装

执行如下两个命令添加php最新的yum源:

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

先清理旧php版本:

yum -y remove php*

安装php72w和php-fpm等拓展件:

yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml

验证php是否安装成功:

php -v

验证对应的扩展是否安装成功:

php -m

设置php-fpm并检测php-fpm的运行状态

启动php-fpm

service php-fpm start

检查启动是否成功

service php-fpm status

设置开机自启动

systemctl enable php-fpm.service

检查开机自启动是否设置成功

systemctl list-dependencies | grep php-fpm

2,配置php-fpm使nginx能够解析php

配置文件为:/etc/php-fpm.d/www.conf

输入ps -aux|grep nginx: worker process

出现的进程用户名应该是:nginx(有的是www-data)

修改/etc/php-fpm.d/www.conf

使

user = nginx

group = nginx

修改完后应重启php-fpm使修改后的配置生效。

停止

systemctl stop php-fpm.service

重启

systemctl restart php-fpm.service

3,配置nginx解析php

进入配置目录:

cd /etc/nginx/conf.d

编辑配置文件:vim default.conf

修改server{ }里面内容如下:

location / {
        root   /var/www/html;
        index  index.html index.htm index.php;
      }

去掉下面这段前面的注释号#,和修改对应的内容(注意

location ~ \.php$ {
        root           /var/www/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;

        #注意下面这一行不同之处,需要修改:
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

重载配置文件nginx:使配置生效

nginx -s reload

不行的话:

nginx -s stop
nginx -c /etc/nginx/nginx.conf

4,测试

在网站根目录,一般为/var/www/html

新建文件index.php:vim index.php

内容如下:

<?php
   phpinfo();
?>

在浏览器输入:服务器ip(或本机测试ip 127.0.0.1)/index.php

会显示php的相关信息,表示成功。

五、安装MySQL8

查看文章 CentOS7安装mysql8.0.12_心有山海静而无边-CSDN博客_centos mysql8

数据库远程连接( Navicat远程连接MySQL8.0亲测有效_CatEatApple的专栏-CSDN博客

本作品采用《CC 协议》,转载必须注明作者和本文链接
最美的不是下雨天,而是和你一起躲过的屋檐!
讨论数量: 1

不错,非常实用

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!