Hướng dẫn php-fpm docker
Show BÀi viết này sẽ dùng docker compose version 3 để làm việc với các service tạo nên môi trường phát triển php2022-03-20 774 lượt xem
bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố hùng ebudezain bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng đẹp trai hùng thông minh lắm hùng ebudezain ahihi đồ ngốc trương thanh hùng nè Một máy chủ web thường bao gồm nhiều chương trình khác nhau - chẳng hạn như NGINX, PHP và MySQL. Theo thuật ngữ của Docker, mỗi chương trình bạn muốn cài đặt là một service. Và trong bài viết này chúng ta sẽ thiết lập php chạy nginx làm máy chủ chạy php-fpm tôi thích vậy đó đọc dữ liệu hộ bố hùng thông minh lắm tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè hùng ebudezain tôi thích vậy đó Bắt đầu thôi! hùng ebudezain bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố hùng ebudezain đọc dữ liệu hộ bố Cài máy chủ nginxbài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm hùng thông minh lắm tôi thích vậy đó tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè hùng thông minh lắm tôi thích vậy đó hùng thông minh lắm Đầu tiên, hãy thêm một máy chủ web Nginx với việc tạo 1 file thực thi docker compose: docker-compose.yml hùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm hùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố Nội dung file docker-compose.yml: hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè
hùng đẹp trai ahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai tôi thích vậy đó hùng đẹp trai hùng thông minh lắm hùng thông minh lắm Khúc này bạn tạm hiểu là nó build image nginx:latest về rồi tạo 1 service với việc bind port trong docker là 80 ra port ngoài là 80. nếu bạn nghịch 8080:80 thì ý nghĩa là bind port trong docker là 80 ra port thực tế máy bạn là 8080 😄 tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố Chạy serviceđọc dữ liệu hộ bố bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm Để chạy service thì bạn gọi lệnh : docker-compose up hùng đẹp trai hùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai hùng đẹp trai hùng đẹp trai hùng thông minh lắm hùng thông minh lắm khi đó bạn gõ vào trình duyệt dòng : http://127.0.0.1 thì sẽ hiện thị như sau: bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó hùng đẹp trai hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ Bây giờ server đã được cài đặt và chạy qua Docker, chúng tôi có thể hiển thị các file của mình trên máy chủ. hùng ebudezain hùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai Bind code và cài đặt nginxhùng đẹp trai hùng ebudezain hùng ebudezain Docker có thể cho phép bạn chia sẽ 1 file hoặc 1 folder lên container. Vậy nên bạn sẽ tạo ra 1 file config nginx là app.conf trong folder nginx và folder code của bạn là app hùng thông minh lắm hùng thông minh lắm Ta có việc binding volumn như sau: ahihi đồ ngốc trương thanh hùng nè đọc dữ liệu hộ bố
đọc dữ liệu hộ bố
hùng thông minh lắm tôi thích vậy đó Bây giờ bất kỳ thay đổi nào thuộc folder /app và /nginx đều được bind liên tục vào trong container đang chạy! ahihi đồ ngốc trương thanh hùng nè Bạn vào document của https://hub.docker.com/_/nginx có nói về
việc nginx này config ở thư mục nào: outputs to bài viết được viết bởi trương thanh hùng https://ebudezain.com/ ahihi đồ ngốc trương thanh hùng nè tôi thích vậy đó => Mọi file config đều được nạp từ folder /etc/nginx/conf.d tôi thích vậy đó Điều đó giải thích cho việc chúng ta vừa code ở trên là bind
từ đọc dữ liệu hộ bố đọc dữ liệu hộ bố Ok hiểu là thế, vậy giờ chúng ta sẽ tạo file nginx/app.conf config như sau: hùng ebudezain hùng ebudezain đọc dữ liệu hộ bố
ahihi đồ ngốc trương thanh hùng nè đọc dữ liệu hộ bố hùng ebudezain bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm hùng ebudezain tôi thích vậy đó hùng thông minh lắm hùng thông minh lắm Khi bạn viết như vậy là bạn đang thông báo cho nginx chạy trong cái container đó là: hey nginx, cứ có truy cập nào mày cũng cho nó lấy code trong folder /app/public nha! hùng đẹp trai hùng đẹp trai tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ ahihi đồ ngốc trương thanh hùng nè hùng ebudezain đọc dữ liệu hộ bố hùng ebudezain Mà cái code trong folder app/public thì chả có 😄 nhưng chúng ta cũng từng khai báo với nginx là binding cái folder code app ở ngoài với cái app trong container rồi nên là giờ chúng ta chỉ viẹc tạo file app/public/index.html với nội dung như sau: đọc dữ liệu hộ bố hùng ebudezain
hùng ebudezain
tôi thích vậy đó hùng thông minh lắm hùng đẹp trai Ta được kết quả như sau: bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng đẹp trai hùng thông minh lắm hùng ebudezain hùng đẹp trai hùng ebudezain hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ Cài đặt PHP-FPMhùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó hùng thông minh lắm đọc dữ liệu hộ bố hùng ebudezain ahihi đồ ngốc trương thanh hùng nè 1 file docker compose có thể chạy nhiều cái service cùng 1 lúc nên nhiệm vụ chúng ta là thêm service php vào trong file docker compose tiếp như sau: hùng ebudezain hùng đẹp trai hùng đẹp trai
ahihi đồ ngốc trương thanh hùng nè hùng ebudezain hùng đẹp trai hùng đẹp trai Cái đoạn: đọc dữ liệu hộ bố tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ Nếu bạn muốn chỉ định cụ thể thì dùng: php:7.4-fpm, php:7.3-fpm, php:8.0-fpm Tuỳ ý và có thể xem chi tiết ở đây: https://hub.docker.com/_/php ahihi đồ ngốc trương thanh hùng nè tôi thích vậy đó đọc dữ liệu hộ bố hùng đẹp trai hùng đẹp trai hùng ebudezain hùng ebudezain tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ Như bạn đã biết hay không biết thì bạn cũng phải biết: nginx muốn chạy php phải config cho nó chạy file đuôi php 😄 nãy chưa config đâu giừo sửa lại file nginx/app.conf 1 tí: hùng đẹp trai hùng ebudezain hùng đẹp trai
hùng đẹp trai hùng ebudezain hùng ebudezain hùng thông minh lắm bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain hùng ebudezain hùng ebudezain hùng đẹp trai Cuối cùng muốn thực thi file php thì phải có file php mà thực thi chứ 😄 vậy trong folder app/public tạo file index.php với nội dung như sau: tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain
hùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng ebudezain hùng đẹp trai ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai hùng thông minh lắm hùng đẹp trai Okey! giừo restart lại docker compose là thôi! bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain hùng thông minh lắm Chờ xíu nó download xong thì gõ : http://127.0.0.1 thì sẽ hiện thị ví dụ php:7.3-fpm như sau: tôi thích vậy đó hùng ebudezain ahihi đồ ngốc trương thanh hùng nè tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain hùng thông minh lắm
tôi thích vậy đó hùng đẹp trai Bạn nhớ khi cài xampp bạn muốn dùng mysql rồi mấy cái extention như PDO hay là image magic đều được start lên NHƯNG với tình huống này chúng ta kiểm tra thì không thấy nó được start + muốn start cũng chả biết chỗ quái nào mà start!!! đọc dữ liệu hộ bố hùng đẹp trai tôi thích vậy đó hùng ebudezain hùng đẹp trai Vậy thì căng 😄 idea là mình sẽ tạo 1 image custom việc này cùng cấp với docker compose rồi trong docker compose mình tái sử dụng! hùng ebudezain 1. Bước 1 sửa docker composeđọc dữ liệu hộ bố hùng thông minh lắm tôi thích vậy đó hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè đọc dữ liệu hộ bố ahihi đồ ngốc trương thanh hùng nè Tạo file ahihi đồ ngốc trương thanh hùng nè hùng ebudezain bài viết được viết bởi trương thanh hùng https://ebudezain.com/
bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè hùng ebudezain Ok như vậy là bạn đã có pdo cho mysql chạy rồi. Tương tự nếu bạn muốn cài thêm extention khác thì cứ nghịch trong hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/
bài viết được viết bởi trương thanh hùng https://ebudezain.com/ đọc dữ liệu hộ bố Chạy lại docker-compose up và kiểm tra output của phpinfo () sẽ cho thấy rằng cả pdo_mysql và xdebug đều được cài đặt: bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó đọc dữ liệu hộ bố bài viết được viết bởi trương thanh hùng https://ebudezain.com/ ahihi đồ ngốc trương thanh hùng nè hùng thông minh lắm đọc dữ liệu hộ bố Lưu ý to đùng: Đôi khi bạn build docker compose bạn sẽ dính cache và nó không nhận code mới của bạn! bạn dùng lệnh build này trước: hùng đẹp trai hùng thông minh lắm
đọc dữ liệu hộ bố CàiMariaDB thay cho mysqlhùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè
bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm hùng đẹp trai tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain ahihi đồ ngốc trương thanh hùng nè Image đang sử dụng là mariadb:lastest. Cũng như NGINX và PHP, nếu muốn, bạn có thể chỉ định một phiên bản cụ thể của MariaDB tại đây. ahihi đồ ngốc trương thanh hùng nè tôi thích vậy đó tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai Bạn có mấy biến để khi dùng php bạn config connection đến: hùng ebudezain đọc dữ liệu hộ bố hùng ebudezain hùng ebudezain ahihi đồ ngốc trương thanh hùng nè bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng thông minh lắm hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ MYSQL_ROOT_PASSWORD: mật khẩu gốc của cơ sở dữ liệu. hùng ebudezain hùng đẹp trai tôi thích vậy đó tôi thích vậy đó hùng thông minh lắm hùng đẹp trai tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè tôi thích vậy đó bài viết được viết bởi trương thanh hùng https://ebudezain.com/ MYSQL_USER và MYSQL_PASSWORD: tên và mật khẩu cho người dùng MySQL được tạo với các quyền hạn chế. ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai tôi thích vậy đó đọc dữ liệu hộ bố tôi thích vậy đó hùng thông minh lắm hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè hùng ebudezain tôi thích vậy đó MYSQL_DATABASE: tên của database hùng đẹp trai hùng thông minh lắm đọc dữ liệu hộ bố ahihi đồ ngốc trương thanh hùng nè tôi thích vậy đó ahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè hùng thông minh lắm hùng thông minh lắm đọc dữ liệu hộ bố cổng 3306 để chúng ta có thể kết nối với nó với một máy khách như MySQL Workbench để quản lý cơ sở dữ liệu. hùng ebudezain bài viết được viết bởi trương thanh hùng https://ebudezain.com/ tôi thích vậy đó đọc dữ liệu hộ bố hùng thông minh lắm đọc dữ liệu hộ bố hùng thông minh lắm hùng thông minh lắm Khởi động lại máy chủ của bạn: hùng ebudezain ahihi đồ ngốc trương thanh hùng nè đọc dữ liệu hộ bố hùng đẹp trai hùng thông minh lắm tôi thích vậy đó Vào file php edit đoạn code này thử xem chạy được chưa: hùng đẹp trai ahihi đồ ngốc trương thanh hùng nè hùng thông minh lắm
hùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai hùng ebudezain ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai tôi thích vậy đó tôi thích vậy đó
bài viết được viết bởi trương thanh hùng https://ebudezain.com/ ahihi đồ ngốc trương thanh hùng nè hùng ebudezain hùng ebudezain bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng đẹp trai hùng ebudezain Bonus cuối: hùng ebudezain tôi thích vậy đó hùng ebudezain # nếu bạn muốn thực thi command trong 1 container nào đó thì gõ:
ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng đẹp trai hùng ebudezain tôi thích vậy đó Để vào mysql xem connect của php xem thế nào: hùng thông minh lắm hùng ebudezain ahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè hùng thông minh lắm Kết quả hùng thông minh lắm hùng đẹp trai đọc dữ liệu hộ bố ahihi đồ ngốc trương thanh hùng nè
ahihi đồ ngốc trương thanh hùng nè bài viết được viết bởi trương thanh hùng https://ebudezain.com/ bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain hùng ebudezain đọc dữ liệu hộ bố Chạy vào terminal mysql đọc dữ liệu hộ bố hùng đẹp trai hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè hùng đẹp trai hùng ebudezain Nhập password là secret vào: hùng ebudezain hùng ebudezain hùng ebudezain đọc dữ liệu hộ bố hùng ebudezain hùng thông minh lắm hùng thông minh lắm hùng thông minh lắm ahihi đồ ngốc trương thanh hùng nè Gõ lệnh kiểm tra connect: ahihi đồ ngốc trương thanh hùng nè ahihi đồ ngốc trương thanh hùng nè hùng thông minh lắm hùng thông minh lắm đọc dữ liệu hộ bố bài viết được viết bởi trương thanh hùng https://ebudezain.com/ hùng ebudezain hùng ebudezain |