使用sudo为PHPdoc运行SH脚本

时间:2009-08-30 11:11:55

标签: php permissions sudo phpdoc

如何在PHPdoc生成文档时运行以下脚本?

#1 sudo -code

sudo source makedoc.sh

我得到了

no command source

#2没有sudo

问题是sudo没有命令source。 我试图通过将〜/ phpdoc / phpdoc的持久性更改为777然后运行

来解决问题失败
source makedoc.sh

我得到了

makedoc.sh:90: permission denied: /home/masi/phpdoc/phpdoc

#3没有sudo

我跑

 phpdoc -c makedoc.sh

我得到了

codes master $ phpdoc -c makedoc.sh
PHP Version 5.2.6-3ubuntu4.2
phpDocumentor version 1.4.2

Parsing configuration file phpDocumentor.ini...
   (found in /usr/share/php/data/PhpDocumentor/)...

done
Maximum memory usage set at 256M after considering php.ini...
using tokenizer Parser
a target directory must be specified
 try phpdoc -h

3 个答案:

答案 0 :(得分:2)

文件makedoc.sh是否有一个shebang行(例如!#/ usr / bin / bash)所以它可以变成可执行文件吗?

chmod +x makedoc.sh

,然后

<强>

sudo ./makedoc.sh

,看看会发生什么。

./表示在当前目录中运行makedoc.sh (它应该修复找不到文件的错误)

授予777权限允许任何人读取,写入或执行文件。这是Mike Arthur提到的安全风险。这可能更具潜在风险,但让其他人轻松修改,删除或执行您的文件绝不是一种好的做法。

答案 1 :(得分:1)

sudo source没什么意义,你是以root用户身份创建一个新shell,然后尝试更改环境,然后用root shell销毁它。

此外,仅当您想要在当前shell中更改环境时才使用source,我非常确定您不希望使用名为“makedoc.sh”的内容。

您可能只想运行:

sudo makedoc.sh

此外,永远不要将事情设置为777,它永远不是问题的解决方案,而且存在安全风险。

答案 2 :(得分:0)

makedocs.sh存在的一个原因是当您总是希望重用相同的运行时设置时,可以使用作为一个方便的shell脚本。一般来说,运行phpDocumentor 的方式

如果您只是想针对自己的代码运行phpDocumentor以便为其创建文档,那么您需要编辑makedocs.sh以将所有运行时参数设置为您希望它们的完全匹配。特别是,-t参数指定应该写入文档的目标位置。

实际上,除非您尝试将生成的文档直接写入系统范围的PEAR安装的“doc_dir”位置,否则不需要使用sudo来执行phpdoc。在这种情况下,由于root拥有PEAR,因此sudo是必要的。也许您的需求要求将您的文档写入该位置?