在Ubuntu Linux 14.04 LTS上安装LEMP(Linux,Nginx,MySQL和PHP)堆栈
如何使用命令行选项在动态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。