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

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


状态: 已弃用

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

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


关于 Lemp

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

设置

本教程中的步骤要求用户具有 root 权限。 您可以在 初始服务器设置教程 的第 3 步和第 4 步中查看如何设置它。

第一步——更新 Apt-Get

在本教程中,我们将使用 apt-get 作为所有服务器程序的安装程序。 2012 年 5 月 8 日,发现了一个严重的 php 漏洞,我们必须下载所有最新的补丁软件来保护虚拟专用服务器。

让我们做一个彻底的更新。

sudo apt-get update

第二步——安装 MySQL

MySQL 是一个强大的数据库管理系统,用于组织和检索数据

要安装 MySQL,请打开终端并输入以下命令:

sudo apt-get install mysql-server php5-mysql

在安装过程中,MySQL 会要求您设置 root 密码。 如果您在安装程序时错过了设置密码的机会,以后可以很容易地在 MySQL shell 中设置密码。

安装 MySQL 后,我们应该使用以下命令激活它:

sudo mysql_install_db

通过运行 MySQL 设置脚本完成:

sudo /usr/bin/mysql_secure_installation

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

输入它。

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

然后提示将询问您是否要更改root密码。 继续并选择 N 并继续下一步。

对所有选项说“是”是最简单的。 最后,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...

完成后,您可以通过安装 PHP 来完成。

第三步——安装nginx

一旦 MySQL 设置完毕,我们就可以继续在 VPS 上安装 nginx。

echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/nginx-stable.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
sudo apt-get update
sudo apt-get install nginx

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

sudo service nginx start

您可以通过将浏览器定向到您的 IP 地址来确认 nginx 已安装您的 Web 服务器。

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

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

第四步——安装 PHP

要安装 PHP-FPM,请打开终端并输入这些命令。 下一步我们将配置nginx的详细信息和php的详细信息:

sudo apt-get install php5-fpm

第五步——配置php

We need to make one small change in the php configuration.Open up php.ini:

 sudo nano /etc/php5/fpm/php.ini

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

cgi.fix_pathinfo=0

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

我们需要在 php5-fpm 配置中再做一点小改动。打开 www.conf:

 sudo nano /etc/php5/fpm/pool.d/www.conf

找到该行,listen = 127.0.0.1:9000,并将 127.0.0.1:9000 更改为 /var/run/php5-fpm.sock。

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

保存并退出。

重启 php-fpm:

sudo service php5-fpm restart

第六步——配置nginx

打开默认的虚拟主机文件。

sudo nano /etc/nginx/sites-available/default

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

更新: 较新的 Ubuntu 版本默认创建一个名为 'html' 而不是 'www' 的目录。 如果 /usr/share/nginx/www 不存在,它可能被称为 html。 确保适当地更新配置。

 [...]
server {
        listen   80;
     

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

        server_name example.com;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

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

        # pass the PHP scripts to FastCGI server listening on the php-fpm socket
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                
        }

}
[...]

以下是更改的详细信息:

  • 将 index.php 添加到索引行。
  • 将 server_name 从本地主机更改为您的域名或 IP 地址(替换配置中的 example.com)
  • 在“location ~ \.php$ {”部分更改正确的行

保存并退出

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

我们可以很快看到新的 php 配置的所有细节。

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

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

添加以下行:

<?php
phpinfo();
?>

然后保存并退出。

重启nginx

sudo service nginx restart

访问 http://youripaddress/info.php 可以看到 nginx 和 php-fpm 的配置细节

您的 LEMP 堆栈现在已在您的虚拟专用服务器上设置和配置。

看更多

安装 LEMP 后,您可以 安装 WordPress,继续使用 MySQL (A Basic MySQL Tutorial) 或 安装 phpMyAdmin创建 SSL证书,或安装FTP服务器

埃特尔·斯维尔德洛夫