前言
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