Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP开发虚拟主机管理系统的思路

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

WBOY
WBOYasal
2016-06-23 13:37:151459semak imbas

拿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监听不同的端口即可.
比如Apache(PHP5.4)监听的端口是8081,那需要PHP5.4支持的用户网站在生成Nginx虚拟主机配置时就转发到8081端口.

Apache主配置文件httpd.conf中载入虚拟主机配置:
Include conf/extra/httpd-vhosts.conf
httpd-vhosts.conf里有载入vhosts下的cofn文件:
Include conf/extra/vhosts/*.conf
里面的conf/extra/vhosts/a.com.conf虚拟主机:

    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

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    



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


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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:windows平台安装php_memcache模块Artikel seterusnya:php开发之文件系统