在CentOS7上安装LEMP堆栈(Nginx,MariaDB,PHP-FPM)逐步指南

LEMP代表Linux,Nginx(发音引擎X),MySQL / MariaDB和PHP。 它使服务器可以托管动态网站和Web应用程序。 在本教程中,我将向您展示如何在CentOS 7服务器上安装LEMP堆栈。 我选择将MariaDB安装为数据库服务器,而不是MySQL。

从EPEL在CentOS7上安装Nginx

与Apache相比,Nginx是一种快速的Web服务器,如今变得越来越流行。 为了在CentOS 7上安装Nginx,我们需要使用以下命令添加EPEL存储库。 EPEL代表企业Linux的额外软件包。

sudo yum install epel-release -y

输入您的密码。 现在已经添加了存储库,是时候安装Nginx了:

sudo yum install nginx -y

安装Nginx之后,我们需要启动它。

sudo systemctl start nginx

启用Nginx以在系统启动时启动。

sudo systemctl enable nginx

检查它是否正在运行:

systemctl status nginx

样本输出:

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:36:31 UTC; 1min 19s ago
 Main PID: 13692 (nginx)
   CGroup: /system.slice/nginx.service
           ├─13692 nginx: master process /usr/sbin/nginx
           └─13693 nginx: worker process

检查Nginx版本:

[[email protected] ~]$ nginx -v
nginx version: nginx/1.12.2

在Web浏览器中键入服务器IP地址,如果看到以下内容,则表示已正确安装Nginx。

您可以使用以下命令找到服务器的公共IP地址:

ip address

要么

curl http://icanhazip.com

您的服务器防火墙可能已禁用对端口80的公共访问。为允许公共访问,我们使用以下命令告诉iptables防火墙接受对端口80的通信。

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

现在,您的服务器可以托管静态html文件,但是为了服务器动态网站,我们需要安装MariaDB和PHP。

在CentOS 7上安装MariaDB

MariaDB是MySQL的直接替代品。 使用以下命令安装它:

sudo yum install mariadb-server mariadb -y

安装后,我们需要启动它。

sudo systemctl start mariadb

使MariaDB在系统引导时启动。

sudo systemctl enable mariadb

检查状态:

systemctl status mariadb

输出:

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:48:46 UTC; 23s ago
 Main PID: 13970 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─13970 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

检查版本:

[[email protected] ~]$ mysql --version
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

现在我们需要运行安全脚本。

sudo mysql_secure_installation

当脚本要求您提供当前的root密码时,请将其保留为空白,然后按Enter。 然后输入Y并设置root密码。

安装nginx php fpm mariadb centos 7

设置root密码后,您只需按Enter即可回答所有其他问题。 (请注意,字母Y大写,这是默认答案。)

centos 7 nginx php-fpm

现在,让我们继续到PHP部分。

在CentOS7上安装PHP-FPM

使用以下命令安装PHP和相关软件包:

sudo yum install php php-mysql php-fpm php-gd php-xml php-mbstring -y

现在编辑php-fpm配置文件:

sudo nano /etc/php-fpm.d/www.conf

找到以下行:

listen = 127.0.0.1:9000

更改为此:

listen = /var/run/php-fpm/php-fpm.sock

然后找到以下两行:

;listen.owner = nobody
;listen.group = nobody

删除前面的分号。 最后,将用户和组的值从“ apache”更改为“ nginx”:

user = nginx
group = nginx

保存并关闭文件后,启动PHP Processor:

sudo systemctl start php-fpm

接下来,启用php-fpm以在系统启动时启动。

sudo systemctl enable php-fpm

配置Nginx虚拟主机

在中创建一个新的虚拟主机文件 /etc/nginx/conf.d 目录

sudo nano /etc/nginx/conf.d/example.com.conf

向其添加以下行。 用您自己的域替换www.example.com和example.com。 不要忘记为您的域名设置A记录。

server {
  listen 80;
  server_name www.example.com example.com;
  root /usr/share/nginx/html;
  index index.php index.html index.htm;
  location / {
    try_files $uri $uri/ /index.php$query_string;
  }
  error_page 404 /404.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_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

保存并关闭文件。 然后重新加载nginx:

sudo systemctl reload nginx

您可以添加其他虚拟主机文件,以在单个服务器上托管多个网站。

测试PHP处理

创建一个 info.php Web根目录中的文件:

sudo nano /usr/share/nginx/html/info.php

将以下文本放入文件

<?php phpinfo(); ?>

保存并关闭它。 然后通过在浏览器中键入以下内容来访问您新创建的文件:

http://example.com/info.php

要么

your ip address/info.php

如果您在以下屏幕截图中看到类似的内容,则说明您的PHP正常运行。

CentOS上的LEMP

该文件仅用于测试。 出于安全原因,您现在可以使用以下命令将其删除:

sudo rm /usr/share/nginx/html/info.php

现在您已经安装了LEMP,您可能想知道下一步应该做什么。 好了,您可以在LEMP堆栈的顶部安装WordPress或Drupal网站。 这就是我将在下一个教程中向您展示的内容。

Sidebar