2012-02-29 14 views
7

io sono l'aggiunta di un nuovo cronjob utilizzando il comando comando:Autorizzazione negata in cron jobs COMAND

/bin/sh: /home/gbtusyll/public_html/run.php

ma il comando non viene eseguito e ho un mail indicando:

/bin/sh: /home/gbtusyll/public_html/run.php: permesso negato

Qual è il problema?

risposta

5

provare

chmod +x run.php 

garantire anche che una corretta proprietario è impostato (cioè se si è connessi come utente, se il proprietario del file è 'utente' - si può fare ad esempio eseguendo ls -la

attenzione: questo potrebbe essere molto pericoloso in evironment produzione, tuttavia credo che questo risolverebbe il problema dello sviluppo si dovrebbe leggere di più sulle autorizzazioni in seguito

+1

Per far funzionare questo, è necessario disporre di una riga shebang nel file; qualcosa come '#!/usr/bin/env php' come prima riga. – praseodym

+0

@praseodym hai ragione, ho upvoted la tua risposta – mkk

18

Usa php /home/gbtusyll/public_html/run.php invece eseguirlo come uno script PHP al posto di. uno script di shell regolare.

+0

Thnaks. Per la prima volta sto usando cronjob e mi aiuta. – pkk

+0

Sono anche nuovo nel cronjob. Per i nuovi utenti, si dovrebbe notare che il link al proprio percorso per l'ambiente dovrebbe anche essere correttamente menzionato nella maggior parte dei cPanel come questo/usr/local/bin/php', invece di solo 'php'. Quindi usa '/ usr/local/bin/php/home/cPaneluser/public_html/yourscript.php'. Alcuni cPanel con host condivisi possono avere percorsi diversi. '/ usr/local/bin' e'/usr/bin' sono percorsi popolari da root. (Apparentemente, Godaddy usa entrambi, in base al caso: [(1)] (https://in.godaddy.com/help/critical-paths-for-your-linux-vps-or-dedicated-server-1360) [(2)] (https://in.godaddy.com/help/create-cron-jobs-16086)) –

+0

Per la maggior parte degli altri host, [consultare questa guida per saperne di più] (https: //www.namecheap. it/support/knowledgebase/article.aspx/9453/29/how-to-run-scripts-via-cron-job) –

2

Da solo, /bin/sh non può eseguire file php. L'analisi PHP lo fa. L'utilizzo di /bin/sh funzionerà solo se si concede il permesso di esecuzione del file (+x) e si inserisce #!/usr/bin/php (o in qualsiasi punto del file binario PHP) come prima riga del file.

Prova a eseguire /usr/bin/php /home/gbtusyll/public_html/run.php per utilizzare il parser PHP direttamente sul tuo file. In questo scenario, il PHP non deve essere eseguibile per essere eseguito.