【发布时间】:2015-01-15 00:42:13
【问题描述】:
试图找出 Plesk 的这种令人困惑的编码。 Plesk 在其系统中提供事件处理程序和预制变量。 (Plesk 事件处理程序文档:http://download1.parallels.com/Plesk/PP12/12.0/Doc/en-US/online/plesk-administrator-guide/index.htm?fileName=67897.htm"
简而言之,我正在尝试为创建新域的客户自动启用 nginx,方法是使用创建的域(变量名:NEW_DOMAIN_NAME)变量自动将输出“粘贴”到特定命令中,然后为命令自动运行。它是这样工作的:
- 客户选择创建域,这会触发事件处理程序
- NEW_DOMAIN_NAME 是检索客户输入域的变量(让我们使用 domain.com)
- 在事件处理程序中,我想在检索到创建的域名后执行这个命令:
/usr/local/psa/bin/subscription --update-web-server-settings domain.com -nginx-serve-static true -nginx-serve-php true
为了检索域名,我假设您使用 echo $NEW_DOMAIN_NAME。出于某种原因,我根本无法让它工作。我所知道的是,当您回显 $NEW_DOMAIN_NAME >> /tmp/testfile.log 时,输出会打印 domain.com 并保存文档。
我在 plesk 事件处理程序的命令行中尝试的编码如下:
domainname="$NEW_DOMAIN_NAME"
/usr/local/psa/bin/subscription --update-web-server-settings echo "$domainname" -nginx-serve-static true -nginx-serve-php true
在向 Plesk 论坛寻求支持时,遗憾的是他们出于某种原因不想提供适当的代码。但这是他们的回应:
“你必须在你的命令中定义你想从哪里获取变量“NEW_DOMAIN_NAME” - 默认情况下订阅实用程序不知道这一点,因为该变量不用于此实用程序的任何参数定义中。”
订阅实用程序文件显示如下:
#!/opt/psa/bin/sw-engine-pleskrun
<?php
die("The file {$_SERVER['SCRIPT_FILENAME']} is part of Plesk distribution. $
__sw_loader_pragma__('PLESK12');
?>
�v�9�9x^M��ƇTH�ڇh��u-2п��(���F^NؿA^Q�^U�UѺ=X ^]^N����
Em�I�VtQh$������֞<T^T��)H�I^N<^LK})[A�^\��+c�^?��AҖˇҁ]�%�^_.�ށFɁUāk,�$ү�Ưw�w^^K�$
请多多指教,谢谢!
【问题讨论】:
-
你能粘贴一些代码吗,我不完全明白你想要什么。你试过什么?变量如何设置?通过执行
some command >> some_file,所有标准输出将被追加到some_file。 -
你好!感谢您的回复,并为您的困惑感到抱歉。这是我到目前为止尝试使用的命令: domainname="$NEW_DOMAIN_NAME" /usr/local/psa/bin/subscription --update-web-server-settings echo "$domainname" -nginx-serve-static true -nginx-serve-php true 我相信我可能执行不正确,因为它当然不起作用
-
将代码添加到问题中。您可以在每行之前使用四个前导间隔对其进行格式化,以便于阅读!你的问题越清楚,别人回答的机会就越大!
-
当然,感谢您的提醒! :) @ShellFish
标签: bash variables nginx echo plesk