一、LNMP环境介绍

        LNMP代表的就是:Linux系统下“Nginx+Mysql+PHP”这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。MYSQL是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入式HTML文本的脚本语言。这4种软件均为免费开源软件,组合到一起,就成为一个免费、高效、扩展性强的网站服务系统。

        搭建网站服务器环境有很多可选方案,例如微软的Windows2012、LAMP等。那么为什么要使用LNMP呢?LNMP的优势主要有以下4点。

      (1)作为web服务器:相比Apache,Nginx使用更少的资源,支持更多的并发连接,实现更高效的效率。

      (2)作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx用C编写,不仅是系统资源开销还是CPU使用效率都比Perlbal要更好的多。

      (3)作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也就是作为邮件代理服务器),Last/fm描述了成功并且美妙的使用经验。

      (4)Nginx安装非常的简单,配置文件非常简洁,性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。

二、LNMP环境搭建

准备一台web服务器,例如:web01外网地址10.0.0.8

(一)安装linux操作系统(略)

(二)安装PHP软件

1.使用remi源安装php
yum remove -y epel-release.noarch     --(如果没有这个包可以不用卸载)
yum install -y epel-release
yum install -y https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm     
yum --enablerepo=remi-php71 install -y php php-cli php-common php-devel php-embedded php-gd php-mbstring php-pdo php-xml php-fpm php-mysqlnd php-opcache php-mcrypt php-pecl-memcached php-pecl-mongodb php-pecl-redis
2.编写配置文件(24/26行)
vim /etc/php-fpm.d/www.conf
user = www
group = www
PS:创建一个www用户
3.启动php服务
systemctl start php-fpm.service 
systemctl enable php-fpm.service
systemctl status php-fpm.service

(三)安装配置Nginx

        Nginx是一款由俄罗斯的程序设计师所开发的高性能web和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。在连接并发的情况下,Nginx和Apache服务器不错的替代品。

        传统上基于进程或线程模型架构的Web服务通过每进程或每线程处理并发连接请求,极可能在网络和I/O操作时产生阻塞,其另一个必然结果则是对内存或CPU的利用率低下。但Nginx是按照同时运行多个进程:一个主进程(master)和几个工作进程(worker),配置了缓存时还会有缓存加载器进程(chche loader)缓存管理器进程(cache manager)等。这时,所有进程均是仅含有一个进程,并主要通过“共享内存”的机制实现进程间通信。这种模式的优势是性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少,以及并发能力强。

(1)yum官方源安装方法

第一个历程: 更新nginx官方yum源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
	
第二个历程: yum安装nginx软件
yum install -y nginx

第三个历程: 启动nginx服务,检查服务是否安装正确
systemctl start nginx
systemctl enable nginx
测试访问nginx服务

  测试访问nginx,出现下图说明安装成功啦

(2)nginx服务配置文件

vim /etc/nginx/nginx.conf      	 --- 主配置文件
第一个部分: 配置文件主区域配置
user  www;               	 --- 定义worker进程管理的用户
worker_processes  2;        ---定义有几个worker进程  == CPU核数 / 核数的2倍
error_log  /var/log/nginx/error.log warn;   --- 定义错误日志路径信息
pid        /var/run/nginx.pid;              --- 定义pid文件路径信息
	
第二个部分: 配置文件事件区域
events {                    
    worker_connections  1024;   --- 一个worker进程可以同时接收1024访问请求
}
	
第三个部分: 配置http区域
http {
   include       /etc/nginx/mime.types;      --- 加载一个配置文件
   default_type  application/octet-stream;   --- 指定默认识别文件类型
   log_format  oldboy  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
		          --- 定义日志的格式		
   access_log  /var/log/nginx/access.log  oldboy;
		          --- 指定日志路径          
   sendfile        on;   ???
   #tcp_nopush     on;   ???
   keepalive_timeout  65;   --- 超时时间
   #gzip  on;
   include /etc/nginx/conf.d/*.conf;        --- 加载一个配置文件
}

补充: nginx的进程
master process:  主进程		---管理服务是否能够正常运行   boss
worker process:  工作进程	---处理用户的访问请求         员工  

(四)Mysql服务安装配置

安装数据库软件
[root@web01 ~]# yum install mariadb-server mariadb -y
启动数据库服务
[root@web01 ~]# systemctl start mariadb.service 
[root@web01 ~]# systemctl enable mariadb.service
创建数据库的密码信息
[root@web01 ~]# mysqladmin -u root  password '123456'
[root@web01 ~]# mysql -u root -p123456   --密码登录

三、实现LNMP之间建立关系

(一) 实现nginx + php 建立关系

1.编写nginx文件
[root@web02 /etc/nginx/conf.d]# vim www.conf 
server {
    listen        80;
    server_name   www.abins.cn;
    location   / {
    root  /html/www;
    index index.php index.html;
  }
    location ~ \.php$ {
    root /html/www;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass  127.0.0.1:9000;
    include fastcgi_params;

  }
}
2.编写动态资源文件
[root@web02 /html/www]# vim test_php.php 
<?php
phpinfo();
?>
3.进行访问测试

(二)实现php + mysql 建立关系

1.编写php代码文件
[root@web02 /html/www]# vim test_mysql.php
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$conn = mysqli_connect($servername, $username, $password);
if ($conn) {
     echo "mysql successful by root !\n";
  }else{
     die("Connection failed: " . mysqli_connect_error());
   }
?>
2.进行访问测试

五、部署搭建网站页面(代码上线)

第一个历程: 获取代码信息(git)---使用开源的网站代码
    www网站页面: http://www.dedecms.com/
    bbs网站页面: http://www.discuz.net/forum.php
    blog网站页面: https://cn.wordpress.org/
    wecenter网站页面: http://www.wecenter.com/?copyright
第二个历程: 将代码解压,将解压后信息放入到站点目录中

[root@web02 /html]# rz -E
rz waiting to receive.
[root@web02 /html]# ll
-rw-r--r-- 1 root root 11199196 Apr  7 20:40 wordpress-5.2.1.tar.gz
[root@web02 /html]# tar xf wordpress-5.2.1.tar.gz 
[root@web02 /html]# ll
drwxr-xr-x 5 nobody 65534     4096 May 22  2019 wordpress
-rw-r--r-- 1 root   root  11199196 Apr  7 20:40 wordpress-5.2.1.tar.gz
drwxr-xr-x 2 www    www         48 May 24 15:17 www
[root@web02 /html]# mv wordpress/* www/

第三个历程: 修改站点目录权限

chown -R www.www www

第四个历程: 进行网站页面初始化操作

[root@web02 ~]# mysql -u root -p123456               --以root身份登录MySQL
MariaDB [(none)]> create database wordpress;         --创建wordpress数据库
Query OK, 1 row affected (0.09 sec)

MariaDB [(none)]> show databases;                    --检查wordpress数据库是否创建成功
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';          --创建wordpress用户,密码为123456                                 
MariaDB [(none)]> select user,host from mysql.user;  --查看数据库user表的用户信息和主机信息
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| root      | 127.0.0.1 |
| root      | ::1       |
|           | localhost |
| root      | localhost |
| wordpress | localhost |
|           | web02     |
| root      | web02     |
+-----------+-----------+
7 rows in set (0.10 sec)

看到这个界面,那么恭喜你网站搭建成功啦!

 

 

 

Logo

快速构建 Web 应用程序

更多推荐