Khi triển khai ứng dụng Laravel của tôi cho Heroku, tôi sẽ không tìm thấy Procfile. Làm cách nào để tạo ra cái này? Và tập tin này cần phải có gì. Tôi không thể truy cập ứng dụng thông qua trình duyệt vì lỗi 403 bị cấm.
Thông báo lỗi chính xác khi đẩy các tệp vào Heroku:
NOTICE: No Procfile, using 'web: vendor/bin/heroku-php-apache2'.
Đã hỏi ngày 23 tháng 2 năm 2017 lúc 13:06Feb 23, 2017 at 13:06
Procfile là một tập tin có tên là Procfile và là một cơ chế để tuyên bố những lệnh nào được điều hành bởi ứng dụng của bạn trên nền tảng Heroku. Vì vậy, bạn cần tạo một tệp trên thư mục
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
3 của mình, đặt tên cho nó echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
4 và thêm các mục sau:web: vendor/bin/heroku-php-apache2
Sau đó, hãy lưu nó và tải nó lên máy chủ của bạn.
Đã trả lời ngày 23 tháng 2 năm 2017 lúc 15:45Feb 23, 2017 at 15:45
HedegarehedegareHedegare
1.9971 Huy hiệu vàng18 Huy hiệu bạc21 Huy hiệu đồng1 gold badge18 silver badges21 bronze badges
1
Tạo nó với các lệnh này:
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
Đã trả lời ngày 23 tháng 2 năm 2017 lúc 13:49Feb 23, 2017 at 13:49
Các điểm sau rất quan trọng để tránh lỗi này:
- Tạo một procfile trong thư mục gốc của ứng dụng Laravel của bạn. Bạn có thể tạo điều này từ IDE hoặc thông qua CLI của mình bằng cách chạy lệnh sau:
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
mà không có trích dẫn.
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
- Tên của tệp có tính tương tác ở định dạng
5.echo web: vendor/bin/heroku-php-apache2 public/ > Procfile git add . git commit -m "Procfile for Heroku"
- Bạn cần phải đẩy đến Heroku Master khi bạn ở trong chi nhánh chính của bạn.master while you are on your local master branch.
Để đẩy từ một nhánh địa phương khác, hãy chạy lệnh sau:
git push heroku your-local-branch:master
Vì vậy, nếu bạn đang đẩy từ chi nhánh
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
6, bạn nên chạy:git push heroku local-dev:master
Đã trả lời ngày 2 tháng 8 năm 2021 lúc 12:33Aug 2, 2021 at 12:33
Maswerdnamaswerdnamaswerdna
3152 Huy hiệu bạc10 Huy hiệu đồng2 silver badges10 bronze badges
1
Nếu bạn đã theo dõi các tài liệu và thấy lỗi này, hai điều bạn nên làm
1. Tạo Procfile một cách chính xác
Các tài liệu yêu cầu chúng tôi thực thi lệnh này
// Do not do this
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
Hãy nhớ rằng, bạn cần xóa các trích dẫn đó khi thực thi từ dấu nhắc lệnh. Dòng chính xác làyou need to remove those quotes when executing from the command prompt. The exact line is
// Execute this
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
Và kiểm tra tên của tệp, nó sẽ bắt đầu bằng P ở chữ hoa: ProcfileProcfile
2. Kiểm tra chi nhánh
Nếu bạn không ở trong chi nhánh chính địa phương trong khi triển khai mã cho Heroku, bạn sẽ kết thúc với các lỗi.master branch while deploying the code to Heroku, you will end up with the errors.
Bạn cần phải đẩy đến Heroku Master khi bạn ở trong chi nhánh chính của bạn. Đây là thiết lập mặc định.
Vì một số lý do, nếu bạn muốn đẩy đến Heroku từ một nhánh khác, bạn cần phải làm điều này:push to Heroku from a different branch you need to do this:
git push heroku you-local-branch:master
Đổi tên chi nhánh của bạn thành tên thực tế của chi nhánh hiện tại của bạn. Điều này cũng giải quyết mọi thứ cập nhật vấn đề. your-local-branch to the actual name of your current branch. This also solves everything up-to-date issue.
web: vendor/bin/heroku-php-apache2
0 Cập nhật lần cuối vào ngày 18 tháng 10 năm 2021 Bài viết này mô tả cách lấy một ứng dụng PHP hiện có và triển khai nó cho Heroku. Các thực tiễn tốt nhất trong bài viết này cho rằng bạn có: Các chi tiết về hỗ trợ PHP của Heroku, được mô tả trong bài viết hỗ trợ PHP của Heroku. Hỗ trợ HEROKU PHP sẽ chỉ được áp dụng cho các ứng dụng khi ứng dụng có một tệp có tên
Tiếng Anh - 日本 語 にĐiều kiện tiên quyết
Tổng quan
7 trong thư mục gốc. Ngay cả khi một ứng dụng không có phụ thuộc của nhà soạn nhạc, nó phải bao gồm một echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
7 trống để được công nhận là ứng dụng PHP.echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
Quản lý phụ thuộc
Heroku sử dụng nhà soạn nhạc để quản lý phụ thuộc trong các dự án PHP. Nếu ứng dụng của bạn có bất kỳ phụ thuộc nào, tệp
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
7 sẽ chỉ định chúng. Nó sẽ trông giống như thế này:web: vendor/bin/heroku-php-apache2
1Sau đó, ứng dụng PHP của bạn có thể sử dụng các phụ thuộc mà nhà soạn nhạc đã cài đặt. Các phụ thuộc thường được cài đặt vào thư mục
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
0 sau khi bao gồm trình tải tự động được tạo bởi nhà soạn nhạc, thường như thế này:web: vendor/bin/heroku-php-apache2
2Các thư viện nhà cung cấp thường được cài đặt cho
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
0 bởi nhà soạn nhạc, nhưng một số dự án xác định lại tên của thư mục này. Chạy echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
2 để tìm đúng tên đường dẫn.Bất cứ khi nào bạn thêm hoặc thay đổi phụ thuộc vào
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
7, bạn phải tái tạo tệp khóa. Tệp khóa này rất quan trọng để đảm bảo hành vi có thể tái tạo cho các phụ thuộc của bạn trên nhiều môi trường. Nó cũng giúp đảm bảo chẵn lẻ dev/prod. Để tạo tệp echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
4 của bạn, hãy đảm bảo bạn đã cài đặt trình soạn thảo và sau đó nhập:web: vendor/bin/heroku-php-apache2
3Sau khi cập nhật các phụ thuộc của bạn và tạo lại tệp khóa, đừng quên thêm và cam kết các thay đổi vào kho Git của bạn:
web: vendor/bin/heroku-php-apache2
4Bất cứ khi nào một ứng dụng được triển khai, Heroku sẽ đọc tệp
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
4 và cài đặt các phụ thuộc sản xuất phù hợp vào thư mục echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
6 bằng cách chạy echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
7 trong quá trình xây dựng. Để biết thêm thông tin, hãy xem hành vi xây dựng PHP.Mỗi nhà phát triển trong nhóm của bạn sẽ chạy
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
8 để cài đặt các phụ thuộc giống như mọi người khác, bởi vì echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
4 đã nhớ đến họ.Cách giữ xây dựng các hiện vật của Git
Ngăn chặn các tạo tác xây dựng đi vào kiểm soát sửa đổi bằng cách tạo tệp
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
0. Thư mục nhà soạn nhạc echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
6 phải được bao gồm trong tệp echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
0 của bạn. Điều này giữ cho các kích thước kho lưu trữ nhỏ, đơn giản hóa các bản cập nhật phụ thuộc và cho phép nhà soạn nhạc cài đặt một cách đáng tin cậy một phụ thuộc của ứng dụng dựa trên echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
4Ở đây, một tệp
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
0 điển hình:web: vendor/bin/heroku-php-apache2
5Chỉ định Runtimes và Tiện ích mở rộng
Tùy chọn, bạn có thể chỉ định động cơ nào [PHP hoặc HHVM] và phiên bản để sử dụng trong thời gian chạy. Để biết thêm thông tin, xem việc chọn bài viết thời gian chạy.
Bất kỳ tiện ích mở rộng PHP nào không được bật theo mặc định đều có thể được bật thông qua
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
7. Bài viết mở rộng có một danh sách chi tiết các tiện ích mở rộng và hướng dẫn có sẵn về cách kích hoạt chúng.Procfile
Procfile là một tệp văn bản trong thư mục gốc của ứng dụng của bạn xác định các loại quy trình và tuyên bố rõ ràng lệnh nào sẽ được thực thi để bắt đầu ứng dụng của bạn.
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
4 của bạn sẽ trông giống như thế này:web: vendor/bin/heroku-php-apache2
Điều này tuyên bố một loại quy trình duy nhất,
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
7 và lệnh cần thiết để chạy nó. Tên, echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
7, là quan trọng ở đây. Nó tuyên bố rằng loại quy trình này sẽ được gắn vào ngăn xếp định tuyến HTTP của Heroku và nhận lưu lượng truy cập web khi được triển khai.Chọn một máy chủ web
Tùy thuộc vào thời gian chạy [PHP hoặc HHVM] và máy chủ web [APACHE2 hoặc NGINX], bạn muốn sử dụng để chạy ứng dụng của mình, lệnh cho loại quy trình
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
7 trong echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
4 của bạn sẽ khác. Các tùy chọn có thể được ghi lại trong bài viết của máy chủ web. Ví dụ: để sử dụng Nginx làm máy chủ web thay thế, echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
4 sẽ chứa:web: vendor/bin/heroku-php-apache2
7Các tập lệnh khởi động này [
git push heroku your-local-branch:master
2 hoặc git push heroku your-local-branch:master
3] chấp nhận các tùy chọn và đối số khác nhau để tinh chỉnh cấu hình của ứng dụng của bạn. Vui lòng tham khảo Tùy chỉnh máy chủ web và cài đặt thời gian chạy cho PHP để biết thêm thông tin.Định cấu hình gốc tài liệu
Tùy chọn, bạn có thể sử dụng root tài liệu cho ứng dụng của mình mà không phải là thư mục gốc của ứng dụng. Để làm điều này, hãy sửa đổi
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
4 của bạn để thêm một đối số ở cuối bootscript. Đối số sẽ là tên của thư mục nên được sử dụng làm gốc tài liệu, liên quan đến thư mục gốc ứng dụng của bạn.Ví dụ: nếu bạn có một thư mục có tên
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
3 có chứa tệp javascript, css, hình ảnh và tệp git push heroku your-local-branch:master
6 của bạn, echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
4 của bạn sẽ xác định máy chủ web Apache với thư mục đó được sử dụng làm gốc tài liệu như sau:web: vendor/bin/heroku-php-apache2
8Triển khai ứng dụng của bạn cho Heroku
Sau khi bạn thực hiện các thay đổi của mình với Git, bạn có thể triển khai ứng dụng của mình cho Heroku.
web: vendor/bin/heroku-php-apache2
9Để mở ứng dụng trong trình duyệt của bạn, hãy nhập
git push heroku your-local-branch:master
8.Dynos một lần
Heroku cho phép bạn chạy các lệnh trong một dyno một lần bằng cách sử dụng lệnh
git push heroku your-local-branch:master
9. Sử dụng điều này cho các tập lệnh và các ứng dụng chỉ cần được thực thi khi cần, chẳng hạn như các tác vụ bảo trì, tải đồ đạc vào cơ sở dữ liệu hoặc di chuyển cơ sở dữ liệu trong quá trình cập nhật ứng dụng.Ví dụ: bạn có thể sử dụng
git push heroku your-local-branch:master
9 để di chuyển cơ sở dữ liệu cho ứng dụng của mình bằng học thuyết bằng cách làm điều gì đó tương tự như thế này:echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
0Đối với mục đích gỡ lỗi, chẳng hạn như để kiểm tra trạng thái ứng dụng của bạn sau khi triển khai, bạn có thể sử dụng
git push heroku local-dev:master
1 để có vỏ đầy đủ vào một dyno một lần. Nhưng hãy nhớ rằng điều này sẽ không kết nối bạn với một trong những dynos web có thể chạy cùng một lúc.echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
1Đăng nhập
Heroku coi nhật ký là luồng và hy vọng chúng sẽ được viết vào stdout và stderr và không phải là hệ thống tập tin phù du của nó.
Cách cơ bản nhất để gửi thông tin ghi nhật ký là ghi vào luồng
git push heroku local-dev:master
2 trong mã của bạn như thế này:echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m "Procfile for Heroku"
2Tham khảo tài liệu ghi nhật ký để biết thêm thông tin chung về việc đăng nhập trên Heroku.
Bước tiếp theo
- Đọc tài liệu hỗ trợ HEROKU PHP để tìm hiểu về các phiên bản, tiện ích mở rộng, tính năng và hành vi có sẵn.
- Tìm hiểu cách tùy chỉnh máy chủ web và cài đặt thời gian chạy cho PHP, đặc biệt là cách đặt gốc tài liệu cho ứng dụng của bạn.
- Sử dụng mã thông báo GitHub tùy chỉnh cho nhà soạn nhạc.
- Khám phá danh mục PHP trên Trung tâm Dev.