ubuntu Apache:如何添加到虚拟主机的路径

xriantvc  于 2022-10-27  发布在  Apache
关注(0)|答案(2)|浏览(161)

我需要将一个额外的路径添加到我的用于PHP的Apache配置中。理想情况下,它应该是服务器范围的,但因为我使用的是ServerPilot,所以更容易只影响单个的VirtualHosts。
路径当前设置为路径/opt/sp/php7.3/bin:/sbin:/usr/sbin:/bin:/usr/bin,但我还需要添加/opt/sqlanywhere 17/res
例如/opt/sp/php7.3/bin:/sbin:/usr/sbin:/bin:/usr/bin:/opt/sqlanywhere17/res
我试着添加了
export PATH=$PATH:/opt/sqlanywhere17/res但Apache无法启动
我需要在VirtualHosts.conf文件中使用什么语法才能使其工作?

mccptt67

mccptt671#

您可以在ApacheHttpd中使用SetEnv设置env变量。

SetEnv VARIABLE_NAME variable_value

有关详细信息,请参阅link
您可以在Virtualhost内设置PATH环境变量。

SetEnv path  /opt/sp/php7.3/bin:/sbin:/usr/sbin:/bin:/usr/bin:/opt/sqlanywhere17/res

然后,您可以使用以下示例代码在PHP中检索PATH变量:

<?php
$path = getenv("path");
echo $path;
?>
uidvcgyl

uidvcgyl2#

您可以在几个地方定义如下内容-


# httpd.conf

SetEnv PATH "/my/personal/path/to/venv/bin:${PATH}"

或者,如果您在httpd.conf中包含了另一个配置,如下所示:


# httpd.conf

IncludeOptional /my/path/to/another/conf/local_websites.conf

# local_websites.conf

SetEnv PATH "/my/personal/path/to/venv/bin:${PATH}"

但是由于某些原因,我们不能将这样的行放入vhost配置中,它只是获取$PATH并按原样粘贴它。

<VirtualHost *:80>
   # This will export to the Apache environ:
   # PATH="/my/personal/path/to/venv/bin:${PATH}"
   SetEnv PATH "/my/personal/path/to/venv/bin:${PATH}"
</VirtualHost>

顺便说一句,如果我们还将在IncludeOption中执行IncludeOption-SetEnv也将不起作用


# httpd.conf

IncludeOptional /my/path/to/another/conf/local_websites.conf

# local_websites.conf

IncludeOptional /my/path/to/another/conf/websites1.conf
IncludeOptional /my/path/to/another/conf/websites2.conf
IncludeOptional /my/path/to/another/conf/websites3.conf

# websites1.conf

# this - will no longer work it will paste it as is, just like a vhost.

SetEnv PATH "/my/personal/path/to/venv/bin:${PATH}"

相关问题