LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
一、安装开发包和库文件
在部署LNMP环境之前,首先,用户需要安装Nignx服务器,MySQL数据库,以及PhP环境相关的开发包和库文件,若缺少开发包或库文件,会导致后续LNMP环境部署失败。
1. 远程登录到“LNMP环境”的ECS服务器,请使用本实验提供的ECS服务器的“外网地址”,“用户名”和“密码”。
2. 输入命令cat /etc/redhat-release,查看当前Linux系统版本。
说明:本实验使用CentOS 6.5版本,若Linux系统为Ubuntu或者CentOS的低版本,可能会导致实验脚本不可用。
3. 执行命令:chkconfig iptables off,关掉防火墙,避免实验中出现服务器无法访问的情况。在真实的生产环境中,请根据实际需求,配置相应的防火墙规则。
4. 执行如下命令,安装LNMP环境所需的开发包和库文件,若不安装,则会导致后续的LNMP环境安装失败。例如:openssl等。
yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel
注意:拷贝时,请勿换行,否则会导致部分开发包和库文件没有安装,以及后续操作中,安装错误等问题。
安装过程需要等待1分钟左右。安装完成后,页面显示“Complete!”。
5. 在真实的生产环境中,若用户的服务器中,已安装的apache、mysql、php。请执行命令 yum remove mysql httpd php 卸载相关软件,否则系统原有软件会对部署的LNMP环境中数据有影响。由于本实验中提供的ECS环境,没有安装如上软件,因此,页面提示“Package xx available, but not installed.” (xx为软件名,例如mysql 等)。
至此,已完成LNMP环境的所需的基本开发包和库环境的相关安装和部署。
二、安装nginx服务
说明:本实验中,安装的Nginx服务器版本为Nignx 1.10.1。
1. 输入命令yum -y install nginx,通过yum的方式安装nginx。
等待几秒钟,页面显示“Complete!”。证明已完成Nignx的基本安装。
2. 使用命令 vi
/etc/nginx/conf.d/default.conf,进入nginx配置文件“default.conf”的编辑页面。
在Nginx配置文件的编辑页面中,默认监听使用ipv4和ipv6。
使用键盘方向键将光标移动到“listen [::]:80 default_server;”位置,并输入dd命令,删除此行,也就是删除其中监听为ipv6的配置。因为,目前阿里云使用的是ipv4,若使用ipv6,运行时会报错。完成后,输入“:wq”,保存退出编辑页面。
3. 输入命令service nginx start,启动nginx服务器。若页面显示“Starting nignx [OK]”,证明Nginx服务器已启动。若报错,请检查如上Nginx配置是否正确。
4. 打开浏览器,并在地址栏中,输入云中沙箱提供的ECS实例“公网地址”。若页面显示“Welcome to Nginx on EPEL!”,则证明Nginx服务器已部署且启动成功。
5. 执行命令chkconfig –levels 235 nginx on,设置2、3、5级别开机启动nginx。通过设置如上开机启动级别,在下次启动或者运行ECS服务器的时候,就可以自动运行Nignx服务器。
三、安装mysql数据库
说明:本实验中,安装的MySQL数据库版本为MySQL 5.1.73版本。
1. 首先,在安装MySQL之前,执行命令yum -y install mysql mysql-server mysql-devel ,安装mysql及其组件mysql-server,mysql-devel。
等待几秒钟,页面显示“Complete!”,证明已完成MySQL的安装。
2. 输入命令service mysqld start,启动mysql数据库。
等待几秒钟,页面显示“Starting mysqld [ok]”。证明mysql启动成功。
3. 输入命令mysql,进入MySQL数据库的命令页面,证明已经成功安装并运行MySQL数据库。
4. 在mysql的命令行中,输入exit,页面提示“bye”,退出mysql的命令页面。
5. 最后,执行命令chkconfig –levels 235 mysqld on,设置2、3、5级别开机启动mysql。这样,用户在下次启动ECS服务器时,ECS实例会自动运行mysql数据库,无需用户手动启动。
至此,完成MySQL的全部安装。
四、安装php语言环境
说明:本实验中,安装的是PHP 5.3.3版本。
1. 首先,用户执行如下命令,安装php及其常用扩展包。若缺少扩展包,可能会导致php安装或运行失败。
注意:如下命令不能换行,若换行,或导致扩展包或php安装失败。
yum -y install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap
等待几秒钟,界面显示“Complete!”,证明已成功安装Php语言基本环境。
2. 完成PHP语言基本环境的安装后。执行如下命令,安装PHP的相关组件。这样,可以使PHP支持MySQL、FastCGI模式。
yum install php-tidy php-common php-devel php-fpm php-mysql
说明:CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序一般运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次。
等待几秒钟,页面提示“Is this ok [y/N]”,输入y,允许安装大小总计为6.7M的组件。
等待几秒钟,页面提示“Complete!”,证明组件已安装成功。此时,PHP支持MySQL和FastCGI模式。
3. 执行命令service php-fpm start,启动php-fpm,界面显示“OK”。由于Nginx是个轻量级的HTTP server,必须借助第三方的FastCGI处理器才可以对PHP进行解析,PHP-FPM是一个第三方的FastCGI进程管理器,只用于PHP。
4. 最后,执行命令chkconfig –levels 235 php-fpm on,设置2、3、5级别开机启动php-fpm。这样,用户在下次启动ECS服务器时,ECS会自动运行php-fpm,无需用户手动运行。
至此,已成功安装LNMP的所有环境。下一小节中,用户将配置Nginx服务器,使Nginx支持php语言环境。
五、配置nginx支持php
本小节中,将设置Nginx 的配置文件,允许Nginx服务器支持PHP语言环境。
1. 在真实的生产工组环境中,一般均需要备份Nginx配置文件,这样的做法可以快速恢复原有Nginx配置信息。若之后用户需要对配置文件进行修改,均需要在修改前对配置文件进行备份,从而保证Nginx服务器的正常运行:
首先,将Nginx配置文件改为备份文件,执行如下命令:
mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
然后,拷贝默认的配置文件作为配置文件,执行如下命令:
cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
执行命令cd /etc/nginx,进入Nginx目录中,使用命令ls查看当前目录中有三个nignx的配置文件:Nginx配置文件“nginx.conf”,Nginx配置备份文件“nginx.confbak”,以及Nginx默认配置文件“nginx.conf.default”。
2. 执行命令vim /etc/nginx/nginx.conf,进入nginx配置文件的编辑页面,添加Nginx的fastcgi支持。
首先,将文件第45行修改为如下内容,也就是首页支持php语言。
index index.php index.html index.htm;
然后,将文件的65-72行代码前的注释“#”去掉,并替换”root”和“fastcgi_param”参数值为如下内容。也就是,使用/usr/share/nginx/html作为网站根目录,进行访问。
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
最后,完成如上配置信息修改后,按ESC并输入命令:wq保存并退出编辑页面。
3. 执行命令vim /etc/php.ini,进入文件php.ini的编辑页面,在结尾的“;Local Variables:”之前添加如下内容。完成后,执行:wq保存并退出编辑页面。
cgi.fix_pathinfo=1
至此,完成LNMP环境的全部搭建内容,下一个小节将验证搭建的LNMP的网站环境。
六、查看lnmp网站环境
本小节,主要验证搭建的LNMP服务器是否可用。
1. 首先,执行如下命令,重启nginx和php-fpm服务器。
service nginx restartservice php-fpm restart
注意:只有重启Nginx和php-fpm服务器。修改的Nginx配置文件中的参数才能生效。
2. 执行命令vim
/usr/share/nginx/html/info.php,在Nginx的网站访问的主目录下,创建一个info.php文件,并进入新建文件的编辑页面。并在编辑页面中,输入如下代码,用于显示php的基本信息页面。完成后,输入:wq,保存并退出编辑页面。
<?php
phpinfo();
?>
3. 最后,测试nginx是否成功解析php。打开本地浏览器,并在地址栏中输入:
若页面显示php介绍信息,证明LNMP环境搭建成功。
说明:xxx.xxx.xx.xx为云中沙箱提供ECS实例的“公网地址”。