WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 生活趣事
    • 生活日记
    • 防骗指南
  • 编程教学
    • API日记
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
    • 严选源码
  • 专题
  • 基友
  • 隐私
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君
首页 技术教程(干货) 如何在CentOS 7上安装LEMP堆栈

如何在CentOS 7上安装LEMP堆栈

夏柔 6月 21, 2020

介绍

LEMP软件堆栈是一组开源软件,通常会一起安装以使服务器能够托管动态网站和Web应用程序。该术语实际上是代表L inux操作系统和E Nginx Web服务器(代替LAMP堆栈的Apache组件)的首字母缩写。站点数据存储在基于M ySQL的数据库中,动态内容由P HP 处理。

在本指南中,我们将使用MariaDB作为数据库管理系统,在CentOS 7服务器上获得安装了PHP 7.4的LEMP堆栈。MariaDB可以替代原始MySQL服务器,这实际上意味着您可以切换到MariaDB,而无需在应用程序中进行任何配置或代码更改。

先决条件

在开始本指南之前,您应该在服务器上设置一个单独的非root用户帐户。您可以通过完成CentOS 7初始服务器设置中的步骤1-4来学习如何做。

第1步-安装Nginx

为了向网站访问者显示网页,我们将使用高性能的Web服务器Nginx。要获取最新的Nginx版本,我们将首先安装EPEL存储库,其中包含用于CentOS 7操作系统的其他软件。

要添加CentOS 7 EPEL存储库,请运行以下命令:

sudo yum install epel-release

由于我们使用的是sudo命令,因此这些操作将以root特权执行。它将要求您提供普通用户的密码,以验证您是否具有运行具有root特权的命令的权限。还将提示您确认安装,因此请按Y继续。

现在,您的服务器上已经安装了EPEL存储库,请使用以下yum命令安装Nginx :

sudo yum install nginx

安装完成后,请使用以下命令启动Nginx服务:

sudo systemctl start nginx

您可以通过在Web浏览器中访问服务器的公共IP地址来立即进行抽查,以验证一切是否按计划进行(如果您没有此信息,请查看下一个标题下的注释,以查找您的公共IP地址是什么)。已经):

Open in a web browser:http://server_domain_name_or_IP/

您将看到默认的CentOS 7 Nginx网页,该网页用于提供信息和进行测试。它看起来应该像这样:

如何在CentOS 7上安装LEMP堆栈-WordPress极简博客

如果看到此页面,则表明您的Web服务器现在已正确安装。

要使Nginx在启动时启动,请运行以下命令:

sudo systemctl enable nginx

如何查找服务器的公共IP地址

如果您不知道服务器的公用IP地址是什么,可以通过多种方法找到它。通常,这是您用于通过SSH连接到服务器的地址。

在命令行中,您可以通过几种方法找到此方法。首先,您可以iproute2通过输入以下内容使用这些工具来获取地址:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

这将给您返回一两行。它们都是正确的地址,但是您的计算机可能只能使用它们之一,因此请随意尝试每个。

一种替代方法是使用外部方来告诉您它如何看待服务器。您可以通过询问特定的服务器您的IP地址是什么来做到这一点:

curl http://icanhazip.com

无论使用哪种方法获取IP地址,都可以在Web浏览器的地址栏中键入它以获取服务器。

第2步-安装MariaDB

现在我们的Web服务器已经启动并正在运行,是时候安装MySQL替代品MariaDB了。MariaDB是社区开发的MySQL关系数据库管理系统的分支。

同样,我们可以yum用来获取和安装我们的软件。这次,我们还将安装其他一些帮助程序包,这些程序包将帮助我们使组件相互通信:

sudo yum install mariadb-server mariadb

安装完成后,我们需要使用以下命令启动MariaDB:

sudo systemctl start mariadb

现在我们的MariaDB数据库正在运行,我们想运行一个安全脚本,该脚本将删除一些危险的默认值并锁定对数据库的访问。通过运行以下命令来启动交互式脚本:

sudo mysql_secure_installation

提示将询问您当前的rootMariaDB密码。由于您刚刚安装了MariaDB,因此很可能没有,因此请按Enter使其空白。然后,提示将询问您是否要设置root密码。继续输入Y,然后按照说明进行操作:

mysql_secure_installation prompts:Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

对于其余的问题,您应该在每个提示中都按“ ENTER”键以接受默认值。这将删除一些示例用户和数据库,禁用远程root登录,并加载这些新规则,以便MySQL立即遵守我们所做的更改。

您要做的最后一件事是使MariaDB在启动时启动。使用以下命令执行此操作:

sudo systemctl enable mariadb

至此,您的数据库系统已经建立,我们可以继续。

第3步-安装PHP

PHP是我们安装程序的组件,它将处理代码以显示动态内容。它可以运行脚本,连接到我们的MySQL数据库以获取信息,并将处理后的内容移交给我们的Web服务器进行显示。

CentOS 7服务器上默认可用的PHP版本已过时,因此,我们需要安装第三方软件包存储库才能获取PHP 7+并将其安装在CentOS 7服务器上。Remi是一个受欢迎的软件包存储库,为CentOS服务器提供了最新的PHP版本。

要为CentOS 7安装Remi存储库,请运行:

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

安装完成后,您将需要运行命令以启用包含您的首选PHP版本的存储库。要检查Remi存储库中可用的PHP 7+版本,请运行:

yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64

您将看到如下输出:

OutputLoaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * remi-safe: mirrors.ukfast.co.uk
Available Packages
php70.x86_64                                              2.0-1.el7.remi                                       remi-safe
php71.x86_64                                              2.0-1.el7.remi                                       remi-safe
php72.x86_64                                              2.0-1.el7.remi                                       remi-safe
php73.x86_64                                              2.0-1.el7.remi                                       remi-safe
php74.x86_64                                              1.0-3.el7.remi                                       remi-safe
php80.x86_64                                              1.0-3.el7.remi                                       remi-safe

在本指南中,我们将安装PHP 7.4,它是当前PHP的最新稳定版本。要启用正确的Remi软件包以安装PHP 7.4,请运行:

sudo yum-config-manager --enable remi-php74

现在,我们可以yum像往常一样继续用于安装PHP。以下命令将安装所有必需的软件包,以在Nginx中设置PHP 7.4,并允许其连接到基于MySQL的数据库:

sudo yum install php php-mysqlnd php-fpm

要确认PHP是您选择的版本,请运行:

php --version

您将看到如下输出:

OutputPHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

现在,PHP已成功安装在您的系统上。接下来,我们需要对默认配置进行一些调整。为了方便在CentOS上编辑文件,我们将首先安装nano,它比vi以下内容更加用户友好:

sudo yum install nano

/etc/php-fpm.d/www.conf使用nano或您选择的编辑器打开配置文件:

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

现在查找user和group指令。如果使用nano,则可以按CTRL+ W在打开的文件中搜索这些术语。/etc/php-fpm.d/www.conf

…
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
…

您会注意到user和group变量都设置为apache。我们需要将它们更改为nginx:/etc/php-fpm.d/www.conf

…
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
…

接下来,找到listen指令。默认情况下,php-fpm将通过TCP侦听特定的主机和端口。我们想要更改此设置,以便它侦听本地套接字文件,因为这样可以提高服务器的整体性能。
将包含listen指令的行更改为以下内容:/etc/php-fpm.d/www.conf

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

最后,我们需要更改我们在listen指令中定义的套接字文件的所有者和组设置。找到listen.owner,listen.group并listen.mode指令。这些行默认情况下被注释掉。通过删除行首的前面的;符号来取消注释。然后,将所有者和组更改为nginx:/etc/php-fpm.d/www.conf

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

完成编辑后,保存并关闭文件。如果您正在使用nano,请按CTRL + X,然后按Y和ENTER。

要启用并启动php-fpm服务,请运行:

sudo systemctl start php-fpm

您的PHP环境现已准备就绪。接下来,我们将配置Nginx,以便它发送对PHP脚本进行处理的所有请求php-fpm。

第4步-配置Nginx处理PHP页面

现在,我们已经安装了所有必需的组件。我们仍然需要做的唯一配置更改就是告诉Nginx使用我们的PHP处理器处理动态内容。

Nginx有一个专用目录,我们可以在其中使用服务器块将每个托管网站定义为单独的配置文件。这类似于Apache的虚拟主机。

但是,使用默认安装时,此目录为空。我们将创建一个新文件作为该服务器上的默认PHP网站,它将覆盖/etc/nginx/nginx.conf文件中定义的默认服务器块。

首先,在/etc/nginx/conf.d目录中打开一个新文件:

sudo nano /etc/nginx/conf.d/default.conf

将以下PHP服务器定义块复制到您的配置文件中,并且不要忘记替换该server_name指令,使其指向您服务器的域名或IP地址:/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  server_domain_or_IP;

    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    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 restart nginx

您的Web服务器现已完全设置。在下一步中,我们将测试与Nginx的PHP集成。

第5步-在Web服务器上测试PHP处理

现在,您的Web服务器已设置完毕,我们可以创建一个测试PHP脚本,以确保Nginx .php在的帮助下正确处理了脚本php-fpm。

在创建脚本之前,我们将更改Nginx文档根目录上的默认所有权设置,以便我们的常规sudo用户能够在该位置创建文件。

以下命令会将默认Nginx文档根目录的所有权更改为一个名为的用户和组 萨米,因此请确保在此命令中替换突出显示的用户名和组,以反映系统的用户名和组。

sudo chown -R sammy.sammy /usr/share/nginx/html/

现在,我们将创建一个测试PHP页面,以确保Web服务器能够按预期工作。

info.php在/usr/share/nginx/html目录中创建一个新的PHP文件:

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

以下PHP代码将显示有关服务器上当前运行的PHP环境的信息:/usr/share/nginx/html/info.php

<?php

phpinfo();

复制

完成后,保存并关闭文件。

现在,我们可以测试我们的Web服务器是否可以正确显示PHP脚本生成的内容。转到浏览器并访问服务器主机名或IP地址,然后输入/info.php:

http://server_host_or_IP/info.php

您会看到类似于以下页面:

如何在CentOS 7上安装LEMP堆栈-WordPress极简博客

在通过该页面检查有关PHP服务器的相关信息之后,最好删除您创建的文件,因为该文件包含有关PHP环境和CentOS服务器的敏感信息。您可以rm用来删除该文件:

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

如果以后需要,可以随时重新生成该文件。

结论

在本指南中,您使用Nginx作为Web服务器和最新的PHP版本,为为访问者提供PHP网站和应用程序奠定了灵活的基础。您已经设置了Nginx来通过处理Nginx的PHP请求php-fpm,还设置了一个MariaDB数据库来存储您网站的数据。

由米切尔Anicas和埃里卡海蒂编辑发布,基于Cen7教程。

#CEO7#MariaDB#mysql#nginx
3
等 3 人赞过
J2dcg1.png
猜你喜欢
  • Nginx添加跨域限制规则
  • 使用测速脚本对国内Linux服务器进行测速
  • 域名爆破之自动化信息收集脚本
  • 利用免费接口实现国家开放大学刷网课脚本
  • RiProV2定制导航条
  • 判断是否在微信浏览器打开
  • 微信内自动播放音频非百度方案
  • 利用veImageX加速您的网站,想不快都难!
  • SWAPIDC减少注册信息及防刷注册量教学
  • Python实现定时发送每日早报及生活指数
25 12月, 2023
12月25日,星期一,每天60秒读懂世界!
夏柔
站长
夏山如碧 - 怀柔天下
1719
文章
25
评论
58145K
获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门33
WordPress技术教程267
前沿技术情报所22
城市创新——新消费11
最近有哪些不可错过的热文23
程序员的养生之道0
节
春
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2025 WordPress极简博客. Designed by 夏柔. 辽公网安备21010502000474号 辽ICP备19017037号-2