LNMP架构介绍
LNMP架构和LAMP架构很像,只不过一个用的是Apache,一个用的是Nginx。LNMP就是Linux+Nginx+MySQL+PHP,Nginx和Apache一样都是web服务器。
有一点不同的是在LNMP结构里php会启动一个服务:php-fpm,而LANP中php只是作为Apache的一个模块存在。Nginx会把用户的动态请求交给php服务去处理,这个php服务就会去和数据库进行交互。用户的静态请求Nginx会直接处理,Nginx处理静态请求的速度要比Apache快很多性能上要好,所以Apache和Nginx在动态请求处理上区别不大,但如果是静态请求处理的话就会明显发现Nginx要快于Apache,而且Nginx能承受的并发量要比Apache大,可以承受好几万的并发量,所以大一些的网站都会使用Nginx作为web服务器。
LNMP图解
搭建步骤
本次搭建的测试服务器为centos7
安装yum源和安装rpel源
对原文件进行备份
#cd /etc/yum.repos.d
#mkdr bak
#mv *.repo bak/
配置网络源
#wget http://mirrors.aliyun.com/repo/Centos-7.repo
#yum clean all
#yum makecache
安装epel源
#yum install -y epel-release
安装nginx并配置服务
安装nginx服务
#yum install nginx
重要文件目录
主配置文件:# vim /etc/nginx/nginx.conf
默认网站目录:/usr/share/nginx/html
日志文件:error_log /var/log/nginx/error.log;
error_log /var/log/nginx/access.log
修改nginx配置文件
#vim /etc/nginx/nginx.conf
在文件最后一个}号前添加:include vhost/*.conf;
在/etc/nginx目录下新建vhost目录,并在下面新建book.conf和discuz.conf两个域名配置文件。配置文件编辑如下:
book.conf
server{
listen 192.168.0.104:80;
server_name www.book.com;
location / {
root /usr/share/nginx/html/book;
index index.html; #静态网页首页
}
location ~ \.php$ {
root /usr/share/nginx/html/book;
fastcgi_pass 127.0.0.1:9000; #动态推送到fastcgi的参数,如果是两台服务器要以ip的形式写
fastcgi_index index.php; #动态网页首页
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
discuz.conf
server{
listen 192.168.0.104:80;
server_name www.discuz.com;
location / {
root /usr/share/nginx/html/upload;
index index.php;
}
location ~ \.php$ {
root /usr/share/nginx/html/upload;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
将公司网站文件book和discuz都放到默认目录下
前面有写到dns的搭建,这里就不搭建了,用主机的hosts代替解析域名
vim /etc/hosts
配置完成后记得重启服务哦~~~
systemctl restart nginx #重启服务
systemctl enable nginx #开机自启
systemctl status nginx #查看状态
安装mysql数据库
[root@localhost ~]# yum install mariadb mariadb-server mariadb-libs mariadb-devel
[root@localhost ~]# rpm -qa |grep maria #检查安装包
开启mysql服务并设置为开机自启
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
数据库安全设置
按提示操作
[root@localhost ~]# mysql_secure_installation
登录数据库测试
[root@localhost ~]# mysql -u root -p
这里我们将book的数据库导入进去(注意登录的目录要有数据库文件)
创建guestbook数据库并使用
create database guestbook;
use guestbook;
导入并查看
[root@localhost home]# mysql -u root -p guestbook<guestbook.sql
安装PHP环境
这里由于使用的是nginx,所以会多安装一个php-fpm
yum -y install php php-fpm
将php和mysql关联起来
yum install php-mysql
安装php常用模块
yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath
修改php.ini文件,提高安全性
将nginx.conf.default配置文件中的以下内容复制到nginx.conf或者相应网站配置文件的server中,并做相应修改(上文配置中有写的,如果是一个网站的发布就写到主配置文件,如果是多个网站,就需要写到相应网站的配置文件中)
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php,phpinfo.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
如本实验发布了两个网站,我的主配置文件如图
测试网站是否发布成功
如不能访问网页如何排查
- 重启各项服务
- 检查配置文件(包括主配置文件和网站配置文件)
- 检查网站的目录是否有网页
- 关闭防火墙和安全机制