【发布时间】:2021-09-18 05:11:43
【问题描述】:
我没有太多的编码经验,我还在学习。
这是一个单独的配置文件,包含在 httpd.conf 中
我有一个大的 apache 配置,想使用变量来清理配置文件。我的配置文件有超过 80 个类似的条目,如果我能弄清楚如何使用这些变量,我相信可以清理它们。 我想取目录中文件的名称并将其用作变量。 这里的目录是 /www/pub/sites/8.0/conf/ 里面的 conf 文件是站点的 php 文件。我想创建或使用任何末尾有 .php 的文件的名称,并将该名称用作变量。因此,如果有一个名为 clark apache 的文件将使用变量 ${siteName} 这将是一个名为 clark.php 的文件。希望我的解释是正确的,或者你至少可以理解我想要做什么。
Redirect /direct /direct.php
<Directory /pub/www/sites/8.0/htdocs>
Require all granted
# Enable ".htaccess" to password protect directories.
AllowOverride AuthConfig
</Directory>
Alias /forms /pub/www/sites/forms
<Directory /pub/www/sites/forms>
Require all granted
</Directory>
<VirtualHost *:80>
SetEnv siteName gentry
DocumentRoot "/pub/www/sites/8.0/htdocs"
ServerName gentry.testwebs.com
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
<VirtualHost *:80>
SetEnv siteName foster
DocumentRoot "/pub/www/sites/8.0/htdocs"
ServerName foster.testwebs.com
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
<VirtualHost *:80>
SetEnv siteName mcintosh
DocumentRoot "/pub/www/sites/8.0/htdocs"
ServerName mcintosh.testwebs.com
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
<VirtualHost *:80>
SetEnv siteName clark
DocumentRoot "/pub/www/sites/8.0/htdocs"
ServerName clark.testwebs.com
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
#code basically repeats itself. etc ........
code here
当我启动 apache 时,下面的配置给了我一个错误。
[2021 年 7 月 7 日星期三 08:09:41.846350] [core:warn] [pid 21457:tid 140546613625472] AH00111:未定义配置变量 ${siteName}
我可以用这样的东西清理它吗?
SetEnv sitesName "/www/pub/sites/8.0/conf/${sitesName}.php"
<Directory /pub/www/sites/8.0/htdocs>
Require all granted
# Enable ".htaccess" to password protect directories.
AllowOverride AuthConfig
</Directory>
Alias /forms /pub/www/sites/forms
<Directory /pub/www/sites/forms>
Require all granted
</Directory>
<VirtualHost *:80>
SetEnv sitesName "/www/pub/sites/8.0/conf/${sitesName}.php"
DocumentRoot "/pub/www/sites/8.0/htdocs"
ServerName ${sitesName}.testwebs.com
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
[/code]
提前感谢您的帮助。
【问题讨论】:
标签: php apache webserver httpd.conf