前几天刚做完以LAMP为基础的搭建个人博客,今天我们就来给大家演示一下如何以LNMP为基础搭建“小米商城”,从字面意思上我们可以知道,LNMP指的是Linux、Nginx、Mariadb(Mysql)、php-fpm(php),那么我们既然有了apache为什么还要选择Nginx呢?

    因为LNMP架构具有轻量、跨平台、高性能等特点,能支持高并发请求。数据复制时,官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数(这得益于Nginx使用了最新的epoll模型,apache使用的是select)通信机制采用epoll模型,支持更大的并发连接,而且其占有内存少,并发能力强,中国大陆使用nginx的网站用户有:百度、新浪、腾讯、网易、淘宝,其中淘宝更是在其上二次开发了tengine!

    步入正题,首先我们需要先安装几个包

    yum install nginx mariadb-server php-fpm php-mysql

    systemctl start nginx mariadb php-fpm

    然后修改配置文件,由于是为了和php链接,所以我们可以考虑把nginx.conf.default覆盖成nginx.conf

    cp nginx.conf.default nginx.conf

    vim /etc/nginx.conf

    user nobody   #本行是注释掉的,我们打开注释,使用权限较小的nobody

    http {

    tcp_nopush     on; #这两行是为了加速访问

    tcp_nodelay    on;

    }

    server {

     root /data/web; 定义访问的文件目录在/data/web,所以下面的root可以考虑删掉

    location / {

        index index.php index.html index.htm; #添加一个index.php

    }     

    }

    location ~ \.php$ {

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }   

    然后是php的相关文件,/etc/php.ini其中修改时钟配置date.timezone = Asia/Shanghai;设置short_open_tag = On

    vim /etc/php-fpm.d/www.conf

     user = nobody   #修改运行的人和组

     group = nobody

     接着把我们准备好的小米商城压缩包(可以在这http://39.108.232.71/download/下载)上传到系统中,解压到对应的路径

      unzip -d /data/web xiaomi.zip

    chown -R nobody:nobody /data/web  #更改/data/web下的所有人,所有组

    mysql

    create database xiaomi; #新建小米数据库

    然后访问http://ip/ebak/index.php,登录账号为admin,密码为123456,

参数设置,恢复设置,其中恢复的时候选择xiaomi为恢复数据库,这样就把我们的数据库导入到xiaomi库中了,我们http://ip/index.php,可以正常访问。

    如果出现什么数据库访问失败127.0.0.1:3306,我们进入我们解压后的包中访问配置文件

    vim /data/web/data/config.php

    $db_host   = "127.0.0.1:3306"

    // 数据库名称

    $db_name   = "xiaomi";

    // 数据库用户名

    $db_user   = "root";

    // 数据库密码

    $db_pass   = "";  #这些都是我们刚才在网页中填写的一些内容

    然后再此访问http://ip/index.php,正常访问,还可以点击,如果我们想要访问后台,直接输入http://ip/admin/index.php,可以修改其中的商店名称、标题啥的,这些都是模拟的电商网站后台管理,我们的在以后的生产环境中也都大同小异,那么大家学到了吗?有问题可以评论哦。