文档章节

PHP开发虚拟主机管理系统的思路

eechen
 eechen
发布于 2015/04/06 12:59
字数 486
阅读 1217
收藏 13
拿Nginx来说,在主配置nginx.conf里包含虚拟主机配置:
include sites-enabled/*.conf;
新建虚拟主机时就在sites-enables里新建一个文件,比如:
sites-enabled/a.com.conf
server {
    listen          80;
    server_name     www.a.com;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}
也就是访问 www.a.com 都会反向代理给后端Apache监听的8080处理.
利用Nginx的转发可以实现在一台服务器上跑多个版本的Apache(PHP),只要不同版本的Apache(PHP)监听不同的端口即可.
比如Apache(PHP5.4)监听的端口是8081,那需要PHP5.4支持的用户网站在生成Nginx虚拟主机配置时就转发到8081端口.
同理,利用Nginx的fastcgi_pass转发可以实现在一台服务器上跑多个版本的PHP-FPM,只要PHP-FPM监听不同的端口即可.

Apache主配置文件httpd.conf中载入虚拟主机配置:
Include conf/extra/httpd-vhosts.conf
httpd-vhosts.conf里有载入vhosts下的conf文件:
Include conf/extra/vhosts/*.conf
里面的conf/extra/vhosts/a.com.conf虚拟主机:
<VirtualHost *:8080>
    ServerAdmin webmaster@a.com
    DocumentRoot "/png/www/a.com/public_html"
    ServerName www.a.com
    ServerAlias a.com
    ErrorLog "/png/www/a.com/logs/httpd_error_log"
    CustomLog "/png/www/a.com/logs/httpd_access_log" combined

    <Directory "/png/www/a.com/public_html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

/png/www/a.com是虚拟主机的目录,里面的public_html是根目录,为虚拟主机用户分配一个该目录的FTP用户即可,比如使用ProFTPD的ftpasswd生成一个账户:
http://my.oschina.net/eechen/blog/303398

开发一个虚拟主机管理系统,无非就是调用adduser/ftpasswd生成FTP账户,以及生成Nginx和Apache的虚拟主机配置,生成后用nginx -t和httpd -S测试配置是否正确后重载服务生效.而PHP提供了众多 文件系统操作函数字符串处理函数(替换/ 正则匹配),PHP对数据库有着良好的支持, 存储虚拟主机的用户信息自然也很方便.

© 著作权归作者所有

共有 人打赏支持
eechen

eechen

粉丝 990
博文 107
码字总数 55962
作品 1
深圳
私信 提问
加载中

评论(2)

开源春哥
开源春哥
虚拟机管理系统还有很多安全方面的事情。反正啰嗦事情比较多。
国产LNMP/Nginx主机面板 AMH-4.1 发布

AMH全名Amysql Host,是一专注于LNMP平台应用开发的国产面板,也是国内首个免费开源主机面板。 面板基于(Linux/Nginx/MySQL/PHP)构架的环境运行。 AMH4.1新版本改善4.0版本用户体验等细节问题...

Amysql
2013/09/10
1K
4
Linux服务器的配置和数据迁移方案

问题 将Linux功能服务器的配置和数据迁移到新服务器中  解决方案 迁移一台主控+功能的Linux服务器方法 要求1:新旧服务器安装了同一版本的Prim@Hosting(最完善的虚拟主机管理系统) 要求2:下...

2012hjtwyf
2017/07/11
0
0
金刚java虚拟主机管理系统--KgHost

KgHost,金刚java虚拟主机管理系统,专为IDC空间商开发的主机管理系统,支持apache,php,jsp等主流空间,kgHost专门为java空间提供全面的主机支持,是逐龙JuuLuu的一款功能强大稳定的源java虚...

聚龙软件
2011/11/15
3.3K
0
安装Nginx环境到Windows--Winginx

Winginx是一款可以帮你快速安装Nginx环境到Windows系统上的应用软件,类似于 XAMPP ,国内也有类似的软件,如张宴开发的 APMServ ,不过,他们大多是基于Apache,而不是Nginx,而且,张宴的Apm...

lightenvoy
2014/11/22
1K
0
docker on openstack

docker on openstack PHPor 的Blog2017-12-143 阅读 openstackdocker 场景,用docker做开发用的虚拟机,每个docker都有一个可以公开访问的IP地址。 由于docker和宿主机共享内核,一不小心可能...

PHPor 的Blog
2017/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
3
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
6
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部