Phpdoc 용 Sudo와 함께 SH 스크립트를 실행합니다
-
20-09-2019 - |
문제
PHPDOC에 의해 문서를 생성 할 때 다음 스크립트를 어떻게 실행할 수 있습니까?
#1 Sudo -코드
sudo source makedoc.sh
나는 얻다
no command source
Sudo없이 #2
문제는 그 것입니다 sudo
명령이 없습니다 source
. 나는 ~/phpdoc/phpdoc의 쾌락을 777로 변경하고
source makedoc.sh
나는 얻다
makedoc.sh:90: permission denied: /home/masi/phpdoc/phpdoc
Sudo없이 #3
난 달린다
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
해결책
Makedoc.sh 파일에 Shebang 라인 (예 :!#/usr/bin/bash)이 있으므로 실행 파일을 만들 수 있습니까?
chmod +x makedoc.sh
그 다음에
sudo ./makedoc.sh
그리고 무슨 일이 일어나는지보십시오.
./는 run makedoc.sh를 의미합니다 현재 디렉토리에서 (파일을 찾지 못한 오류가 없어야 함)
777의 권한을 부여하면 누구나 파일을 읽거나 쓰거나 실행할 수 있습니다. 이것은 Mike Arthur가 언급 한 보안 위험입니다. 잠재적 인 위험 일 수 있지만 다른 사람들이 파일을 쉽게 수정, 삭제 또는 실행할 수 있도록하는 것은 좋은 방법이 아닙니다.
다른 팁
Sudo Source는 거의 의미가 없습니다. 루트 사용자로서 새 쉘을 만들고 환경을 변경하려고 시도하여 루트 쉘로 파괴됩니다.
또한 소스는 현재 쉘에서 환경을 바꾸고 싶을 때만 사용됩니다. "Makedoc.sh"라는 일로하고 싶지 않을 것입니다.
당신은 아마 달리기를 원할 것입니다 :
sudo makedoc.sh
또한 777로 아무 것도 설정하지 않으며 문제에 대한 해결책이 아니며 보안 위험입니다.
그만큼 하나 Makedocs.sh의 존재 이유는 당신이 사용할 편리한 쉘 스크립트가되기 때문입니다. 항상 동일한 런타임 설정을 재사용하고 싶을 때. 그것은이다 ~ 아니다 길 일반적으로 phpdocumentor를 실행합니다.
문서를 작성하기 위해 간단히 자신의 코드에 대해 phpdocumentor를 실행하려는 경우 Makedocs.sh를 편집하여 모든 런타임 인수를 원하는대로 정확하게 설정해야합니다. 특히, -t 인수를 지정합니다 표적 문서를 작성 해야하는 위치.
실제로 Sudo를 사용하여 Sudo를 사용하여 PHPDOC를 실행할 필요가 없어야합니다. PHPDOC를 실행할 필요가 없습니다. 생성 된 문서를 시스템 전체 배 설치의 "DOC_DIR"위치에 직접 작성하려고하지 않는 한. 이 경우 루트는 배를 소유하기 때문에 Sudo가 필요합니다. 어쩌면 당신의 필요가 있습니다 ~ 아니다 해당 위치에 문서를 작성해야합니까?