LNMP架构部署网站---“一课一得”

前言

LNMP架构,是指在Linux平台下,由运行Nginx的web服务器,运行PHP的动态页面解析程序和运行MySQL的数据库组成的网站架构,也是当前常用的系统架构之一。

一、什么是LNMP架构部署

LNMP架构,是指在Linux平台下,由运行Nginx的web服务器,运行PHP的动态页面解析程序和运行MySQL的数据库组成的网站架构,也是当前常用的系统架构之一。
在LNMP架构中,Nginx本身只负责静态页面的处理,当需要处理动态页面时,则需要Nginx将相关.php页面转交给php-fpm来进行处理,php-fpm会将PHP页面解析成html文件,然后交给Nginx进行处理。
与LAMP架构相比,LNMP的主要区别在于对PHP的处理上,LAMP对于PHP动态资源的处理是通过Apache的libphp5.so模块进行的,该模块内嵌如Apache中,而Nginx对PHP动态资源的处理则是通过php-fpm进行的,php-fpm是一个独立的模块,因此,在搭建LNMP架构时,Nginx和php-fpm都需要进行开启。LNMP架构如下所示:

二、LNMP部署实战

接下来,我们就进行LNMP的部署实战。

(一)YUM源配置


在进行实战YUM部署LNMP前,我们要首先配置LNMP的YUM源。想要YUM安装Nginx,就必须安装EPEL的扩展源,可以执行以下命令进行EPEL扩展源的安装:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

(二)Nginx安装与部署


Nginx的安装非常简单,只需要执行命令:

yum install -y nginx



即可,Nginx安装完毕后,Nginx的启动命令为:

systemctl start nginx



启动后,尝试访问Nginx页面,结果如下:

以这种方式安装的Nginx,其默认配置文件为/etc/nginx/nginx.conf,默认根目录为/usr/share/nginx/html。

(三)PHP安装与部署


接下来,我们需要安装PHP,并使得PHP支持Nginx。首先,安装PHP和PHP与Nginx的对接php-fpm,执行命令:

yum install -y php php-fpm



在安装完成后,我们还需要修改Nginx的配置文件,在http模块的server模块下,添加如下内容:

location ~ .php{
    root html;  fastcgi_pass 127.0.0.1:9000;  fastcgi_index index.php;  fastcgi_param SCRIPT_FILENAME{    root html;  fastcgi_pass 127.0.0.1:9000;  fastcgi_index index.php;  fastcgi_param SCRIPT_FILENAMEdocument_root$fastcgi_script_name;
include fastcgi_params;
}



添加后的页面如下所示:

在以上配置中,location模块是Nginx的一个定位模块,location后面的“~”表示进行正则表达式的匹配,匹配的对象是以.php结尾的动态资源。这样,当这样的资源被匹配到之后,就会进行location模块中指定的处理。fastcgi_pass指定了php-fpm模块的IP地址和端口号,fastcgi_param参数指定了读取php文件的位置。

四)MySQL安装与部署


最后,我们来安装MySQL,MySQL的安装比较简单,只需要执行命令:

yum install -y mariadb mariadb-server



安装完成后,发现当前系统打开了3306、9000和80端口,如下所示:

为了使得我们的PHP支持MySQL,还需要安装php-mysql,如下所示,这样,安装完成后,我们的PHP就可以与MySQL对接了。

三.在centos下安装mysql

如果你是CentOS可以使用以下方法安装mysql

在centos下安装mysql

在CentOS下安装MySQL的步骤如下:

首先,打开终端。

添加MySQL官方的Yum仓库。你可以使用官方的仓库配置,也可以使用第三方仓库,如webtatic。这里我们使用官方的仓库:

yum install wget

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm


安装MySQL服务器:

sudo yum install mysql-community-server --nogpgcheck


启动MySQL服务:

sudo systemctl start mysqld


查找临时生成的root密码:

sudo grep 'temporary password' /var/log/mysqld.log


安全设置MySQL,包括设置root密码和删除匿名用户:

sudo mysql_secure_installation


如果需要,可以开机启动MySQL服务:

sudo systemctl enable mysqld

cd /etc

vim my.cnf


在文件里面输入skip-grant-tables

启动服务

systemctl start mysql


登录MySQL,使用root账户和刚才设置的密码:

systemctl start mysql


以上步骤会安装MySQL服务器,并设置好基本的安全性。记得在实际生产环境中,你应该创建自己的用户和数据库,并且设置复杂的密码。

5.mysql的增删查改

insert into student values('1111111','hsdu','15664',0);

select * from student;

update student set stuNo=155545 where name='00'

insert into student values();


 

四、LNMP架构配置


当Nginx,MySQL,PHP都安装完成后,就可以通过配置文件将他们联系起来。

修改PHP的配置文件,修改运行账户等信息

vim /usr/local/php5.6/etc/php-fpm.conf
user = www
group = www
pid = run/php-fpm.pid
listen = 0.0.0.0:9000



以上三项为主要修改配置,下面有几项优化PHP,不添加也不影响结果

pm.max_children =300    #子进程的最大打开数
pm.start_servers =20    #启动时创建子服务的最大个数
pm.min_spare_servers = 20    #空闲时子进程的最小数量
pm.max_spare_servers = 100    #空闲时子进程的最大数量

修改Nginx配置文件,让其支持PHP页面

vim /usr/local/nginx/conf/nginx.conf


location / {
            root   html;
            index  index.php index.html index.htm; #添加index.php
        }
        #在以上模块直接粘贴以下配置项
location ~ .*\.(php|php5)?$ {
            root html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
            fastcgi_cache_valid 200 302 1h;
            fastcgi_cache_valid 301 1d;
            fastcgi_cache_valid any 1m;
            fastcgi_cache_min_uses 1;
            fastcgi_cache_use_stale error timeout invalid_header http_500;
            fastcgi_cache_key http://$host$request_uri;
}


其他配置不用修改,直接在location / {}中添加index.php网页支持,并在下面直接复制location ~ .*\.(php|php5)?$ {}即可。

创建PHP测试页面

vim /usr/local/nginx/html/index.php


<?php
        phpinfo();
?>

创建PHP网页连接接MySQL的测试页面

vim /usr/local/nginx/html/mysql.php


<?php
$link=mysql_connect('192.168.1.123','lnmp','123456');
if ($link)echo "mysql连接成功......";
mysql_close();
?>

其中$link是用于连接MySQL的,格式为:mysql_connect(‘IP地址’,‘MySQL用户’,‘密码’);,若是连接成功了,就会输出"mysql连接成功…"字样。

进入数据库,创建测试用户

mysql> grant all on *.* to 'lnmp'@'%' identified by '123456';
mysql> flush privileges;

接下来重启Nginx和PHP,重载配置

/usr/local/nginx/sbin/nginx -s reload
/etc/init.d/php-fpm restart

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值