文档章节

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

eechen
 eechen
发布于 2015/04/06 12:59
字数 486
阅读 1210
收藏 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

粉丝 980
博文 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
安装Nginx环境到Windows--Winginx

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

lightenvoy
2014/11/22
1K
0
金刚java虚拟主机管理系统--KgHost

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

聚龙软件
2011/11/15
3.3K
0
iOS开发中 关于阿里云服务器的使用与安全策略

iOS开发中 关于阿里云服务器的使用与安全策略 目录(?)[+] 使用背景: 云服务已经很多年了,早期没能加入使用云大军中的一员,后来后悔莫及。2015年记得当时没办法租用的虚拟主机三天两天挂了...

wakice
2017/04/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

困扰当前数据中心管理的三大难题

导读 当企业发展到一定程度,或者之前的机房不能满足现在的数据中心使用时,企业会对数据中心进行迁移。那么在数据中心进行迁移的时候会遇到哪些风险呢?针对这些风险我们应该做出怎样的措施来...

问题终结者
12分钟前
0
0
设计模式:工厂方法模式(工厂模式)

工厂方法模式才是真正的工厂模式,前面讲到的静态工厂模式实际上不能说是一种真正意义上的设计模式,只是一种变成习惯。 工厂方法的类图: 这里面涉及到四个种类: 1、抽象产品: Product 2、...

京一
29分钟前
0
0
区块链和数据库,技术到底有何区别?

关于数据库和区块链,总会有很多的困惑。区块链其实是一种数据库,因为他是数字账本,并且在区块的数据结构上存储信息。数据库中存储信息的结构被称为表格。但是,区块链是数据库,数据库可不...

HiBlock
36分钟前
0
0
react native 开发碰到的问题

react-navigation v2 问题 问题: static navigationOptions = ({navigation, navigationOptions}) => ({ headerTitle: ( <Text style={{color:"#fff"}}>我的</Text> ), headerRight: ( <View......

罗培海
43分钟前
0
0
Mac Docker安装流程

久仰Docker大名已久,于是今天趁着有空,尝试了一下Docker 先是从docker的官网上下载下来mac版本的docker安装包,安装很简易,就直接拖图标就好了。 https://www.docker.com/products/docker...

writeademo
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部