PHP là một trong những ngôn ngữ lập trình được sử dụng rộng rãi trong một số tổ chức, chủ yếu được sử dụng để tạo kiến trúc web và ứng dụng phụ trợ. Hầu hết các gã khổng lồ công nghệ lớn vẫn dựa vào PHP cho các ứng dụng back-end của họ và cũng đang ngày càng áp dụng các công cụ dành cho nhà phát triển như Docker. Do đó, việc tìm hiểu cách truy cập và sử dụng PHP bên trong Docker Container trở nên rất quan trọng. Docker cung cấp các Hình ảnh PHP được cập nhật thường xuyên có thể được lấy trực tiếp từ Dockerhub và có thể được tùy chỉnh bằng Dockerfiles. Docker PHP Image cho phép bạn xây dựng và chạy các ứng dụng PHP và để truy cập các ứng dụng đó trên máy chủ cục bộ của mình, bạn có thể sử dụng cờ -p để kết nối và xuất bản các cổng
Trong bài viết này, chúng ta sẽ thảo luận về cách tạo PHP Docker Container với sự trợ giúp của máy chủ Apache
Bước 1. Tạo một tệp PHP
Tạo một tệp PHP đơn giản sẽ được phục vụ sau khi chúng tôi chạy vùng chứa. Hãy đặt tên cho ứng dụng tập tin. php.
Bạn có thể cài đặt tác nhân PHP trên bộ chứa Docker hoặc bộ chứa khác để giám sát một hoặc nhiều ứng dụng PHP của mình. Điều này được hỗ trợ cho các vùng chứa đáp ứng các yêu cầu của tác nhân PHP
thận trọng
Trình nền của Tác nhân PHP truyền dữ liệu đến Di tích mới theo định kỳ trong khoảng thời gian dài một phút. Nếu bạn thường xuyên khởi động và phá bỏ các bộ chứa, hãy đảm bảo rằng bạn để bộ chứa daemon chạy đủ lâu để truyền mọi dữ liệu còn lại
Tùy chọn vùng chứa
Tác nhân PHP yêu cầu hai thành phần để hoạt động. tác nhân PHP [một cho mỗi ứng dụng] và một trình nền, tổng hợp dữ liệu được gửi từ một hoặc nhiều tác nhân và gửi nó đến Di tích mới. Vì lý do này, có hai tùy chọn để bật tác nhân PHP cho môi trường vùng chứa
- Đây là thiết lập được đề xuất
- Điều này có thể hữu ích nếu bạn muốn giảm số lượng vùng chứa của mình
Cài đặt tác nhân và trình nền trong các vùng chứa khác nhau
Yêu cầu
- Đáp ứng các yêu cầu về đại lý PHP
- Tác nhân PHP phiên bản 9. 2 hoặc cao hơn
Để xem một ứng dụng ví dụ, hãy truy cập Trung tâm thám hiểm của Relic mới. Nếu bạn đang sử dụng các bộ chứa ứng dụng có thời gian tồn tại ngắn, chúng tôi khuyên bạn nên sử dụng một bộ chứa riêng cho trình nền của Tác nhân PHP
thận trọng
Dữ liệu được truyền từ tác nhân đến daemon không được mã hóa. Ngoại lệ duy nhất cho điều này là điều đó xảy ra trước khi gửi dữ liệu tới daemon. Nếu tác nhân và trình nền đang chạy trên các máy chủ khác nhau, chúng tôi khuyên bạn nên sử dụng kết nối mạng riêng giữa tác nhân và trình nền
Thiết lập vùng chứa daemon
Nếu bạn sử dụng Docker, bạn có thể lấy hình ảnh daemon của chúng tôi từ Docker Hub
- Chạy lệnh này.
docker pull newrelic/php-daemon
- Để tùy chỉnh hình ảnh, hãy làm theo các bước trên Docker Hub
Bạn cũng có thể xây dựng hình ảnh daemon của riêng mình
- Để cài đặt daemon, hãy tải xuống gói tác nhân PHP từ trang web tải xuống tệp tar của New Relic và chạy tập lệnh
newrelic-install
với đối sốinstall_daemon
- Bắt đầu trình nền bằng cách sử dụng các đối số
--address
và--watchdog-foreground
Đối số --address
đặt cổng cho daemon chấp nhận kết nối. Đối số --watchdog-foreground
đảm bảo rằng trình nền chạy ở phía trước
Thiết lập bộ chứa tác nhân PHP
Để thiết lập bộ chứa tác nhân PHP cho Docker
- Đảm bảo cài đặt PHP có sẵn trong vùng chứa. Ví dụ: sử dụng hình ảnh Docker đã xuất bản như
php:7.1
- Để cài đặt tác nhân, hãy tải xuống gói tác nhân PHP từ trang web tải xuống tệp tar của New Relic và chạy tập lệnh
newrelic-install
với đối sốdocker pull newrelic/php-daemon
0 - Trong tệp
docker pull newrelic/php-daemon
1, đặt tên ứng dụng và khóa cấp phép với các mụcdocker pull newrelic/php-daemon
2 vàdocker pull newrelic/php-daemon
3 - Trỏ tác nhân đến daemon bằng cách đặt tùy chọn
docker pull newrelic/php-daemon
4 trong tệpdocker pull newrelic/php-daemon
1. Đảm bảo giá trị cho tùy chọn này làdocker pull newrelic/php-daemon
6, trong đódocker pull newrelic/php-daemon
7 là tên hoặc địa chỉ IP của máy chủ nơi trình nền đang chạy vàdocker pull newrelic/php-daemon
8 là số cổng mà trình nền đang lắng nghe
Cài đặt tác nhân và trình nền trong cùng một vùng chứa
thận trọng
Theo mặc định, giao dịch đầu tiên khiến tác nhân kích hoạt khởi động daemon và khởi tạo kết nối ứng dụng. Vì lý do hiệu suất, tác nhân không đợi các hoạt động đó hoàn tất trước khi khởi tạo kết nối. Điều này có thể dẫn đến việc mất một số giao dịch đầu tiên sau khi vùng chứa khởi động. Để tránh mất mát này, hãy đặt cả hai mục nhập docker pull newrelic/php-daemon
9 và newrelic-install
0 trong tệp docker pull newrelic/php-daemon
1 thành các giá trị được đề xuất của chúng tôi lần lượt là 5 giây và 15 giây