惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
博客园 - 叶小钗
The Cloudflare Blog
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
小众软件
小众软件
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
宝玉的分享
宝玉的分享

zplb

我发明了窝窝头文!(自然语言) - zplb Setting Up a Minimal Public TinyProxy with Basic Authentication on CentOS How to Host a .onion Site on Your Own Computer (No VPS Required) Converting IPA to Speech Using Python Huawei Switch CLI Cheat Sheet
I Built a Web Server That Runs Python and PHP in the Same...
2026-02-01 · via zplb

Project: DinoWebServe


Most modern web frameworks are overpowered for small tasks.

Sometimes I just want to:

  • Serve static files quickly
  • Add a tiny bit of Python logic inside HTML
  • Reuse an old PHP script
  • And not deal with routing, middleware, or deployment

So I built DinoWebServe, a minimal web server that can do all that.


Motivation

Why not just use Flask, Django, or PHP alone?

  1. Flask/Django are great — but for a quick local tool, they feel heavy.
  2. PHP alone can’t handle Python logic directly.
  3. Mixing both languages usually requires reverse proxies, separate servers, or templating hacks.

I wanted something that works immediately, is simple, and easy to hack.


Architecture Overview

  • Python backend: powered by Flask, handles dynamic .pys pages
  • PHP support: via php-cgi, works seamlessly alongside Python
  • Sandboxed execution: Python scripts run in a controlled environment
  • Static file serving: Everything under WWW/ is exposed
  • Logging: Every request is logged to log/ in JSON format

Example folder structure:


DinoWebServe/
├── DinoWebServe.py          # main server
├── config/
│   ├── config.cfg           # configuration
│   └── function.py          # utility functions
├── WWW/                     # web root
├── PHP/                     # php-cgi binary
└── log/                     # request logs

Key Features

1. Python Inside HTML

Embed Python directly in HTML:

<python>
echo("Current time: " + str(datetime.datetime.now()))
echo("Your IP: " + remote_addr())
</python>

No templates, no Jinja — pure Python execution.


2. PHP + Python Mixed Pages (.pp)

Re-use PHP and add Python logic:

<?php
echo "<h1>PHP output</h1>";
?>

<python>
echo("<p>Python timestamp: " + str(time.time()) + "</p>")
</python>

This is handy for projects with legacy PHP pages.


3. Quick Setup

Run:

python DinoWebServe.py

Open:

http://localhost

Done. No configuration headache.


4. Built-in Logging & Monitoring

Logs every request:

{
  "timestamp": "2025-01-09T10:30:45",
  "ip": "127.0.0.1",
  "method": "GET",
  "path": "/"
}

Helps debugging and auditing small apps.


Trade-offs

  • Not production-ready: It’s lightweight by design
  • Limited sandboxing: Security is reasonable for dev/testing but not enterprise
  • Mixing PHP + Python: Can get messy if overused

I consciously chose simplicity over safety and performance for personal projects and learning.


Why It’s Fun

  • Experiment with dynamic Python logic in HTML
  • Mix Python with PHP without complex setups
  • Learn server design in a minimal, understandable way
  • Rapid prototyping for small tools, testing, or teaching

Design Philosophy

  1. Control > Convention: I want to see and modify everything
  2. Minimalism > Features: Only implement what’s needed
  3. Readable Logs: Every request is transparent and inspectable
  4. Hackability: Easy to fork, tweak, and extend

Final Thoughts

Sometimes, building a smaller, hackable tool teaches more than using a massive framework.

DinoWebServe is probably a bad idea for production.

But it’s fun, surprisingly useful, and you can actually understand everything under the hood.


GitHub: https://github.com/zplbFelix/DinoWebServe