2012-02-29 38 views
7

tôi thêm một cronjob mới bằng cách sử dụng lệnh lệnh:Permission denied trong công việc cron COMAND

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

Nhưng lệnh không chạy và tôi nhận được một email ghi rõ:

/bin/sh: /home/gbtusyll/public_html/run.php: Quyền bị từ chối

Sự cố là gì?

Trả lời

5

thử

chmod +x run.php 

cũng đảm bảo rằng chủ sở hữu thích hợp được thiết lập (tức là nếu bạn đang đăng nhập như người dùng, nếu chủ sở hữu của tập tin là 'người sử dụng' - bạn có thể làm điều đó cho ví dụ bằng cách chạy ls -la

cẩn thận: điều này có thể rất nguy hiểm trên môi trường sản xuất, tuy nhiên tôi tin rằng điều này sẽ giải quyết được vấn đề phát triển của bạn.Bạn nên đọc thêm về các quyền sau này trên

+1

Để làm việc này, bạn cần phải có một dòng shebang trong tệp của mình; một cái gì đó như '#!/usr/bin/env php' là dòng đầu tiên. – praseodym

+0

@praseodym u là đúng, tôi upvoted câu trả lời của bạn – mkk

18

thay vào đó để chạy nó dưới dạng tập lệnh PHP thay vì một kịch bản shell thông thường.

+0

Thnaks.For lần đầu tiên tôi đang sử dụng cronjob và nó giúp tôi. – pkk

+0

Tôi cũng mới dùng cronjob. Đối với người dùng mới, cần lưu ý rằng liên kết đến đường dẫn đến môi trường của bạn cũng phải được đề cập đúng trong hầu hết các cPanels như thế này '/ usr/local/bin/php', thay vì chỉ' php'. Vì vậy, sử dụng '/ usr/local/bin/php/home/cPaneluser/public_html/yourscript.php'. Một số cPanels với các máy chủ chia sẻ có thể có các đường dẫn khác nhau. '/ usr/local/bin' và'/usr/bin' là các đường dẫn phổ biến từ gốc. (Rõ ràng, godaddy sử dụng cả hai, dựa trên trường hợp. [(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

Đối với hầu hết các máy chủ khác, [tham khảo hướng dẫn này để biết thêm] (https: //www.namecheap. com/support/knowledgebase/article.aspx/9453/29/cách thực hiện-script-qua-cron-jobs) –

2

Tự thân, /bin/sh không thể chạy tệp php. Các phân tích cú pháp PHP thực hiện điều đó. Sử dụng /bin/sh sẽ chỉ hoạt động nếu bạn cấp quyền thực thi tệp (+x) và đặt #!/usr/bin/php (hoặc bất cứ nơi nào nhị phân PHP của bạn được đặt) làm dòng đầu tiên của tệp.

Thử chạy /usr/bin/php /home/gbtusyll/public_html/run.php để sử dụng trình phân tích cú pháp PHP trực tiếp trên tệp của bạn. Trong trường hợp này, PHP không phải thực thi để chạy.