1.架构介绍
L N M P
- L linux 操作系统
- N nginx web服务功能
- M MySQL Mairadb 存放网站
- P php / Python 处理动态请求
LNMT
- N nginx 负载功能
- T tomcat Apache 处理动态请求
环境运行需要注意的地方(系统基础优化)
- 防火墙 Selinux 关闭
- tmp目录 1777
- 设置NFS共享创建站点目录的时候记得更改目录所有者 chown -R
2. 架构功能原理
用户访问网站(静态)------> nginx # 如果是静态nginx 就可以处理
用户访问网站(动态)------> nginx ------>php>------> mysql (查/写)
# 用户访问网站如果是动态,nginx无法处理传给php 如果还需要读取数据库,会链接数据库服务器进行处理
![](https://img.haomeiwen.com/i16980770/864ef1a1e4f258a6.png)
3. 网站 LNMP 搭建过程
第一步:软件安装部署
Mariadb 部署:
yum install -y mariadb-server mariadb
php部署
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 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
yum remove php-mysql php php-fpm php-common #如果要卸载php 运行此命令
Ngxin 部署
更新yum源
vim /etc/yum.repos.d/nginx.repo
复制以下信息到nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
第三步:yum install -y nginx
![](https://img.haomeiwen.com/i16980770/743f0f08bafa85eb.png)
第二步:软件配置,测试过程
配置内容:
nginx+php 建立关系
php+mysql 建立关系 (使用代码与数据库建立关系)
echo "<?php phpinfo(); ?>" > /html/blog/test_info.php
第三步:网站代码上线
>常见开源模板
>> 博客网站 wordpress
>> www 网站 dedecms
>> 论坛网站 discuss
>> 知乎网站 wecenter
第四步:数据库迁移过程
第五步:实现数据共享存储
4. 网站 LNMP 配置过程
4.1 nginx与php 建立连接
server {
listen 80;
server_name blog.oldboy.com;
location / {
root /html/blog;
index index.php index.html index.htm; 首页设置为 .php第一个匹配,匹配不到匹配后边的
}
location ~ \.php$ { 匹配 .php结尾的访问,运行以下配置
root /html/blog;
fastcgi_index index.php; nginx 与php 调用接口程序
fastcgi_pass 127.0.0.1:9000; 将请求传给本地, 9000 端口是 php-fpm 程序的端口号
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_scriptz_name;
include fastcgi_params; --- fastcgi内置变量记录文件
}
}
![](https://img.haomeiwen.com/i16980770/b9d4dac5867ab6dc.png)
解决方法:启动php-fpm 检查端口 netstat -lntup |grep 9000
![](https://img.haomeiwen.com/i16980770/d3a9c2d2c9c9b1fd.png)
4.2 php与mysql 建立连接
<?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 oldboy !\n"; 如果正确提示
}else{
die("Connection failed: " . mysqli_connect_error()); 如果错误,输出报错原因
}
?>
mysql 设置密码
mysqladmin -uroot -p password 'newpassword' 已知密码或没有密码时候可用
登录 mysql -uroot -p123456
5. LNMP 架构代码上线
第一步:获取代码信息
第二步:将代码解压放置站点目录中
第三步:调整站点目录数据权限(可以改为nginx worker进程用户)
chown www.www /html/blog
查看 nginx worker进程用户
ps -ef | grep nginx
![](https://img.haomeiwen.com/i16980770/ff2099dfe54cc1ee.png)
检查 php-fpm 运行用户,也需要改为 nginx worker进程用户
php配置文件 /etc/php-fpm.d/www.conf :: user = xxx
vim /etc/php-fpm/www.conf
user = www
group = www
![](https://img.haomeiwen.com/i16980770/2723781a5504b520.png)
第四步:进行网站页面初始化配置
创建数据库
1. 先查看数据库中有没有对应的数据库
mysql -uroot -p(数据库密码)
show databases; # 数据库每个语句用分号结束,否则不能运行;
2. 创建数据库
create database wordpress;
3. 创建用户管理数据库
grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';
![](https://img.haomeiwen.com/i16980770/c28bf6a2d4b6f6ba.png)
![](https://img.haomeiwen.com/i16980770/0ced2c2c00689184.png)
![](https://img.haomeiwen.com/i16980770/7e77b927227de805.png)
![](https://img.haomeiwen.com/i16980770/34f42f3d6a45c5ad.png)
访问网站 blog.oldboy.com
![](https://img.haomeiwen.com/i16980770/c71146a66a182d96.png)
更换主题上传目录
https://www.themepark.com.cn/ydmlmftybwordpresszt.html
![](https://img.haomeiwen.com/i16980770/052beaed20705566.png)
上传主题出错,在上传附件时时候也可能出现这样的情况如何解决
出现报错的原因是因为服务器限制了上传的大小,只能上传1M
client_max_body_size 5m; 将此行代码放置到网站虚拟主机配置文件中
/etc/nginx/cong.d/blog.conf
'注意在全局配置中,不要放到 location 中'
'安装如果提示无法创建目录,检查一下网站目录是否与站点目录属主相同是否都是www'
client_max_body_size 定义了客户端的请求的主体的尺寸多大,只要请求方法是post 就会有请求主体
http://nginx.org/en/docs/http/ngx_http_core_module.html #client_max_body_size
官方链接说明
5.1 数据如何迁移
第一步:备份数据库
mysqldump -uroot -p*** -A /tmp/mysql-bak.sql
备份命令 -A 全部备份 备份路径
第二步:将数据进行传输
scp -rp /tmp/mysql-bak.sql 172.16.1.51:/tmp
数据库服务器地址
第三步:恢复数据
mysql -uroot -p*** </tmp/msyql-bak.sql
标准输入重定向到数据库中
第四步:检查网站页面是否正常
如果出错,提示建立数据库链接错误,查看数据库中指定的库是否允许外网登陆,授权登陆操作如下:
grant all on wordpress.* to 'wordpress'@'172.16.1.%' identified by '***';
授权 wordpress库下的所有表的所有权限 给wordpress,允许登陆网段为 172.16.1.0/24 网段
此时数据库中授权已经完成,但是代码文件中链接数据库的文件还没有修改为新的数据库服务器地址,还需要再代码配置文件中将地址修改为新的数据库服务器地址
6. LNMP 架构优化部署
6.1 数据库数据信息迁移
第一步:备份数据
网友评论