Skip to main content

LAMP堆栈:Linux、Apache、MySQL、PHP

如何在CentOS 7上安装Linux、Apache、MySQL、PHP(LAMP)

导言

“LAMP”堆栈是一组开源软件,通常一起安装,以使服务器能够托管动态网站和Web应用程序。这个术语实际上是代表Linux操作系统的首字母缩略词,带有Apache Web服务器。站点数据存储在MySQL数据库中(使用MariaDB),动态内容由PHP处理。

在本指南中,我们将在CentOS 7 VPS上安装LAMP堆栈。CentOS将满足我们的首要要求:Linux操作系统。

先决条件

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

第一步——安装Apache

Apache Web服务器是目前世界上最受欢迎的Web服务器,这使得它成为托管网站的绝佳默认选择。

我们可以使用CentOS的软件包管理器yum轻松安装Apache。软件包管理器允许我们从CentOS维护的存储库轻松安装大多数软件。您可以在这里了解有关如何使用yum的更多信息。

出于我们的目的,我们可以从键入以下命令开始:

sudo yum install httpd

由于我们使用sudo命令,这些操作使用根权限执行。它会要求您提供普通用户的密码来验证您的意图。

之后,将安装您的网络服务器。

安装后,您可以在VPS上启动Apache:

sudo systemctl start httpd.service

您可以立即进行抽查,通过在网页浏览器中访问服务器的公共IP地址来验证一切是否按计划进行(如果您还没有这些信息,请参阅下一个标题下的注释,以了解您的公共IP地址):

http://your_server_IP_address/

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

CentOS 7 Apache默认值

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

您最不想做的事情是启用Apache从启动开始。使用以下命令进行操作:

sudo systemctl enable httpd.service

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

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

从命令行中,您可以通过几种方式找到这个。首先,您可以使用iproute2工具通过键入以下内容来获取您的地址:

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

这将给你一两行回。它们都是正确的地址,但您的计算机可能只能使用其中一个,所以请随时尝试每个地址。

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

curl http://icanhazip.com

无论您使用哪种方法来获取IP地址,都可以将其输入网页浏览器的地址栏以访问服务器。

第二步——安装MySQL(MariaDB)

既然我们已经安装并运行了Web服务器,是时候安装MySQL下拉式替代品MariaDB了。MariaDB是MySQL关系数据库管理系统的社区开发的分叉。基本上,它将组织和提供对数据库的访问,我们的网站可以存储信息。

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

sudo yum install mariadb-server mariadb

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

sudo systemctl start mariadb

现在我们的MySQL数据库正在运行,我们希望运行一个简单的安全脚本,该脚本将删除一些危险的默认值,并稍微锁定对我们数据库系统的访问。通过运行以下方式启动交互式脚本:

sudo mysql_secure_installation

提示将要求您提供当前的根密码。由于您刚刚安装了MySQL,您很可能没有MySQL,所以按回车键将其留空。然后提示将询问您是否要设置根密码。继续输入Y,并按照说明操作:

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 authorization.

New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
 ... Success!

对于其余问题,您只需通过每个提示点击“ENTER”键即可接受默认值。这将删除一些示例用户和数据库,禁用远程根登录,并加载这些新规则,以便MySQL立即尊重我们所做的更改。

您最不想做的事情是启用MariaDB启动。使用以下命令进行操作:

sudo systemctl enable mariadb.service

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

第三步——安装PHP

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

我们可以再次利用yum系统来安装我们的组件。我们还将包含php-mysql软件包:

sudo yum install php php-mysql

这应该可以毫无问题地安装PHP。我们需要重新启动Apache Web服务器,才能与PHP配合使用。您可以通过键入以下内容来做到这一点:

sudo systemctl restart httpd.service

安装PHP模块

为了增强PHP的功能,我们可以选择安装一些额外的模块。

要查看PHP模块和库的可用选项,您可以在系统中键入以下内容:

yum search php-

结果都是您可以安装的可选组件。它将为您提供每个的简短描述:

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
. . .

要了解有关每个模块功能的更多信息,您可以搜索互联网,也可以通过键入以下内容查看软件包中的长描述:

yum info package_name

将有很多输出,有一个名为Description的字段,该字段将对模块提供的功能进行更长的解释。

例如,要了解php-fpm模块的作用,我们可以键入以下内容:

yum info php-fpm

除了大量其他信息外,您还会发现如下所示:

. . .
Summary     : PHP FastCGI Process Manager
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI
            : implementation with some additional features useful for sites of
            : any size, especially busier sites.

如果经过研究,您决定要安装软件包,您可以像我们一样使用yum install命令来安装软件。

如果我们决定php-fpm是我们需要的东西,我们可以键入:

sudo yum install php-fpm

如果您想安装多个模块,您可以按照yum install命令列出每个模块,用空格分隔,如下所示:

sudo yum install package1 package2 ...

此时,您的LAMP堆栈已安装和配置。不过,我们仍然应该测试我们的PHP。

第四步——在Web服务器上测试PHP处理

为了测试我们的系统是否为PHP正确配置,我们可以创建一个非常基本的PHP脚本。

我们将称此脚本为info.php。为了让Apache找到文件并正确提供服务,它必须保存到一个非常特定的目录中,该目录被称为“网络根”。

在CentOS 7中,此目录位于/var/www/html/。我们可以通过键入以下内容在该位置创建文件:

sudo vi /var/www/html/info.php

这将打开一个空白文件。我们希望在文件中放置以下文本,即有效的PHP代码:

<?php phpinfo(); ?>

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

如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS流量:

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

现在,我们可以测试我们的Web服务器是否可以正确显示PHP脚本生成的内容。要尝试一下,我们只需要在网页浏览器中访问此页面。您将再次需要服务器的公共IP地址。

您要访问的地址是:

http://your_server_IP_address/info.php

您来的页面应该如下所示:

CentOS 7默认PHP信息

本页面基本上从PHP的角度为您提供有关服务器的信息。它有助于调试并确保正确应用您的设置。

如果成功,那么您的PHP正在正常工作。

您可能想在测试后删除该文件,因为它实际上可能会向未经授权的用户提供有关服务器的信息。要完成此操作,您可以键入以下内容:

sudo rm /var/www/html/info.php

如果您以后需要再次访问此信息,您可以随时重新创建此页面。

结论

现在您安装了LAMP堆栈,您有很多下一步该怎么做的选择。基本上,您安装了一个平台,允许您在服务器上安装大多数类型的网站和网络软件。