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安装非常的简单,配置文件非常简洁,性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
准备一台web服务器,例如:web01外网地址10.0.0.8
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是一款由俄罗斯的程序设计师所开发的高性能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服务
(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: 工作进程 ---处理用户的访问请求 员工
安装数据库软件
[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 --密码登录
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
3.进行访问测试
1.编写php代码文件
[root@web02 /html/www]# vim test_mysql.php
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)
看到这个界面,那么恭喜你网站搭建成功啦!