lnmp架构介绍组成部分:
lnmp架构有很多架构,下面简单介绍几种
早期
: linux nginx(实现处理静态访问 实现负载均衡) mysql(存储用户数据信息)PHP(处理动态请求 PHP程序)
普遍
:linux nginx mysql Tomcat
新型
: linux nginx mysql python
lnmp架构原理过程
架构原理:
1)用户向网站发起访问
静态访问
动态访问
2)nginx程序接受用户HTTP请求信息
静态请求信息 由nginx程序直接作出响应
动态请求信息 由nginx借助fastcgi_pass指令将请求通过fastcgi接口发送给PHP程序进行处理
3)PHP程序接受nginx发送动态请求信息
本身可以直接处理 通过解析器直接处理 转换成HTML代码信息返回给nginx程序
需要调用数据库处理 通过解析器访问数据库 数据库会进行处理后返回给PHP结果
4)nginx接受PHP返回的信息
将结果信息返回给用户
分析lnmp架构问题:
1)nginx程序是否出现问题
2)PHP服务程序是否出现问题
3)mariadb服务程序是否出现问题
lnmp部署过程
linux部分:
关闭防火墙以及selinux 确保./tmp目录权限是1777
最好将yum源换为阿里源
nginx部分:
第一个历程:查看软件是否安装
rpm -qa nginx gcc gcc-c++ autoconf yum-utils
第二个历程:安装软件程序依赖
yum install gcc gcc-c++ autoconf yum-utils
第三个历程:配置nginx官方仓库源文件
提示
:最好将本地配置好的阿里源文件给移动而不是删除
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
第四个历程:启动服务进程
systemctl start nginx # 启动Nginx程序进程
systemctl enable nginx
systemctl stop nginx # 停止nginx程序进程
systemctl reload nginx # 平滑重启nginx程序进程
第五个历程:检查服务进程
ps -ef | grep nginx # 检查服务进程是否存在
netstat -lntup | grep nginx # 检查服务进程端口信息
数据库部分:
提示
将上一步操作的nginx官方yum源文件移走,将阿里源文件移动回来
第一个历程:下载数据库软件
yum install mariadb-server mariadb -y
第二个历程:启动数据库程序服务进程
systemctl start mariadb.service
systemctl enable mariadb.service
PHP部分:
第一个历程:解决yum安装软件冲突问题
yum remove php-mysql php php-fpm php-common
第二个历程:准备yum安装软件扩展源信息
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
提示
此命令操作过程很容易受到网络波动的影响导致下载失败,并且使用别人下载好的yum源文件是不能成功的,使用本地yum源方式也不可以实现。
如果受到网络波动影响不能正常下载:
1)不同时间段多试几次
2)将https改为http再进行测试(我是这么成功的)
3)修改dns地址 233.5.5.5 114.114.114.114 多换几个
第三个历程:利用yum安装PHP相关软件程序
yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
第四个历程:修改PHP程序所使用的用户信息
vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
第五个历程:启动PHP服务程序
systemctl start php-fpm.service
提示
: PHP端口为9000
检查信息
ps -ef|grep php # 检查启动进程信息
netstat -lntup|grep php # 检查启动端口信息
lnmp部署配置
nginx +PHP程序进行串联
编写nginx配置文件
server {
listen 80;
server_name blog.oldboy.com;
root /html/blog; --- 让php程序可以知道当哪个路径中获取代码信息
index index.html index.htm; --- 默认php程序识别首页文件 此时还没改
location ~ \.php$ {
client_max_body_size 100m; 将nginx传输文件的大小改为100M ;默认是2M
root /www;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME(变量信息) $document_root$fastcgi_script_name(调用内置变量);
$document_root --- 识别访问网站uri资源路径信息
$fastcgi_script_name --- 识别访问网站uri资源代码信息
http://www.oldboy.com /sa/test.php
$document_root+$fastcgi_script_name = SCRIPT_FILENAME --> PHP
fastcgi_pass 127.0.0.1:9000; --- 将动态请求发送给本地主机9000端口
include fastcgi_params; --- 让nginx程序可以识别一些内置变量
}
}
正式版配置文件
[root@nfs01 etc]# cat /etc/nginx/conf.d/blog.conf
server {
listen 80;
server_name blog.oldboy.com;
root /html/blog/;
index index.php ;
location ~ \.php$ {
client_max_body_size 100m;
root /html/blog/;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
编写PHP首页文件进行测试
cd /html/blog/
vim test.php
<?php phpinfo(); ?>
PHP+mariadb建立关系(开发人员)
PHP连接数据库代码
<?php
$servername = "localhost";
$username = "root";
$password = "oldboy123";
//$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());
}
?>
补充:
数据库简单配置
1)修改数据库密码信息
mysqladmin -uroot password "oldboy123"
mysql -uroot -poldboy123 -hlocalhost
2)创建数据库信息
create database 数据库名称;
3)查看数据库信息
show databases;
4)删除数据库信息
drop database 数据库名称;
5)创建数据库管理用户root
grant all(所有权限) on blog.* to 'blog'@'允许连接数据库白名单信息' identified by '密码信息';
6)查看数据库是否连接成功
select user,host from mysql.user;
lnmp实现动态网站
第一个历程:获取需要的网站代码信息
blog动态网站代码:开源代码
unzip wordpress-5.3-zh_CN.zip
mv wordpress/* /html/blog/ 放入站点目录下
第二个历程:修改站点目录权限信息
chown -R nginx.nginx /html/blog
第三个历程:进行网站搭建初始化配置(生成连接数据库代码信息)
http://blog.oldboy.com/index.php
http://blog.oldboy.com/wp-admin/setup-config.php --- 网站初始化页面
提示
:根据页面提示操作,并且检查是否有那个数据库信息
create database blog; --- 创建数据库信息
grant all on blog.* to 'blog'@'localhost' identified by 'oldboy123';
第四个历程:直接访问网页
提示
:访问页面时注意是不是默认识别index.html为首页文件
测试
访问网页,正常应该是图一所示
图一
我遇到的问题就是图二所示
图二
还没找到为什么。但是应该就是路径问题以及nginx配置文件中路径问题所导致的。