Đôi khi bạn có thể cần tự động hóa các tập lệnh PHP cho trang web hoặc ứng dụng của bạn. Bạn có thể dễ dàng làm điều này bằng cách sử dụng Cron Jobs. Trong bài viết này, chúng tôi sẽ xem xét cách chạy các tập lệnh PHP tự động bằng cách sử dụng cron Jobs.
Có hai cách để chạy các tập lệnh PHP tự động - sử dụng lệnh PHP hoặc qua URL. Chúng tôi sẽ xem xét cả hai phương pháp này. Hãy để chúng tôi nói rằng bạn có tập lệnh PHP tại /var/www/html/test.php có URL tương ứng là //mydomain.com/test.php
1. Chạy tập lệnh PHP bằng lệnh PHP
Mở thiết bị đầu cuối để xác định vị trí nhị phân PHP.
$ sudo locate php
Hầu hết, nó sẽ được đặt tại/usr/bin/php hoặc/usr/local/bin/php
Vì vậy, lệnh để chạy tập lệnh PHP của bạn từ thiết bị đầu cuối là
$ sudo /usr/bin/php /var/www/html/test.php
Chúng tôi sẽ thêm lệnh tương tự trong các công việc cron. Mở nó bằng lệnh crontab
$ sudo crontab -e
Thêm dòng sau để tạo một công việc cron chạy tập lệnh của bạn mỗi giờ. Vui lòng thay đổi tần số công việc cron [00 * * * *] theo yêu cầu của bạn. Đây là lời giải thích về định dạng lịch trình công việc Cron.
00 * * * * sudo /usr/bin/php /var/www/html/test.php
Cũng đọc: Cách tắt Duyệt thư mục trong Apache
2. Tự động chạy tập lệnh PHP qua URL
Vì các tập lệnh PHP chủ yếu được truy cập qua URL, mỗi khi bạn truy cập URL, nên tập lệnh PHP tương ứng của nó sẽ được chạy. Vì vậy, chúng tôi cần tự động hóa truy cập URL của tập lệnh PHP của bạn để tự động chạy nó. Vì vậy, bạn có thể sử dụng các chương trình như Curl, Wget hoặc Lynx để mở URL.
Ví dụ: nếu URL tập lệnh PHP của bạn là //mydomain.com/test.php thì lệnh sau đây có thể được sử dụng để truy cập nó thông qua tiện ích Curl
$ sudo /usr/bin/curl -O //mydomain.com/test.php
Chúng tôi sẽ thêm lệnh trên vào cron Jobs
$ sudo crontab -e
Thêm dòng sau để truy cập URL của bạn mỗi giờ. Vui lòng thay đổi tần số công việc theo yêu cầu của bạn.
00 * * * * sudo /usr/bin/curl -O //mydomain.com/test.php
Đó là nó. Như bạn có thể thấy nó rất dễ dàng để tự động hóa các tập lệnh PHP. Bạn có thể chạy chúng thông qua lệnh PHP hoặc bằng cách truy cập URL của nó.
Cũng đọc: Cách ngăn chặn tải xuống tệp trực tiếp trong Apache
Bài viết liên quan:
Có thể trùng lặp: Cách chạy tập lệnh PHP trong cron
How to run a php script in cron
Tôi cần chạy tập lệnh PHP tại thời gian dự kiến hàng ngày để cập nhật một số trường trong cơ sở dữ liệu và gửi email tự động. Làm thế nào tôi có thể làm điều này?
Có thể viết một số dịch vụ trong Xamp Server để chạy tập lệnh hàng ngày vào thời gian dự kiến không? Tôi không biết làm thế nào để cập nhật cơ sở dữ liệu và gửi email tự động vào thời gian dự kiến. Có ai có thể chia sẻ một số ý tưởng hoặc khái niệm?
Tôi đang sử dụng PHP và MySQL đang chạy trong máy chủ Linux.
hỏi ngày 9 tháng 11 năm 2012 lúc 18:10Nov 9, 2012 at 18:10
3
Có thể viết một số dịch vụ trong Xamp Server để chạy tập lệnh hàng ngày vào thời gian dự kiến không?
Tạo một công việc cron.
Đã trả lời ngày 9 tháng 11 năm 2012 lúc 18:12Nov 9, 2012 at 18:12
Jason McCrearyjason McCrearyJason McCreary
70.1K21 Huy hiệu vàng129 Huy hiệu bạc170 Huy hiệu đồng21 gold badges129 silver badges170 bronze badges
Nhìn vào Cron Jobs: //en.wikipedia.org/wiki/cron Họ sẽ cho phép bạn lên lịch nhiều tập lệnh để tự động chạy, mà không cần sự can thiệp của bạn vào lịch trình xác định.
Đã trả lời ngày 9 tháng 11 năm 2012 lúc 18:11Nov 9, 2012 at 18:11
Câu trả lời được đề xuất
Bạn cần thiết lập một công việc cron thông qua cPanel của bạn
Nhảy để đăng
Bạn có thể cung cấp thêm chi tiết về nguồn từ nơi này sẽ được thực hiện không? Tôi đã từng lên lịch cho các tập lệnh PHP trong môi trường máy chủ Windows bằng trình lập lịch tác vụ. Nếu đây là trường hợp, trước tiên bạn có thể thêm đường dẫn PHP vào biến môi trường hệ thống đường dẫn; Điều này sẽ cho phép
Nhảy để đăng
Bạn có thể cung cấp thêm chi tiết về nguồn từ nơi này sẽ được thực hiện không? Tôi đã từng lên lịch cho các tập lệnh PHP trong môi trường máy chủ Windows bằng trình lập lịch tác vụ. Nếu đây là trường hợp, trước tiên bạn có thể thêm đường dẫn PHP vào biến môi trường hệ thống đường dẫn; Điều này sẽ cho phép
Nhảy để đăng
Bạn có thể cung cấp thêm chi tiết về nguồn từ nơi này sẽ được thực hiện không? Tôi đã từng lên lịch cho các tập lệnh PHP trong môi trường máy chủ Windows bằng trình lập lịch tác vụ. Nếu đây là trường hợp, trước tiên bạn có thể thêm đường dẫn PHP vào biến môi trường hệ thống đường dẫn; Điều này sẽ cho phép
đường kính
6 năm trướcBạn cần thiết lập một công việc cron thông qua cPanel của bạn
6 năm trước
OK, Tóm tắt - Nếu trên Linux, hãy sử dụng Cron. Nếu trên Windows, hãy sử dụng nhiệm vụ. Nếu bạn muốn sử dụng mã PHP thuần túy - bạn điên rồ.
I want to execute this code just PHP script.
Is this possible ?
Trả lời chủ đề này
6 năm trướcOK, Tóm tắt - Nếu trên Linux, hãy sử dụng Cron. Nếu trên Windows, hãy sử dụng nhiệm vụ. Nếu bạn muốn sử dụng mã PHP thuần túy - bạn điên rồ.
Trả lời chủ đề này
đường kính
6 năm trướcBạn có thể cung cấp thêm chi tiết về nguồn từ nơi này sẽ được thực hiện không? Tôi đã từng lên lịch cho các tập lệnh PHP trong môi trường máy chủ Windows bằng trình lập lịch tác vụ. Nếu đây là trường hợp, trước tiên bạn có thể thêm đường dẫn PHP vào biến môi trường hệ thống đường dẫn; Điều này sẽ cho phép
Một người chạy Windows tác vụ có chức năng tương tự như một công việc cron. Tại sao bạn không muốn sử dụng một công việc cron? Đó là những gì họ.re cho. 2,346 "Nothing to see here." Moderator
6 năm trướcTất cả 9 câu trả lời
6 năm trước
Tôi không muốn sử dụng một công việc cron ở đây. Tôi muốn thực thi mã này chỉ là tập lệnh PHP. Điều này có thể?
Rudym
Bạn có thể cung cấp thêm chi tiết về nguồn từ nơi này sẽ được thực hiện không? Tôi đã từng lên lịch cho các tập lệnh PHP trong môi trường máy chủ Windows bằng trình lập lịch tác vụ. Nếu đây là trường hợp, trước tiên bạn có thể thêm đường dẫn PHP vào biến môi trường hệ thống đường dẫn; Điều này sẽ cho phép bạn sử dụng PHP làm lệnh trong dòng lệnh. Sau đó, trong bộ lập lịch, bạn có thể PHP C:\SCRIPTS_FOLDER\SCRIPT_FILENAME.php
để thực thi.
Được chỉnh sửa 6 năm trước bởi Rudym vì: Đã thêm chi tiết để làm rõ.
rproffitt2.346 "Không có gì để xem ở đây." Người điều hành 1,355 Nearly a Posting Virtuoso Featured Poster
6 năm trướcĐây trông giống như một công việc cho ... cron ...
6 năm trước
PHP được thực thi khi có yêu cầu. Thông thường yêu cầu đầu tiên đến từ trình duyệt khi người dùng nhập URL và nhấn enter.
Về mặt lý thuyết, bạn có thể sử dụng lệnh ngủ [60] và yêu cầu tập lệnh kiểm tra lại trong một vòng lặp, nhưng nó không hiệu quả khủng khiếp vì bạn biết SRIPT chỉ cần được thực thi một lần mỗi ngày. Tuy nhiên, nếu bạn đang cố gắng thực hiện nó trong một lần thực hiện, đó là cách duy nhất tôi biết.
$break = FALSE;
while[$break == FALSE]
{
if[$now != $base]
{
sleep[60];
}
elseif[$now == $base]
{
mail[$to, $subject, $message, $headers];
sleep[60]; //In order to make the next execution == FALSE
}
}
Đã chỉnh sửa 6 năm trước bởi James_43 vì: Sai lầm
đường kính
6 năm trướcOK, Tóm tắt - Nếu trên Linux, hãy sử dụng Cron. Nếu trên Windows, hãy sử dụng nhiệm vụ. Nếu bạn muốn sử dụng mã PHP thuần túy - bạn điên rồ.
Trả lời chủ đề này
Là một phần của cộng đồng Daniweb
Chúng tôi là một cộng đồng thân thiện, tập trung vào ngành của các nhà phát triển, các chuyên gia CNTT, nhà tiếp thị kỹ thuật số và những người đam mê công nghệ gặp gỡ, học tập và chia sẻ kiến thức.