L'exécution du script SH avec pour phpdoc sudo
-
20-09-2019 - |
Question
Comment pouvez-vous exécuter le script suivant dans la génération de documents par phpdoc?
# 1 sudo -code
sudo source makedoc.sh
Je reçois
no command source
# 2 sans sudo
Le problème est que sudo
ne pas la commande source
.
J'ai essayé de résoudre le problème, sans succès, en changeant les persmissions de ~ / phpdoc / phpdoc à 777 puis en cours d'exécution
source makedoc.sh
Je reçois
makedoc.sh:90: permission denied: /home/masi/phpdoc/phpdoc
# 3 sans sudo
Je lance
phpdoc -c makedoc.sh
Je reçois
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
La solution
Est-ce que le fichier makedoc.sh ont une ligne de tralala (par exemple #! / Usr / bin / bash) il peut être exécutable?
chmod +x makedoc.sh
puis
sudo ./makedoc.sh
et voir ce qui se passe.
Le ./ signifie exécuter makedoc.sh dans le répertoire courant (il faut corriger le fichier erreur introuvable)
Donner des autorisations de 777 permet à quiconque de lire, écrire ou exécuter les fichiers. Ceci est le risque de sécurité Mike Arthur appelé. Il peut être plus d'un risque potentiel, mais il n'y a jamais de bonnes pratiques pour le rendre facile pour les autres de modifier, supprimer ou exécuter vos fichiers.
Autres conseils
source sudo très peu fait sens, vous faites un nouveau shell en tant qu'utilisateur racine, puis essayer de changer l'environnement qui sera ensuite détruit avec le shell root.
, la source est utilisée que si vous voulez aussi être faire changer votre environnement dans le shell courant que je suis sûr que vous ne voudriez pas faire avec ce qu'on appelle « makedoc.sh ».
Vous voulez probablement juste courir:
sudo makedoc.sh
Aussi, ne jamais mettre les choses à 777, il est jamais la solution au problème et il est un risque de sécurité.
un raison de l'existence de makedocs.sh est d'être un script shell pratique pour vous d'utiliser quand vous voulez toujours réutiliser les mêmes paramètres d'exécution . Il est pas la façon pour exécuter phpDocumentor en général.
Si vous essayez d'exécuter simplement phpDocumentor contre votre propre code afin de créer docs pour cela, vous devez modifier makedocs.sh pour définir exactement ce que vous voulez tous les arguments d'exécution soient. En particulier, l'argument -t pour spécifier le cible endroit où les documents doivent être écrits.
Vraiment, il ne devrait pas être nécessaire d'utiliser sudo pour exécuter phpdoc, à moins que vous essayez d'avoir la documentation générée par écrit directement dans l'emplacement « doc_dir » de votre installation PEAR système. Dans ce cas, puisque la racine est propriétaire PEAR, sudo serait nécessaire. Peut-être que vos besoins font pas exigent vos documents à écrire à cet endroit?