LNMP 是现在非常流行的 web 环境, 是Linux,Nginx,MySQL(使用MariaDB),PHP的缩写。数据存储在MySQL中,动态内容由 PHP 处理。 在本指南中,我们将演示如何在 CentOS 7 服务器上安装 LNMP 服务。
在本指南中,我们将在CentOS 7 VPS上安装一个LEMP堆栈。CentOS将满足我们的第一个要求:一个Linux操作系统。
第一步 – 安装Nginx为了向我们的网站访问者显示网页,我们将使用 Nginx,一种现代化的高效网页服务器。
要添加CentOS 7 EPEL存储库,请打开终端并使用以下命令:
sudo yum install epel-release由于我们使用sudo命令,这些操作将以 root 用户权限执行。它会询问您的常规用户密码,以验证您是否有权利以 root 权限运行命令。
现在,您的服务器上安装了 Nginx 存储库,请使用以下 yum 命令安装 Nginx :
sudo yum install nginx一旦安装,您可以在启动 Nginx:
sudo systemctl start nginx您可以立即进行检查,通过访问您的网络浏览器中的服务器的公共IP地址或者域名来验证一切是否都按计划进行:
您将看到默认的CentOS 7 Nginx网页,这是为了信息和测试目的。它应该看起来像这样:
如果您看到此页面,则您的Web服务器现在已正确安装。在继续之前,您将要做的是启动 Nginx 启动。使用以下命令执行此操作:
sudo systemctl enable nginx第二步 – 安装 MySQL(MariaDB)
现在我们的Web服务器启动并运行了,现在是安装MariaDB的时候了,MariaDB 是开源版本的 MySQL 分支,在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前 MariaDB 是发展最快的 MySQL 分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
再次,我们可以yum用来获取和安装我们的软件。这一次,我们还将安装一些其他“帮助”软件包,帮助我们使组件相互通信:
sudo yum install mariadb-server mariadb安装完成后,我们需要使用以下命令启动 MariaDB:
sudo systemctl start mariadb现在我们的 MySQL 数据库正在运行,我们希望运行一个简单的安全脚本,它将删除一些危险的默认值,并锁定对我们的数据库系统的访问。运行以下操作启动交互式脚本:
sudo mysql_secure_installation提示将询问您当前的 root 密码。既然你刚刚安装了 MySQL,你很可能没有一个,所以按 Enter 键留空。然后提示将询问您是否要设置 root 密码。继续输入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 authorisation. New password: password Re-enter new password: password Password updated successfully! Reloading privilege tables.. ... Success!对于其余的问题,您应该通过每个提示点击“ENTER”键接受默认值。这将删除一些示例用户和数据库,禁用远程 root 登录,并加载这些新规则,以便 MySQL 立即尊重我们所做的更改。
最后一件事就是让 MariaDB 开机启动。使用以下命令执行此操作:
sudo systemctl enable mariadb在这一步,您的数据库系统现在已经建立起来,我们可以继续。
第三步 – 安装 PHPPHP是我们设置的组件,它将处理代码以显示动态内容。它可以运行脚本,连接到我们的MySQL数据库以获取信息,并将处理的内容交给我们的Web服务器进行显示。
我们可以再次利用yum系统来安装我们的组件。我们还将包括 php-mysql 和 php-fpm 包:
sudo yum install php php-mysql php-fpm 配置PHP处理器我们现在已经安装了我们的 PHP 组件,但是我们需要进行一些轻微的配置更改,使我们的安装更加安全。
使用 root 权限打开主 php-fpm 配置文件:
sudo vi /etc/php.ini我们在这个文件中寻找的是设置cgi.fix_pathinfo的参数。这将被分号与分号(;),它默认值为“1”。
这是一个非常不安全的设置,因为它告诉PHP尝试执行最接近的文件,如果PHP文件不完全匹配,它可以找到。这基本上将允许用户以允许他们执行不应该被允许执行的脚本的方式来制作PHP请求。
我们将通过取消注释行并将其设置为“0”来更改这两个条件:
cgi.fix_pathinfo=0完成后保存并关闭文件。
接下来,打开 php-fpm 配置文件 :
sudo vi /etc/php-fpm.d/www.conf找到指定参数的行 listen,然后更改它,如下所示:
listen = /var/run/php-fpm/php-fpm.sock接下来,找到设置的线条listen.owner和listen.group并取消他们。他们应该是这样的:
isten.owner = nobody listen.group = nobody最后,找到 user 和 group 把 “apache” 改成 “nginx”:
user = nginx group = nginx然后保存并退出。
现在,我们只需要键入以下命令即可启动 PHP 处理器:
sudo systemctl start php-fpm这将实施我们所做的改变。
接下来,设置 php-fpm 开机启动:
sudo systemctl enable php-fpm 第四步 – 配置Nginx来处理PHP页面现在,我们安装了所有必需的组件。我们仍然需要做的唯一配置更改是告诉 Nginx 使用我们的 PHP 处理器进行动态内容。