首先配置Apache虚拟主机实现多PHP项目隔离部署,依次完成服务安装、目录创建、vhost配置、站点启用与DNS解析,最后可选PHP版本隔离。

如果您需要在同一台服务器上部署多个基于PHP的Web项目,并通过不同的域名或端口进行访问,配置虚拟主机(vhost)是实现该目标的关键步骤。通过合理的vhost设置,可以确保每个项目独立运行,互不干扰。
本文运行环境:Dell PowerEdge R750,Ubuntu 22.04
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/project1 和 sudo 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 中的配置链接到启用目录。
1、启用project1站点:sudo a2ensite project1.conf。
2、启用project2站点:sudo a2ensite project2.conf。
3、禁用默认站点以避免冲突:sudo a2dissite 000-default.conf。
4、重新加载Apache配置使更改生效:sudo systemctl reload apache2。
若在本地测试,需将自定义域名映射到服务器IP地址。这可通过修改客户端机器的 hosts 文件完成。
1、在本地开发机上编辑hosts文件,Linux和macOS路径为 /etc/hosts,Windows为 C:\Windows\System32\drivers\etc\hosts。
2、添加两行记录:server_ip_address project1.local 和 server_ip_address project2.local。
3、保存文件后,在浏览器中访问 http://project1.local 和 http://project2.local,应分别显示各自项目的测试页面。
当多个项目依赖不同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速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号