Linux动态网站架构(部署开发php代码)
动态网站架构(部署开发php代码)
- 测试能否直接部署nginx
- 需要什么服务,及原理
- 准备并进行开发测试
- 部署代码
概述
静态网站:图片仅仅包含:html,css样式js脚本,图片及视频;nginx直接处理的资源静态资源
-
只需要web服务器即可:nginx,可以承受较高的访问量;不支持动态的功能注册,评论及静态网站功能单一
-
浏览器解析(客户端解析),服务端仅仅负责发送
动态网站:动态网站一般是通过开发语言实现:java,php,python,golang
- 动态资源页面需要,服务器进行处理nginx+php、tomact+数据库处理好结果返回给用户
- 动态请求需要服务端进行处理与解析,结果给用户
区分静态资源与动态资源:
1.通过url简单、初步判断,网站类型
2.url中包含&或?一般是动态网站
常见动态网站的架构
php:LNMP(LEMP),LAMP,WNMP/WAMP
java:LNMT(Tomact,jetty,weblogic,jboss)
python:LNMP(python,uwsgi)
golang :LNMG(golang)
c、c++:LNM?。
LNM?
linux系统 nginx web服务 mysql、mariadb数据库
lamp a–》apache目前很少用
wnmp/wamp w-windows一般开发使用
lnmp架构过程
1.数据库
[root@db01 ~]#yum install -y mariadb-server
cd /tmp
[root@db01 /tmp]#yum localinstall *.rpm
[root@db01 /tmp]#systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@db01 /tmp]#systemctl start mariadb.service
检查:
ss -lntup |grep mysql
ps -ef |grep mysql
- 数据库安全配置(SQL语句实现,现在通过脚本命令实现)
mysql_secure_installation ##仅仅刚安装的时候运行,进首次运行即可
用于设置root密码,清理用户和清理临时库
linux系统的root与数据库的root
2个独立的用户
Linux的root用户进入和管理整个linux系统
数据库的root用户仅仅是用于管理mysql数据库
进入数据库内部
mysql -uroot -p123
- 查看
- 查看系统所有的数据库
show databases; - 查看里的表
show tables from mysql
- 查看库里的表的user列和host列(列==字段)查看数据库的用户信息
select 字段1,字段2 from 库 .表;
select user ,host from 库.表
show tables from mysql
host:白名单
创建
create database wulin;
创建用户,后面通过用户管理数据库
grant all on wulin.* to 'wulin'@'localhost' indentified by '123';
grant all on wulin.* to 'wulin'@'172.16.1.%' indentified by '123';
grant 所有权限 on 数据库.* to '用户名'@'白名单'
数据库白名单:
白名单表示用户可以从哪里进行登录并且使用数据库
一般localhost表示只能在数据库本地使用
可以通过172.16.1.% 进行授权局域网访问,其他局域网机器可以访问数据库
只给个%表示所有人可以访问(不安全)%不包含localhost
删除(危险)
drop database wulin;
删除用户
drop user 'wulin'@'172.16.1.%' ;
drop user 'wulin'@'localhost' ;
[root@web01 ~]#yum localinstall -y mariadb-server-5.5.68-1.el7.x86_64.rpm
php
php 7.x
#生产环境选择,根据开发书写代码环境
/etc/yum.repos.d/php.repo
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64
enabled = 1
gpgcheck = 0
[root@web01 ~]#yum install -y php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mcrypt php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-pecl-memcached php72w-pecl-redis php72w-pecl-mongodb
启动:nginx,php-fpm
[root@web01 ~]#systemctl enable php-fpm.service
[root@web01 ~]#systemctl start php-fpm.service
检查端口和进程
[root@web01 ~]#ss -lntup |grep php
[root@web01 ~]#ps -ef |grep php-fpm`
apache与nginx都要读取网站
[root@web01 ~]#vim /etc/php-fpm.d/www.conf
[root@web01 ~]#egrep ‘user|grep’ /etc/php-fpm.d/www.conf
[root@web01 ~]#egrep ‘user|group’ /etc/php-fpm.d/www.conf
[root@web01 ~]#egrep -n '^user|^group' /etc/php-fpm.d/www.conf
8:user = apache
10:group = apache
[root@web01 ~]#vim +8 /etc/php-fpm.d/www.conf
nginx
配置nginx指定用户
重启:
配置nginx文件及站点目录
[root@web01 ~]#vim /etc/nginx/conf.d/blog.wulinlinux.cn.conf
检查
[root@web01 ~]#systemctl reload nginx.service
旧新版本下载:
Release Archive – WordPress.org China 简体中文
https://cn.wordpress.org/download/releases/
[root@web01 ~]#unzip -t wordpress-6.2.1-zh_CN.zip
[root@web01 ~]#mv wordpress/* /app/code/blog/
[root@web01 ~]#chown -R nginx.nginx /app/code/blog/
部署代码及设置权限
- 上面进行下载解压,部署代码
- 页面进行安装
现在用户访问网站—没有防火墙—没有负载–直接到web服务器 —文字内容在数据库-----图片内容未来要放到存储,现在还在web服务器上
未来就把uploads挂载到存储即可!文字未来需要问开发具体放到哪里!
select * from wulin.wp_posts ;
排错与调试
测试nginx静态页面
<?php
phpinfo()
?>
在这里插入代码片
-
测试php+nginx
-
测试php+mysql
<?php
数据库地址
$db_host='172.16.1.51';
数据库名称
$db_user='wordpress';
$db_pass='123';
$link_id=mysqli_comment($db_host, $db_usr, $db_pass);
if($link_id){
echo "mysql successful by wulin!\n";
}else{
echo"connection failed!\n";
}
常见故障
- 权限问题
无法写入wp-config.php文件
解决方式:手动创建wp-config.php文件,
<?php
/**
* The base configuration for wordpress
*
* The wp-config.php creation script uses this file during the installation.
* You don'not have to use the web site,you can copy this file to "wp-config.php"
* and fill in the values.
*
* This file contains the folowing configurations:
*
* * Dtabase settings
* * Secret keys
* * ABSPATH
*
完成后进行运行安装程序
- 数据库连接问题