Cài đặt và chạy một trang web viết bằng Symfony trên Linux (Fedora, Ubuntu, Arch)

Giới Thiệu Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách cài đặt và chạy một trang web viết bằng Symfony phiên bản 5.x trên Linux. Cụ thể là 3 hệ điều hành Linux đang phổ biến Fedora, Ubuntu và Arch. Trong mỗi distro, chúng ta đều cần cài 4 packages: PHP 8.x

Giới Thiệu

Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách cài đặt và chạy một trang web viết bằng Symfony phiên bản 5.x trên Linux. Cụ thể là 3 hệ điều hành Linux đang phổ biến Fedora, Ubuntu và Arch.

Trong mỗi distro, chúng ta đều cần cài 4 packages:

  • PHP 8.x
  • Git
  • Composer
  • Symfony CLI

Chỉ có cách cài PHP trên distro khác nhau thì sẽ khác nhau, còn lại Git, Composer và Symfony CLI đều như nhau. Như vậy, mình sẽ hướng dẫn các bạn các cài đặt PHP trên mỗi distro trước, sau đó mình sẽ hướng dẫn cách cài đặt Git, Composer và Symfony CLI chung trên cả 3 distro.

Cài PHP

Cài PHP 8.x trên Ubuntu 20.04

Các bạn chạy lần lượt các lệnh sau và nhập mật khẩu nếu được hỏi:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.0 libapache2-mod-php8.0
sudo systemctl restart apache2

Sau khi cài đặt xong, để kiểm tra xem PHP đã được cài chưa và có cài chính xác version các bạn mong muốn không thì các bạn gõ lệnh:

php --version

Nếu output của bạn gần giống như vậy thì chúng ta đã cài xong PHP (một số thông tin có thể khác nhưng bạn cần lưu ý version phải từ 8 trở lên):

PHP 8.0.9 (cli) (built: Jul 29 2021 12:53:58) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.9, Copyright (c) Zend Technologies

Cài PHP 8.x trên Fedora 34

Các bạn chạy lần lượt các lệnh sau và nhập mật khẩu nếu được hỏi:

sudo dnf install https://rpms.remirepo.net/fedora/remi-release-34.rpm
sudo dnf module reset php
sudo dnf module install php:remi-8.0

Sau khi cài đặt xong, để kiểm tra xem PHP đã được cài chưa và có cài chính xác version các bạn mong muốn không thì các bạn gõ lệnh:

php --version

Nếu output của bạn gần giống như vậy thì chúng ta đã cài xong PHP (một số thông tin có thể khác nhưng bạn cần lưu ý version phải từ 8 trở lên):

PHP 8.0.9 (cli) (built: Jul 29 2021 12:53:58) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.9, Copyright (c) Zend Technologies

Cài PHP 8.x trên Arch

Lưu ý, với Arch thì bạn cần cập nhật bản mới nhất cho distro bằng lệnh :

sudo pacman -Syyu

Sau đó các bạn chạy lệnh sau:

sudo pacman -S php

Sau khi cài đặt xong, để kiểm tra xem PHP đã được cài chưa và có cài chính xác version các bạn mong muốn không thì các bạn gõ lệnh:

php --version

Nếu output của bạn gần giống như vậy thì chúng ta đã cài xong PHP (một số thông tin có thể khác nhưng bạn cần lưu ý version phải từ 8 trở lên):

PHP 8.0.9 (cli) (built: Jul 29 2021 12:53:58) ( NTS gcc thànhx86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.9, Copyright (c) Zend Technologies

Cài Git

Trên Ubuntu 20.04

sudo apt install git

Trên Fedora 34

sudo dnf install git

Trên Arch

sudo pacman -S git

Cài Composer

Các bạn chạy lần lượt các lệnh sau:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Cài Symfony CLI

Các bạn chạy lệnh sau để cài Symfony CLI, lưu ý các bạn cần có wget hoặc curl trước khi cài Symfony CLI.

wget https://get.symfony.com/cli/installer -O - | bash
sudo mv /home/username/.symfony/bin/symfony /usr/local/bin/symfony

Bạn cần thay thế username bằng username của các bạn. Ví dụ username của user trên máy mình là lkp, thì câu lệnh thứ 2 sẽ thành:

sudo mv /home/lkp/.symfony/bin/symfony /usr/local/bin/symfony

Khởi tạo dự án bằng Symfony CLI

Để khởi tạo dự án, bạn gõ lệnh:

symfony new projectName --version=version

Lưu ý, bạn cần thay thế projectName thành tên project của mình và version thành phiên bản bạn muốn cài đặt. Ví dụ tên project của mình là todolo và version mình muốn cài là 5.3 thì câu lệnh sẽ thành:

symfony new todolo --version=5.3

Bạn có thể bỏ qua phần version để cài đặt bản mới nhất của Symfony. Ví dụ bản mới nhất thời điểm mình viết bài này là 5.3 nên khi mình gõ lệnh:

symfony new todolo

Thì sẽ tự động khởi tạo dự án Symfony phiên bản 5.3.

Chạy dự án

Để chạy dự án mới khởi tạo các bạn cần truy cập vào dự án mới tạo:

cd new-project

Ví dụ, mình mới tạo dự án tên todolo, thì mình cần chạy lệnh:

cd todolo

Sau đó các bạn gõ lệnh để chạy dự án:

symfony serve

Các bạn sẽ thấy terminal hiện ra những thông tin như thế này:

[WARNING] run "symfony server:ca:install" first if you want to   
run the web server with TLS support, or use "--no-tls            
" to avoid this warning                                          
                                                                 

Tailing Web Server log file (/home/lkp/.symfony/log/2982355613aafd922c24cff778aecc907ce25a5a.log)
Tailing PHP-FPM log file (/home/lkp/.symfony/log/2982355613aafd922c24cff778aecc907ce25a5a/53fb8ec204547646acb3461995e4da5a54cc7575.log)
                                                                 
[OK] Web server listening                                        
     The Web server is using PHP FPM 8.0.9                       
     http://127.0.0.1:8000                                 
                                                                 

[Web Server ] Aug 27 09:21:37 |DEBUG  | PHP    Reloading PHP versions 
[Web Server ] Aug 27 09:21:37 |DEBUG  | PHP    Using PHP version 8.0.9 (from default version in $PATH) 
[Web Server ] Aug 27 09:21:37 |INFO   | PHP    listening path="/usr/sbin/php-fpm" php="8.0.9" port=37689
[PHP-FPM    ] Aug 27 09:21:37 |NOTICE | FPM    fpm is running, pid 10546 
[PHP-FPM    ] Aug 27 09:21:37 |NOTICE | FPM    ready to handle connections 
[PHP-FPM    ] Aug 27 09:21:37 |NOTICE | FPM    systemd monitor interval set to 10000ms 

Các bạn lưu ý chỗ:

[OK] Web server listening                                        
      The Web server is using PHP FPM 8.0.9                       
      http://127.0.0.1:8000    

Ở đây có nghĩa là bạn đã chạy dự án thành công. Dự án chạy trên Domain 127.0.0.1 và cổng là 8000. Như vậy, để truy cập dự án, bạn mở browser, gõ vào url: http://127.0.0.1:8000 hoặc localhost:8000.
Tada, nếu các bạn thấy màn hình như thế này thì các bạn đã chạy dự án thành công. Các bạn lưu ý có thể đường dẫn thư mục trong hình /home/lkp/Workspace/test/scratch-project sẽ khác với các bạn, miễn sao nó là đường dẫn thư mục đến dự án của các bạn là ok:

Lời kết

Như vậy chúng ta đã cài đặt những pakages cần thiết và chạy dự án viết bằng Symfony trên Linux. Nếu có gặp lỗi, khó khăn hay bất kì thắc mắc gì, các bạn hãy tham gia cộng đồng Symfony Vietnam để trao đổi thêm cũng như là giải quyết những vấn đề bạn đang gặp phải. Chúc các bạn thành công.

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ