如何在CentOS6上安装Linux、nginx、MySQL、PHP(LEMP)堆栈

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。

原因: CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) and no longer receives security patches or updates. For this reason, this guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。

以下 DigitalOcean 教程可能很有趣,因为它概述了在 CentOS 7 服务器上安装 LEMP 堆栈:




关于 Lemp

LEMP 堆栈是一组用于启动和运行 Web 服务器的开源软件。 该首字母缩写词代表 Linux、nginx(发音为 Engine x)、MySQL 和 PHP。 由于服务器已经在运行 CentOS,因此需要处理 linux 部分。 这是安装其余部分的方法。

第一步——安装所需的存储库

我们将使用 Yum 安装所有必需的软件。 但是,由于 nginx 不能直接从 CentOS 获得,我们需要安装 epel 存储库。

sudo yum install epel-release

第二步——安装 MySQL

下一步是开始在虚拟专用服务器上安装服务器软件,从 MySQL 和依赖项开始。

 sudo yum install mysql-server

下载完成后,重启 MySQL:

sudo /etc/init.d/mysqld restart

您可以使用以下命令对 MySQL 进行一些配置:

sudo /usr/bin/mysql_secure_installation

提示将询问您当前的 root 密码。

由于您刚刚安装了 MySQL,因此您很可能没有安装 MySQL,因此请按 Enter 将其留空。

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

然后提示将询问您是否要设置root密码。 继续并选择 Y 并按照说明进行操作。

CentOS 自动设置 MySQL 的过程,询问您一系列是或否的问题。

对所有选项说“是”是最简单的。 最后,MySQL 将重新加载并实施更改。

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

第三步——安装nginx

与 MySQL 一样,我们将使用 yum 在我们的虚拟专用服务器上安装 nginx:

sudo yum install nginx

nginx 不会自行启动。 要让 nginx 运行,请键入:

sudo /etc/init.d/nginx start

您可以通过将浏览器定向到您的 IP 地址来确认 nginx 已安装在您的虚拟专用服务器上。

您可以运行以下命令来显示您的服务器的 IP 地址。

ifconfig eth0 | grep inet | awk '{ print $2 }'

第四步——安装 PHP

php-fpm 包位于 REMI 存储库中,此时已禁用。 我们需要做的第一件事是启用 REMI 存储库并安装 php 和 php-fpm:

sudo yum install php-fpm php-mysql

第五步——配置php

我们需要对 php 配置做一点小改动。 打开 php.ini:

 sudo vi /etc/php.ini

找到 cgi.fix_pathinfo=1 行,并将 1 更改为 0。

cgi.fix_pathinfo=0

如果此数字保持为 1,则 php 解释器将尽最大努力处理尽可能靠近请求文件的文件。 这是一个可能的安全风险。 相反,如果这个数字设置为 0,解释器将只处理确切的文件路径——这是一个更安全的选择。 保存并退出。

第六步——配置nginx

打开默认的 nginx 配置文件:

sudo vi /etc/nginx/nginx.conf

将工作进程的数量增加到 4,然后保存并退出该文件。

现在我们应该配置 nginx 虚拟主机。

为了使默认的 nginx 文件更简洁,虚拟主机详细信息位于不同的位置。

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

配置应包括以下更改(更改的详细信息在配置信息下):

#
# The default server
#
server {
    listen       80;
    server_name example.com;

   
    location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

以下是更改的详细信息:

  • 在索引行中添加 index.php。
  • 将 server_name 更改为您的域名或 IP 地址(替换配置中的 example.com)
  • 将根目录更改为 /usr/share/nginx/html;
  • 取消注释以 "location ~ \.php$ {" 开头的部分,
  • 更改根目录以访问实际的文档根目录,/usr/share/nginx/html;
  • 更改 fastcgi_param 行以帮助 PHP 解释器找到我们存储在文档根目录中的 PHP 脚本。

保存并退出

打开 php-fpm 配置:

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

将用户和组中的apache替换为nginx:

[...]
; 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 Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
[...]

通过重新启动 php-fpm 完成。

sudo service php-fpm restart

第七步——结果:创建一个 php 信息页面

虽然安装了 LEMP,但我们仍然可以通过创建一个快速的 php 信息页面来在线查看和查看组件

要设置它,首先创建一个新文件:

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

添加以下行:

<?php
phpinfo();
?>

然后保存并退出。

重启 nginx 使所有更改生效:

sudo service nginx restart

最后访问您的 php 信息页面(确保将示例 IP 地址替换为正确的):http://12.34.56.789/info.php

它应该类似于 this

第八步——设置自动启动

你快完成了。 最后一步是将所有新安装的程序设置为在 VPS 启动时自动启动。

sudo chkconfig --levels 235 mysqld on
sudo chkconfig --levels 235 nginx on
sudo chkconfig --levels 235 php-fpm on

埃特尔·斯维尔德洛夫