Kiến thức Hữu ích 😍

Cách cài đặt Composer trên Ubuntu 20.04 – Hướng dẫn nhanh và hiệu quả


Bạn là một lập trình viên PHP và thường xuyên phải làm việc với nhiều thư viện khác nhau? Chắc hẳn bạn đã từng trải qua cảm giác mệt mỏi khi phải quản lý thủ công các phiên bản, xử lý xung đột, và đảm bảo mọi thứ hoạt động trơn tru. Việc tải từng gói mã nguồn, giải nén và tích hợp vào dự án không chỉ tốn thời gian mà còn tiềm ẩn nhiều rủi ro về tương thích. Đây chính là lúc Composer xuất hiện như một trợ thủ đắc lực, giúp bạn tự động hóa hoàn toàn quy trình này. Trong bài viết này, AZWEB sẽ hướng dẫn bạn chi tiết cách cài đặt Ubuntu 20.04, từ các bước chuẩn bị môi trường cho đến khi xác nhận cài đặt thành công và những lưu ý quan trọng khi sử dụng.

Giới thiệu về Composer và vai trò trong quản lý thư viện PHP

Trước khi đi vào các bước kỹ thuật, hãy cùng tìm hiểu sâu hơn về Composer và tại sao nó lại là một công cụ không thể thiếu đối với bất kỳ nhà phát triển PHP chuyên nghiệp nào. Hiểu rõ bản chất và vai trò của nó sẽ giúp bạn tận dụng tối đa sức mạnh mà công cụ này mang lại.

Hình minh họa

Composer là gì?

Composer là một công cụ quản lý các gói phụ thuộc (dependency manager) dành riêng cho ngôn ngữ lập trình PHP. Bạn có thể hình dung Composer như một người quản lý dự án thông minh, có nhiệm vụ tìm kiếm, tải về và quản lý các thư viện (packages) mà dự án của bạn cần sử dụng. Thay vì phải tự mình lên mạng tìm kiếm, tải file zip và tích hợp vào mã nguồn, bạn chỉ cần khai báo tên và phiên bản của thư viện trong một file cấu hình duy nhất là composer.json.

Sử dụng Composer mang lại rất nhiều lợi ích. Nó giúp chuẩn hóa môi trường phát triển, đảm bảo tất cả các thành viên trong nhóm đều sử dụng cùng một phiên bản thư viện, từ đó tránh được các lỗi “it works on my machine”. Hơn nữa, Composer còn thúc đẩy việc sử dụng lại mã nguồn, giúp bạn tận dụng hàng ngàn thư viện mã nguồn mở chất lượng cao có sẵn trên Packagist – kho lưu trữ chính của Composer.

Vai trò của Composer trong quản lý thư viện PHP

Vai trò của Composer không chỉ dừng lại ở việc tải thư viện. Nó là xương sống cho việc quản lý mã nguồn trong các dự án PHP hiện đại.

Đầu tiên, Composer giúp tự động quản lý phiên bản thư viện một cách thông minh. Bạn có thể chỉ định một phiên bản cụ thể, một khoảng phiên bản, hoặc luôn sử dụng phiên bản mới nhất. Khi bạn chạy lệnh composer update, nó sẽ tự động tìm kiếm phiên bản phù hợp nhất, giải quyết các xung đột phụ thuộc giữa các thư viện và cập nhật dự án của bạn. Điều này giúp mã nguồn luôn được cập nhật với các bản vá bảo mật và tính năng mới nhất mà không tốn nhiều công sức.

Thứ hai, Composer giúp tái sử dụng mã nguồn và cập nhật dễ dàng. Khi một dự án cần một chức năng cụ thể, ví dụ như gửi email hoặc xử lý hình ảnh, bạn không cần phải viết lại từ đầu. Thay vào đó, bạn có thể tìm một thư viện uy tín trên Packagist và thêm nó vào dự án chỉ với một dòng lệnh. Quá trình triển khai dự án cũng trở nên đơn giản hơn. Thay vì phải sao chép toàn bộ thư mục vendor (nơi chứa các thư viện), bạn chỉ cần sao chép file composer.jsoncomposer.lock, sau đó chạy lệnh composer install trên máy chủ. Composer sẽ tự động tải về đúng các phiên bản thư viện đã được định nghĩa, đảm bảo môi trường sản phẩm giống hệt môi trường phát triển.

Hình minh họa

Yêu cầu hệ thống và chuẩn bị môi trường Ubuntu 20.04

Để quá trình cài đặt Composer diễn ra suôn sẻ, bạn cần đảm bảo hệ thống của mình đáp ứng đủ các yêu cầu cần thiết. Việc chuẩn bị kỹ lưỡng môi trường ban đầu sẽ giúp bạn tránh được những lỗi không đáng có về sau.

Yêu cầu phần mềm và quyền truy cập

Trước khi bắt đầu, hãy chắc chắn rằng bạn đã có đủ các yếu tố sau:

  • Hệ điều hành Ubuntu 20.04: Hướng dẫn này được viết riêng cho phiên bản Ubuntu 20.04 (Focal Fossa), tuy nhiên các bước cũng có thể áp dụng tương tự cho các phiên bản Ubuntu khác.
  • PHP đã được cài đặt: Composer là một công cụ xây dựng trên nền tảng PHP, do đó bạn cần cài đặt PHP trước. Bạn nên sử dụng phiên bản PHP mới nhất được hỗ trợ. Để kiểm tra phiên bản PHP hiện tại, bạn có thể dùng lệnh php -v.
  • Quyền truy cập Terminal: Bạn cần có quyền truy cập vào giao diện dòng lệnh (terminal) của máy chủ.
  • Quyền sudo hoặc root: Các lệnh cài đặt và cấu hình hệ thống yêu cầu quyền quản trị. Bạn cần có khả năng sử dụng lệnh sudo hoặc đăng nhập với tư cách người dùng root.

Chuẩn bị trước khi cài đặt Composer

Khi đã đảm bảo các yêu cầu trên, hãy thực hiện các bước chuẩn bị sau để sẵn sàng cho việc cài đặt.

Đầu tiên, hãy cập nhật danh sách các gói phần mềm trên hệ thống của bạn. Điều này đảm bảo bạn sẽ cài đặt được phiên bản mới nhất và an toàn nhất của các công cụ cần thiết. Mở terminal và chạy lần lượt hai lệnh sau:

sudo apt update
sudo apt upgrade

Tiếp theo, bạn cần cài đặt một số gói hỗ trợ mà Composer yêu cầu. Cụ thể là curl để tải file từ internet, php-cli để chạy PHP từ dòng lệnh, và unzip để giải nén các gói. Chạy lệnh sau để cài đặt chúng:

sudo apt install curl php-cli unzip

Sau khi hoàn thành các bước này, hệ thống Ubuntu 20.04 của bạn đã hoàn toàn sẵn sàng để tiến hành cài đặt Composer.

Hình minh họa

Hướng dẫn từng bước tải và cài đặt Composer trên Ubuntu

Bây giờ, chúng ta sẽ đi vào phần chính của bài viết: các bước chi tiết để tải và cài đặt Composer. Chúng tôi sẽ chia quy trình thành bốn bước nhỏ để bạn dễ dàng theo dõi và thực hiện.

Bước 1 – Tải trình cài đặt Composer

Bước đầu tiên là tải về kịch bản cài đặt (installer script) của Composer từ trang web chính thức. Đây là một file PHP sẽ thực hiện việc tải và cấu hình Composer trên hệ thống của bạn. Sử dụng curl, một công cụ dòng lệnh mạnh mẽ để truyền dữ liệu, để tải file này về.

Mở terminal và di chuyển đến thư mục home của bạn bằng lệnh cd ~. Sau đó, chạy lệnh sau:

curl -sS https://getcomposer.org/installer -o composer-setup.php

Lệnh này sẽ âm thầm (-sS) tải nội dung từ URL được cung cấp và lưu vào một file có tên là composer-setup.php (-o composer-setup.php) trong thư mục hiện tại của bạn.

Hình minh họa

Bước 2 – Kiểm tra tính toàn vẹn của file cài đặt

Đây là một bước cực kỳ quan trọng về mặt bảo mật. Trước khi thực thi bất kỳ kịch bản nào tải từ internet, bạn nên xác minh rằng file đó không bị thay đổi hoặc chứa mã độc. Đội ngũ phát triển Composer cung cấp một mã hash (SHA-384) của file cài đặt mới nhất để bạn so sánh.

Đầu tiên, bạn cần lấy mã hash mới nhất từ trang download của Composer. Sau đó, chạy một đoạn script PHP ngắn sau để tạo mã hash của file bạn vừa tải về và so sánh chúng.

HASH="$(curl -sS https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Nếu kết quả trả về là Installer verified, điều đó có nghĩa là file của bạn an toàn và bạn có thể tiếp tục. Nếu không, hãy xóa file vừa tải và thử lại bước 1.

Bước 3 – Cài đặt Composer toàn cục trên hệ thống

Sau khi đã xác minh file cài đặt, bạn sẽ tiến hành chạy nó để cài đặt Composer. Chúng ta sẽ cài đặt Composer ở chế độ toàn cục (globally), nghĩa là bạn có thể gọi lệnh composer từ bất kỳ thư mục nào trên hệ thống.

Chạy lệnh sau trong terminal:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Lệnh này yêu cầu quyền sudo vì nó sẽ cài đặt file thực thi vào thư mục /usr/local/bin, một thư mục hệ thống chuẩn cho các phần mềm do người dùng cài đặt. --filename=composer sẽ đổi tên file composer.phar thành composer để việc gõ lệnh trở nên thuận tiện hơn.

Sau khi cài đặt xong, bạn có thể xóa file cài đặt đi:

rm composer-setup.php

Hình minh họa

Bước 4 – Xác nhận quá trình cài đặt thành công

Để chắc chắn rằng Composer đã được cài đặt đúng cách và có thể truy cập từ mọi nơi, hãy chạy lệnh sau:

composer

Nếu cài đặt thành công, bạn sẽ thấy một màn hình chào mừng với logo Composer dạng ASCII và danh sách các lệnh có sẵn. Điều này xác nhận rằng Composer đã được cài đặt toàn cục và sẵn sàng để bạn sử dụng trong các dự án PHP của mình.

Cách kiểm tra phiên bản Composer sau khi cài đặt

Việc cài đặt thành công chỉ là bước khởi đầu. Để sử dụng Composer hiệu quả, bạn cần biết cách kiểm tra phiên bản hiện tại và cập nhật nó khi cần thiết. Điều này giúp bạn luôn tận dụng được những tính năng mới nhất và các bản vá lỗi quan trọng từ đội ngũ phát triển.

Hình minh họa

Kiểm tra phiên bản Composer hiện tại

Sau khi đã cài đặt, việc kiểm tra phiên bản là rất đơn giản. Thao tác này giúp bạn xác nhận lại lần nữa rằng Composer đang hoạt động và biết được mình đang sử dụng phiên bản nào.

Mở terminal và gõ lệnh sau:

composer --version

Lệnh này sẽ trả về một dòng thông tin duy nhất, hiển thị phiên bản cụ thể của Composer mà bạn đã cài đặt, ví dụ: Composer version 2.5.8 2023-06-09 17:13:21. Con số này rất hữu ích khi bạn cần tìm kiếm tài liệu hỗ trợ hoặc báo lỗi, vì các vấn đề có thể chỉ xảy ra trên một phiên bản nhất định. Việc biết rõ phiên bản giúp quá trình khắc phục sự cố trở nên nhanh chóng và chính xác hơn.

Cập nhật Composer khi cần thiết

Composer là một dự án được phát triển rất tích cực, với các phiên bản mới được phát hành thường xuyên để cải thiện hiệu suất, bổ sung tính năng và vá các lỗ hổng bảo mật. Do đó, việc giữ cho Composer của bạn luôn được cập nhật là một thói quen tốt.

May mắn là Composer cung cấp một lệnh tự cập nhật rất tiện lợi. Để nâng cấp Composer lên phiên bản ổn định mới nhất, bạn chỉ cần chạy lệnh:

sudo composer self-update

Bạn cần sử dụng sudo vì Composer được cài đặt trong thư mục hệ thống /usr/local/bin, đòi hỏi quyền quản trị để ghi đè. Lệnh này sẽ kiểm tra phiên bản mới nhất, tải về và tự động thay thế phiên bản cũ. Quá trình này rất nhanh chóng và đảm bảo bạn luôn có trong tay công cụ tốt nhất để quản lý các dự án PHP của mình. Nếu bạn muốn thử nghiệm các tính năng đang phát triển, bạn có thể chuyển sang kênh preview bằng cách thêm cờ --preview.

Các sự cố thường gặp khi cài đặt Composer trên Ubuntu

Mặc dù quá trình cài đặt Composer khá đơn giản, đôi khi bạn vẫn có thể gặp phải một số sự cố không mong muốn. Dưới đây là hai lỗi phổ biến nhất và cách để bạn có thể tự mình khắc phục chúng một cách nhanh chóng.

Hình minh họa

Lỗi thiếu quyền thực thi (Permission denied)

Một trong những lỗi thường gặp sau khi di chuyển file composer vào /usr/local/bin là khi bạn gõ lệnh composer và nhận được thông báo lỗi bash: /usr/local/bin/composer: Permission denied.

Nguyên nhân của lỗi này là do file composer không có quyền thực thi (execute permission). Hệ điều hành Linux yêu cầu một file phải được cấp quyền này thì mới có thể chạy như một chương trình. Để khắc phục, bạn chỉ cần cấp quyền thực thi cho file bằng lệnh chmod.

Mở terminal và chạy lệnh sau:

sudo chmod +x /usr/local/bin/composer

Lệnh chmod +x sẽ thêm quyền thực thi cho tất cả người dùng trên hệ thống đối với file được chỉ định. Sau khi chạy lệnh này, bạn hãy thử lại lệnh composer và nó sẽ hoạt động như mong đợi. Đây là một bước đơn giản nhưng rất quan trọng để đảm bảo Composer có thể được gọi từ bất kỳ đâu.

Lỗi thiếu extension PHP hoặc phiên bản PHP không phù hợp

Một lỗi phổ biến khác là khi bạn chạy trình cài đặt hoặc chính Composer và nhận được thông báo lỗi liên quan đến việc thiếu một extension PHP nào đó (ví dụ: php-zip, php-mbstring) hoặc phiên bản PHP của bạn quá cũ.

Nguyên nhân là do Composer và các thư viện mà nó quản lý có những yêu cầu cụ thể về môi trường PHP. Ví dụ, để giải nén các file zip của thư viện, Composer cần có extension php-zip. Để kiểm tra các extension đã được cài đặt, bạn có thể dùng lệnh php -m.

Để khắc phục, bạn cần cài đặt các extension PHP còn thiếu. Sử dụng apt để tìm kiếm và cài đặt chúng. Ví dụ, để cài đặt extension zipmbstring cho PHP 8.1, bạn sẽ chạy lệnh:

sudo apt install php8.1-zip php8.1-mbstring

Hãy thay 8.1 bằng phiên bản PHP bạn đang sử dụng. Sau khi cài đặt, bạn có thể cần khởi động lại dịch vụ web server (nếu có) để thay đổi có hiệu lực. Luôn đảm bảo rằng môi trường PHP của bạn đáp ứng đủ các yêu cầu của Composer và các thư viện trong dự án để tránh các lỗi không tương thích.

Các lưu ý và best practices khi sử dụng Composer trên Ubuntu

Cài đặt thành công Composer là một chuyện, nhưng sử dụng nó một cách hiệu quả và an toàn lại là một chuyện khác. Để tối ưu hóa quy trình làm việc và đảm bảo dự án của bạn luôn ổn định, hãy tuân thủ một số nguyên tắc và thực hành tốt nhất sau đây.

Hình minh họa

Đầu tiên, hãy luôn giữ hệ thống và phiên bản PHP của bạn được cập nhật. Các bản cập nhật không chỉ mang lại tính năng mới mà còn chứa các bản vá bảo mật quan trọng. Một môi trường được cập nhật sẽ giúp Composer hoạt động ổn định và an toàn hơn. Để hiểu thêm về hệ điều hành bạn đang sử dụng, hãy xem bài viết Hệ điều hành Ubuntu là gì.

Một quy tắc vàng khi làm việc với Git là không bao giờ commit thư mục vendor. Thư mục này chứa mã nguồn của các thư viện bên thứ ba và có thể rất lớn. Thay vào đó, bạn chỉ cần commit hai file composer.json (định nghĩa các thư viện cần thiết) và composer.lock (ghi lại chính xác phiên bản của từng thư viện đã được cài đặt). Khi một thành viên khác trong nhóm clone dự án về, họ chỉ cần chạy composer install, và Composer sẽ tự động tải về đúng các phiên bản đã được khóa trong file composer.lock, đảm bảo tính nhất quán cho toàn bộ đội ngũ.

Để bảo vệ dự án, hãy tạo thói quen sao lưu thường xuyên hai file composer.jsoncomposer.lock. Đây là hai file quan trọng nhất, định hình nên toàn bộ các gói phụ thuộc của dự án. Mất chúng có thể khiến bạn tốn rất nhiều thời gian để xây dựng lại môi trường.

Cuối cùng, khi triển khai dự án lên môi trường production, hãy sử dụng các lệnh tối ưu hóa. Lệnh composer install --no-dev --optimize-autoloader (hoặc composer dump-autoload -o) sẽ giúp tăng tốc độ tải lớp (class loading) của ứng dụng. Nó tạo ra một bản đồ “classmap” được tối ưu hóa cao, giúp ứng dụng của bạn chạy nhanh hơn đáng kể bằng cách giảm thiểu các hoạt động trên hệ thống file.

Kết luận

Qua bài viết này, chúng ta đã cùng nhau đi qua một hành trình chi tiết từ việc tìm hiểu Composer là gì, chuẩn bị môi trường, cho đến các bước cài đặt cụ thể trên Ubuntu 20.04. Việc cài đặt và sử dụng thành thạo Composer không chỉ giúp bạn tiết kiệm thời gian, công sức mà còn nâng cao tính chuyên nghiệp và hiệu quả trong quản lý các dự án PHP. Nó giúp tự động hóa việc quản lý thư viện, giải quyết xung đột phiên bản và đảm bảo môi trường phát triển nhất quán, cho phép bạn tập trung hơn vào việc viết mã và tạo ra những sản phẩm chất lượng.

Hình minh họa

AZWEB khuyến khích bạn hãy thực hành ngay theo các bước đã hướng dẫn để trang bị cho mình một công cụ thiết yếu trong thế giới lập trình PHP hiện đại. Đừng ngần ngại khám phá thêm các lệnh và tính năng nâng cao của Composer để tối ưu hóa quy trình làm việc của mình. Nếu bạn muốn tìm hiểu sâu hơn, hãy tham khảo tài liệu chính thức của Composer và các khóa học về PHP nâng cao.

Chúng tôi hy vọng bài viết này đã mang lại những thông tin hữu ích cho bạn. Nếu bạn có bất kỳ thắc mắc nào hoặc muốn chia sẻ kinh nghiệm của mình, hãy để lại bình luận bên dưới. Đừng quên chia sẻ bài viết này cho bạn bè và đồng nghiệp nếu bạn thấy nó có giá trị.

Đánh giá