0

PHPdoc でドキュメントを生成する際に、次のスクリプトを実行するにはどうすればよいですか?

#1 sudo コード

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
4

3 に答える 3

2

ファイル makedoc.sh には、実行可能にするためのシバン行 (!#/usr/bin/bash など) がありますか?

chmod +x makedoc.sh

それで

sudo ./makedoc.sh

そして何が起こるか見てください。

./ は、現在のディレクトリで makedoc.shを実行することを意味します (ファイルが見つからないというエラーを修正する必要があります)。

777 のパーミッションを付与すると、誰でもファイルの読み取り、書き込み、または実行が可能になります。これは、Mike Arthur が言及したセキュリティ リスクです。より潜在的なリスクになる可能性がありますが、他のユーザーがファイルを簡単に変更、削除、または実行できるようにすることは決して良い習慣ではありません。

于 2009-08-30T11:20:48.200 に答える
1

sudo source はほとんど意味がありません。root ユーザーとして新しいシェルを作成してから、root シェルで破棄される環境を変更しようとしています。

また、ソースは、現在のシェルで環境を変更したい場合にのみ使用されます。これは、「makedoc.sh」と呼ばれるものでやりたくないでしょう。

おそらく実行したいだけです:

sudo makedoc.sh

また、決して 777 に設定しないでください。これは決して問題の解決策ではなく、セキュリティ リスクです。

于 2009-08-30T11:19:26.940 に答える
0

makedocs.sh が存在する理由の1 つは、常に同じ実行時設定を再利用したい場合に便利なシェル スクリプトになることです。一般的に phpDocumentor を実行する方法ではありません。

ドキュメントを作成するために、独自のコードに対して単純に phpDocumentor を実行しようとしている場合は、makedocs.sh を編集して、すべてのランタイム引数を希望どおりに正確に設定する必要があります。特に、ドキュメントを書き込むターゲットの場所を指定する -t 引数。

実際には、生成されたドキュメントをシステム全体の PEAR インストールの "doc_dir" の場所に直接書き込もうとしている場合を除き、sudo を使用して phpdoc を実行する必要はありません。この場合、root が PEAR を所有しているため、sudo が必要になります。ドキュメントをその場所に書き込む必要がないのではないでしょうか?

于 2009-11-22T14:35:07.200 に答える