当前位置: 首页 > news >正文

github 上的php项目

github 上的php项目

项目的网址 (Loong1996/LikeGirlSite: 情侣网站、情侣网页、恋爱记录网站)

在这里插入图片描述

# 修改
# admin/Config_DB.php//localhost 为数据库地址 一般使用默认的即可 或(127.0.0.1)
$db_address = "mysql_php";//数据库用户名
$db_username = "root";//数据库密码
$db_password = "root123";//数据库表名
$db_name = "love";//敏感信息修改安全码 建议设置复杂一些
$Like_Code = "Love";//版本号
$version = 20240612;

创建网桥

docker network create -d bridge php_net 

mysql镜像的启动

docker run \
-itd  --name mysql_php \
--network php_net \
--restart unless-stopped  \
-e MYSQL_USER="php" \
-e MYSQL_PASSWORD="php123" \
-e MYSQL_ROOT_PASSWORD="root123" \
mysql:8.0.23 \
--default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin

修改数据库

# 找到数据库的ip [root@docker-110 LikeGirlSite]# docker inspect mysql_php | grep -i ipaddr "SecondaryIPAddresses": null,"IPAddress": "","IPAddress": "172.23.0.2",
# 登录数据库
[root@docker-110 LikeGirlSite]# mysql -h 172.23.0.2  -uroot -proot123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.23 MySQL Community Server - GPLCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL [(none)]> # 创建一个数据库
MySQL [(none)]> create database love;
Query OK, 1 row affected (0.00 sec)# 导入文件
MySQL [(none)]> USE love;
Database changed
MySQL [love]> source /root/LikeGirlSite/love20240612.sql;# 检查一下MySQL [love]> show tables;
+----------------+
| Tables_in_love |
+----------------+
| IPerror        |
| about          |
| article        |
| diySet         |
| leavSet        |
| leaving        |
| login          |
| loveImg        |
| lovelist       |
| text           |
| warning        |
+----------------+
11 rows in set (0.00 sec)

启动phpmyadmin镜像\

  1. 看dockerhub,给了什么资料,(这里需要科学上网,我这里就截图了)
    https://hub.docker.com/_/phpmyadmin

  2. docker history
    docker run 去分析 入口点脚本,启动脚本,都调用了哪些变量

在这里插入图片描述

docker run -d --restart=always  \
--name blog_phpadmin \
--network php_net \
-e PMA_HOST=mysql_php \
-p 888:80
phpmyadmin

在这里插入图片描述

看到数据了,表示phpadmin 和 数据库连接成功 !!!! 

最后是nginx

  1. 当你已http协议去访问这个源的时候
    http://10.0.0.7:80/test-info.php

    到达nginx,找到test-info.php

    fastcg_pass 127.0.0.1:9000; (php-fpm去读取,执行test-info.php)

    返回执行结果给nginx

    用户浏览器看到这个代码的结果

这里是 bitnami/php-fpm 也就是处理php代码的

version: '3'services:db:image: mysql:8.0.23restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: rootpasswordMYSQL_DATABASE: mydbMYSQL_USER: userMYSQL_PASSWORD: passwordvolumes:- mysql-data:/var/lib/mysqlnetworks:- app-networkphp-fpm:image: bitnami/php-fpmrestart: alwaysvolumes:- /opt/test_php:/var/www/html  # 挂载你的 PHP 代码depends_on:- dbnetworks:- app-networknginx:image: nginxrestart: alwaysports:- "80:80"volumes:- /opt/test_php:/var/www/html- /opt/test_php/nginx.conf:/etc/nginx/conf.d/default.conf  # 需要创建 nginx.confdepends_on:- php-fpmnetworks:- app-networknetworks:app-network:volumes:mysql-data:

创建 Nginx 配置文件 (nginx.conf)

server {listen 80;server_name localhost;root /var/www/html;index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {fastcgi_pass php-fpm:9000;  # 指向 php-fpm 服务fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;fastcgi_split_path_info ^(.+\.php)(/.+)$;}
}

创建 PHP 测试文件 (test.php)

<?php
try {$pdo = new PDO('mysql:host=db;dbname=mydb;charset=utf8mb4','user',         // 数据库用户名'password',     // 数据库密码[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,]);echo "数据库连接成功!";// 测试查询$stmt = $pdo->query("SELECT 1+1 AS result");$row = $stmt->fetch();echo "测试查询结果: " . $row['result'];} catch (PDOException $e) {die("连接失败: " . $e->getMessage());
}

启动容器

docker-compose up -d

测试

访问 http://localhost/test.php,如果看到以下输出,则连接成功:

在这里插入图片描述

看到这我们就ok了。开始部署

  1. 我们先把代码下到opt目录下
[root@docker-110 opt]# mv LikeGirlSite-master love-project
[root@docker-110 love-project]# ls
about.php  Botui      favicon.ico  head.php   ipjc.php  leaving.php  list.php    love20240612.sql  page.php   Style
admin      error.php  footer.php   index.php  ip.php    LICENSE      little.php  loveImg.php       README.md
# 修改
# admin/Config_DB.php//localhost 为数据库地址 一般使用默认的即可 或(127.0.0.1)
$db_address = "db";//数据库用户名
$db_username = "root";//数据库密码
$db_password = "root123";//数据库表名
$db_name = "love";//敏感信息修改安全码 建议设置复杂一些
$Like_Code = "Love";//版本号
$version = 20240612;
version: '3'services:db:image: mysql:8.0.23restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: root123MYSQL_DATABASE: loveMYSQL_USER: userMYSQL_PASSWORD: passwordvolumes:- mysql-data:/var/lib/mysqlnetworks:- app-networkphp-fpm:image: bitnami/php-fpmrestart: alwaysvolumes:- /opt/love-project:/var/www/html  # 挂载你的 PHP 代码depends_on:- dbnetworks:- app-networknginx:image: nginxrestart: alwaysports:- "80:80"volumes:- /opt/love-project:/var/www/html- /opt/love-project/nginx.conf:/etc/nginx/conf.d/default.conf  # 需要创建 nginx.confdepends_on:- php-fpmnetworks:- app-networknetworks:app-network:volumes:mysql-data:

nginx.conf

server {listen 80;server_name localhost;root /var/www/html;index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {fastcgi_pass php-fpm:9000;  # 指向 php-fpm 服务fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;fastcgi_split_path_info ^(.+\.php)(/.+)$;}
}

test.php

<?php
try {$pdo = new PDO('mysql:host=db;dbname=love;charset=utf8mb4', //注意修改dbname'root',         // 数据库用户名'root123',     // 数据库密码[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,]);echo "数据库连接成功!";// 测试查询$stmt = $pdo->query("SELECT 1+1 AS result");$row = $stmt->fetch();echo "测试查询结果: " . $row['result'];} catch (PDOException $e) {die("连接失败: " . $e->getMessage());
}

在这里插入图片描述

测试一下呗

在这里插入图片描述

导入数据

[root@docker-110 love-project]# mysql -u root -p root123 -h 172.26.0.2
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'172.26.0.1' (using password: YES)
[root@docker-110 love-project]# mysql -uroot -proot123 -h172.26.0.2
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 8.0.23 MySQL Community Server - GPLCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL [(none)]> 
<?php
// 设置页面编码
header("Content-Type:text/html; charset=utf-8");$db_config = ['host'     => 'db',          // 使用容器名'port'     => '3306','username' => 'user',        // 使用Docker创建的用户'password' => 'password',    // 使用Docker设置的密码'dbname'   => 'love','charset'  => 'utf8mb4'
];// 安全配置
$security_config = ['like_code' => 'Love','version'   => '20240612'
];// 创建数据库连接
try {// 修复:在DSN中添加端口配置$pdo = new PDO("mysql:host={$db_config['host']};port={$db_config['port']};dbname={$db_config['dbname']};charset={$db_config['charset']}",$db_config['username'],$db_config['password'],[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]);// 开发环境测试连接if (isset($_SERVER['APP_ENV']) && $_SERVER['APP_ENV'] === 'development') {echo "数据库连接成功!";}
} catch(PDOException $e) {// 开发环境显示详细错误if (isset($_SERVER['APP_ENV']) && $_SERVER['APP_ENV'] === 'development') {die("数据库连接失败: " . $e->getMessage());}// 生产环境记录日志并显示友好错误error_log("数据库连接失败: " . $e->getMessage());die("系统暂时无法访问,请稍后再试");
}// 设置错误报告级别(根据环境调整)
if (isset($_SERVER['APP_ENV']) && $_SERVER['APP_ENV'] === 'development') {error_reporting(E_ALL);ini_set('display_errors', 1);
} else {error_reporting(0);ini_set('display_errors', 0);
}
?>

在这里插入图片描述

可惜最后没运行出来

相关文章:

  • 网站可信认证必须做吗百度网盘客户端下载
  • 网站建设如何测试免费seo网站诊断
  • 淘宝做网站费用哪家网络公司比较好
  • xp系统做局域网内网站夸克搜索引擎入口
  • 微信公众号做电影网站要域名吗山东潍坊疫情最新消息
  • 网络公司项目宁波seo网络推广渠道介绍
  • java 导出word 实现循环表格
  • Ubuntu 物理桌面远程访问教程(基于 RealVNC / mstsc)
  • npm 报错:“无法加载文件 ...npm.ps1,因为在此系统上禁止运行脚本” 解决方案(附执行策略说明)
  • 暴雨信创电脑代理商成功中标长沙市中医康复医院
  • docker搭建mysql主从集群
  • 笔记01:现有PCB文件自动生成PCB库
  • 分布式系统 - 分布式缓存及方案实现
  • 基于FPGA的UART回环设计
  • Qt开发1--Qt概述,安装,创建第一个Qt项目
  • 在windows系统上安装Comfy UI
  • 内存条与CPU三级缓存之间的区别
  • Vue SPA 路由跳转无法回到顶部问题排查与解决
  • C++设计模式(GOF-23)——04 C++装饰器模式(Decorator)(一个类同时继承和组合另一个类)解决类爆炸问题、模板装饰器
  • iPhone越狱基本流程
  • 【CMake入门学习教程】bash语句示例注解
  • 60页PPT实战方案 | 大数据决策分析平台建设全流程路径图
  • Bright Data亮数据 MCP + N8N x AI 新闻编辑:基于亮数据,数据采集到观点摘要工作流自动化实践
  • “Ubuntu 18.04.6 LTS“ 配置网卡静态IP
  • 数据赋能(324)——安全与合规——所有权
  • 实战 X-AnyLabeling:构建高效自动标注系统的工程实践