如何配置虚拟主机(vhost)_单服务器多PHP项目部署步骤

看不見的法師
发布: 2025-11-12 15:07:02
原创
130人浏览过
首先配置Apache虚拟主机实现多PHP项目隔离部署,依次完成服务安装、目录创建、vhost配置、站点启用与DNS解析,最后可选PHP版本隔离。

如何配置虚拟主机(vhost)_单服务器多php项目部署步骤

如果您需要在同一台服务器上部署多个基于PHP的Web项目,并通过不同的域名或端口进行访问,配置虚拟主机(vhost)是实现该目标的关键步骤。通过合理的vhost设置,可以确保每个项目独立运行,互不干扰。

本文运行环境:Dell PowerEdge R750,Ubuntu 22.04

一、安装并配置Apache服务器

Apache是支持虚拟主机功能的常用Web服务器软件,通过其vhost机制可实现多站点托管。在开始配置前,需确保Apache已正确安装。

1、使用apt包管理器安装Apache2:sudo apt update && sudo apt install apache2

立即学习PHP免费学习笔记(深入)”;

2、启动Apache服务并设置开机自启:sudo systemctl start apache2 && sudo systemctl enable apache2

3、验证服务是否正常运行:在浏览器中输入服务器IP地址,应能看到Apache默认欢迎页面。

二、创建项目目录结构

为每个PHP项目分配独立的根目录,有助于权限管理和代码隔离。建议将项目文件存放在统一路径下,例如 /var/www/ 下的子目录。

1、为第一个项目创建目录:sudo mkdir -p /var/www/project1

2、为第二个项目创建目录:sudo mkdir -p /var/www/project2

3、设置目录所有权,使其可被Web服务器读取:sudo chown -R www-data:www-data /var/www/project1sudo chown -R www-data:www-data /var/www/project2

4、在各目录中放置测试文件,如 /var/www/project1/index.php,内容为 <?php echo "Project 1"; ?>。

三、配置虚拟主机文件

每个虚拟主机需要一个独立的配置文件来定义其监听的域名、端口和文档根路径。这些文件通常存放在 /etc/apache2/sites-available/ 目录中。

1、为project1创建配置文件:sudo nano /etc/apache2/sites-available/project1.conf,写入以下内容:
<VirtualHost *:80>
    ServerName project1.local
    DocumentRoot /var/www/project1
    DirectoryIndex index.php
</VirtualHost>

2、为project2创建类似配置文件:sudo nano /etc/apache2/sites-available/project2.conf,内容中将ServerName设为project2.local,DocumentRoot设为/var/www/project2。

3、保存所有配置文件并退出编辑器。

四、启用虚拟主机站点

Apache默认仅加载位于 sites-enabled 目录中的配置。使用 a2ensite 命令可将 sites-available 中的配置链接到启用目录。

标贝AI虚拟主播
标贝AI虚拟主播

一站式虚拟主播视频生产和编辑平台

标贝AI虚拟主播 15
查看详情 标贝AI虚拟主播

1、启用project1站点:sudo a2ensite project1.conf

2、启用project2站点:sudo a2ensite project2.conf

3、禁用默认站点以避免冲突:sudo a2dissite 000-default.conf

4、重新加载Apache配置使更改生效:sudo systemctl reload apache2

五、配置本地DNS解析

若在本地测试,需将自定义域名映射到服务器IP地址。这可通过修改客户端机器的 hosts 文件完成。

1、在本地开发机上编辑hosts文件,Linux和macOS路径为 /etc/hosts,Windows为 C:\Windows\System32\drivers\etc\hosts。

2、添加两行记录:server_ip_address project1.localserver_ip_address project2.local

3、保存文件后,在浏览器中访问 http://project1.local 和 http://project2.local,应分别显示各自项目的测试页面。

六、配置PHP版本与扩展隔离(可选)

当多个项目依赖不同PHP版本时,可通过php-fpm配合fpm池实现版本分离。每个vhost可指定不同的PHP处理接口。

1、安装所需PHP版本及FPM模块,例如PHP 7.4和8.1:sudo apt install php7.4-fpm php8.1-fpm

2、为每个PHP版本配置独立的pool,编辑 /etc/php/7.4/fpm/pool.d/project1.conf 和 /etc/php/8.1/fpm/pool.d/project2.conf。

3、在对应的Apache vhost配置中添加FastCgiExternalServer指令或使用SetHandler指向特定fpm socket。

4、重启php-fpm服务:sudo systemctl restart php7.4-fpm && sudo systemctl restart php8.1-fpm

5、更新Apache配置中的ProxyPassMatch规则以代理到正确的PHP-FPM实例。

以上就是如何配置虚拟主机(vhost)_单服务器多PHP项目部署步骤的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号