为了账号安全,请及时绑定邮箱和手机立即绑定

apache 临时通过脚本启动 VirtualHost

apache 临时通过脚本启动 VirtualHost

PHP
慕田峪7331174 2022-06-17 16:30:49
假设我有一个本地 apache2,我需要一个脚本来运行带有特殊注入的 VirtualHost 的 apache2。更精确:我在 Windows 10 上安装了 xampp(PHP 7.3.10、MariaDB 10.4.8、mysqlnd 5.0.12-dev、Apache 2.4.41)。几个 PHP 项目位于整个硬盘驱动器上。到目前为止,我./apache/conf/extra/httpd-vhosts.conf在每个项目切换上启动 apache2 服务之前修改了文件。有了它,我可以将项目文件夹留在原处,而无需将它们复制到 xampp 安装文件夹中。现在我很好奇我是否可以为每个项目(bat 或 sh,安装了 GitShell)编写一个脚本,该脚本将正常运行 mariadb 和 apache2,该特定项目文件夹的临时 VirtualHost 作为 DocumentRoot。我目前可以做的:在项目文件夹中放置一个httpd-vhosts.conf文件和一个startProject.sh脚本。运行脚本会复制xampp安装中的配置文件,然后启动apache2服务。这是可行的,但只能启动一个 apache2 进程,而不能同时启动多个项目。我想要的:我想在启动apache2时使用一个参数来指定一个VirtualHost。也许通过说 apache2 使用特殊的配置文件而不是自己的项目结构中的文件。或者我想通过启动 apache2 进程来使用一个参数,该进程为已指定的 VirtualHost 指定一个备用 DocumentRoot 文件夹。目前这是我的方法:#!\bin\bashBASEDIR=$(dirname "$0")xamppPath="C:\xampp\v7.3.10"cd $xamppPath"apache\bin\httpd.exe" -S "$BASEDIR\httpd-vhosts.conf" &但-S只打印出 VirtualHosts,而不是设置配置文件。如何在不覆盖 xampp 安装文件夹中现有配置文件的情况下,在硬盘驱动器某处使用脚本运行项目?
查看完整描述

2 回答

?
DIEA

TA贡献1820条经验 获得超3个赞

更简单:构建几个祝贺文件,使用选项-f指定一个有效的配置文件,而不是-S.

可以更复杂:用户-D name和使用<IfDefine name>在配置文件中“选择”它的部分以应用于特定的启动。

注意:我使用apachectl,而不是直接httpd启动/停止 Apache。


查看完整回答
反对 回复 2022-06-17
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

在 xampp 包中没有直接apachectl文件,所以-D <name>我无法使用。这将是完美的解决方案,但不幸的是不可能。


现在我必须httpd-vhosts.conf从我想要启动它的每个项目中覆盖该文件。因此,我正在使用修改后的脚本解决方案:


#!\bin\bash

BASEDIR=$(dirname "$0")

xamppPath="C:\xampp\v7.3.10"

cp -f "$BASEDIR\httpd-vhosts.conf" "$xamppPath\apache\conf\extra\httpd-vhosts.conf"

sleep 1

cd $xamppPath

"apache\bin\httpd.exe" &

这不是完美的解决方案,但它确实有效。

两个 apache 服务同时具有两个不同的项目是不可能的,但直到现在还没有必要。


查看完整回答
反对 回复 2022-06-17
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号