在Ubuntu Linux 14.04 LTS上安装LEMP(Linux,Nginx,MySQL和PHP)堆栈

时间:2020-01-09 10:40:57  来源:igfitidea点击:

如何使用命令行选项在动态Linux应用程序上安装Ubuntu Linux 14.04 LTS服务器上的LEMP堆栈?

作为全球最受欢迎的Linux发行版之一,Ubuntu已于2014年4月17日发布了最新版本。最新版本为14.04,代号为Trusty Tahr。 Ubunt 14.04是LTS(长期支持)版本。这意味着自发布日期起的未来5年内将支持Ubuntu 14.04。在本教程中,我们将介绍在Ubuntu Linux v14.04上的Nginx,MySQL和PHP安装。

Ubuntu 14.04(Trusty Tahr)版本中有哪些新功能?

您可以在theitroad.local上看到它,或访问ubuntu.com上的Ubuntu主页。

Nginx安装

Nginx是Linux世界中功能强大的Web服务器之一。

Nginx是一个免费的,开源的高性能HTTP服务器和反向代理,就像IMAP/POP3代理服务器一样。
现在,我们将安装Nginx Web服务器。

首先,确保系统是最新的:

$ sudo apt-get update
$ sudo apt-get upgrade

#1下载并安装Nginx

下载和安装Nginx的最简单方法是使用apt-get命令。
这是命令:

$ sudo apt-get install nginx

在Ubuntu Linux上下载并安装Nginx

只需等到在系统上完成安装即可。

#2测试Nginx

完成后,您可以打开浏览器并输入URL http://localhost或http://your_ip_address进行测试。
如果一切正常,您将看到Nginx欢迎页面:
Ubuntu Linux上的Welcome Nginx页面

在Ubuntu上安装MySQL

MySQL是Linux世界上功能最强大的数据库管理系统之一。
接下来,我们将在PHP支持下安装它。

#1安装MySQL和PHP支持

执行以下命令:

$ sudo apt-get install mysql-server php5-mysql

Ubuntu Linux安装MySQL以使用PHP管理站点数据

在安装过程中,MySQL将要求您输入MySQL的root密码,否则安装将不会继续。
执行所需的密码,然后按OK继续安装。

#2测试MySQL

一旦mysql安装完成,我们就可以对其进行测试。
打开控制台,然后执行以下命令:

$ mysql -u root -p

如果您正确输入密码,您将看到mysql提示符。

#3保护对MySQL的访问

如果我们打算将MySQL用作生产数据库,则可能需要对其进行保护。

MySQL提供了一个Shell脚本来帮助我们保护它。
只需在控制台上执行以下命令:

$ sudo mysql_secure_installation

这是执行此操作的步骤:

1.输入您的root密码

输入您当前的root密码以继续下一步。

MySQL输入您的root db密码

2.更改root密码

如果要更改它,请按Y。
否则,请按N。

3.删除匿名用户

建议删除匿名用户,以减轻可以登录到数据库的风险。

4,禁止远程root登录

为了确保没有人可以从另一台计算机上以root用户的身份远程远程数据库,我们需要禁止root用户远程登录。

5,删除测试数据库

有时某些MySQL安装会创建一个名为test的数据库以进行测试。
如果不使用它,我们可以将其删除。

6,重新加载权限表

然后,我们需要重新加载特权表,以确保到目前为止所做的所有更改都将立即生效。

7,完成

用于服务器端脚本的PHP安装

由于PHP很流行,因此许多网站都是使用PHP语言构建的。
截至2013年1月,PHP已安装在2.4亿多个网站上。
现在我们要在Ubuntu 14.04上安装PHP

#1下载并安装PHP

和往常一样,我们可以使用apt-get命令下载并安装PHP。
只需在您的Ubuntu控制台或基于ssh的会话上执行以下命令:

$ sudo apt-get install php5-fpm

在Ubuntu上为服务器端处理安装PHP

并等待安装完成。

配置Nginx以在Ubuntu上使用PHP和MySQL Server

现在,我们已经安装了所有组件。
下一步是我们需要使用PHP和MySQL配置Nginx。
让我们开始配置它们。

#1配置PHP5-FPM

PHP5-FPM配置文件位于/etc/php5/fpm/php.ini中。
用您的文本编辑器打开它

$ sudo vi /etc/php5/fpm/php.ini

更改此参数,从:

cgi.fix_pathinfo=1

至:

cgi.fix_pathinfo=0

保存并关闭文件,然后重新启动php5-fpm服务,执行:

$ sudo service php5-fpm restart

#2配置Nginx

Nginx配置文件位于/etc/nginx/nginx.conf。
但基本上,我们不需要触摸它。

Nginx网站的配置位于/etc/nginx/sites-available/default文件中。
打开它,然后取消注释行:

location ~ \.php$ {
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
#       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
#       # With php5-cgi alone:
#        fastcgi_pass 127.0.0.1:9000;
#       # With php5-fpm:
         fastcgi_pass unix:/var/run/php5-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
}

然后重新启动服务。

$ sudo service nginx restart

请确保在Ubuntu 14.04上,我们不能使用fastcgi_pass 127.0.0.1:9000。
因此,请确保该行已注释。
否则,在我的机器上,出现此错误:

$ tail /var/log/nginx/error.log
2014/11/04 16:57:04 [emerg] 3216#0: "fastcgi_pass" directive is not allowed here in /etc/nginx/sites-enabled/default:59
2014/11/04 16:58:21 [emerg] 3256#0: "fastcgi_pass" directive is not allowed here in /etc/nginx/sites-enabled/default:59

在Ubuntu 14.04上,我使用以下行:

fastcgi_pass unix:/var/run/php5-fpm.sock

重新启动Nginx时,仍然出现以下错误消息:

2014/11/04 17:02:05 [emerg] 3295#0: "fastcgi_pass" directive is not allowed here in /etc/nginx/sites-enabled/default:61
2014/11/04 17:04:58 [emerg] 3410#0: "fastcgi_pass" directive is not allowed here in /etc/nginx/sites-enabled/default:61

请确保您已经取消注释此行:

location ~ \.php$ {

#3配置MySQL

完成配置部分后,现在我们需要对其进行测试,以确保我们的配置能够按要求工作。
在Ubuntu 14.04上,根文档文件夹位于/usr/share/nginx/html中。
因此,使用以下代码创建一个名为/usr/share/nginx/html/phpinfo.php的文件:

<? phpinfo(); ?>

重新启动PHP-FPM和Nginx之后,打开浏览器并浏览到php文件,我们只有一个空白屏幕。
屏幕上没有错误消息。

PHP-FPM和Nginx日志文件上没有错误消息。
然后,我们更改了Nginx根文档上的/usr/share/nginx/html/phpinfo.php文件代码,如下所示:

<?php phpinfo(); ?>

然后再次打开浏览器并输入url http://your_ip_address/phpinfo.php看来,默认情况下,我们不能像这样使用简短的php-tag:

<? ... your code ... ?>

要启用简短的php标签,我们需要在php.ini文件中更改short_open_tag参数的值:将值从Off更改为On。
然后重新启动php5-fpm:

sudo service php5-fpm restart

然后重试以测试您的phpinfo文件。
接下来,我们将查看是否启用了MySQL支持。
向下滚动浏览器上的php配置屏幕,如果在那里看到MySQL阻止,则说明MySQL支持已启用。
现在您可以在Ubuntu服务器上使用Nginx,PHP5和MySQL。