Quay lại

Cài đặt PHP 8.1 trên Ubuntu 20.04 Chuyên mục Devops    2023-03-05    43 Lượt xem    34 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Cài đặt PHP 8.1 trên Ubuntu 20.04

PHP là một ngôn ngữ lập trình kịch bản và phát triển web được sử dụng rộng rãi, ban đầu được tạo bởi Rasmus Lerdorf, một lập trình viên người Đan Mạch-Canada vào năm 1994. Một kịch bản PHP có thể chạy trên hệ điều hành Linux, Windows và macOS nếu môi trường chạy PHP được cài đặt. Ngày phát hành chính thức của PHP 8.1 là 25/11/2021. Với phiên bản này, có nhiều tính năng mới, cải tiến so với phiên bản PHP 8.0. Trong bài viết này, chúng ta sẽ thảo luận về cách cài đặt PHP 8.1 trên Ubuntu 20.04. Hệ điều hành Ubuntu có thể là phiên bản Desktop hoặc Server.

Dưới đây là danh sách tóm tắt các tính năng chính mới trong phiên bản PHP 8.1:

  • Thuộc tính chỉ đọc (Readonly properties) - Các thuộc tính của lớp có thể được đánh dấu là chỉ đọc, do đó chỉ có thể gán giá trị một lần.
  • Hỗ trợ cho DNS-over-HTTPS (DoH).
  • Hỗ trợ định dạng hình ảnh AVIF - Bổ sung hỗ trợ cho hình ảnh AVIF vào quá trình xử lý hình ảnh và tiện ích GD của PHP 8.1.
  • Kiểu trả về Never - Thêm kiểu gợi ý trả về mới gọi là never trong PHP 8.1.
  • Hỗ trợ Fibers - Cơ chế cấp thấp để quản lý song song.
  • PHP 8.1 thêm hàm tích hợp array_is_list.
  • Tải lên tệp với CURLStringFile - Trong PHP 8.1, phần mở rộng Curl của PHP hiện đã hỗ trợ các yêu cầu HTTP(S) với việc tải lên tệp.
  • Enums - Loại liệt kê (Enum) bây giờ được thêm vào PHP 8.1.
  • Hàm mới fdatasync() và fsync().
  • Các hàm mới của Sodium XChaCha20.
  • Thêm tính năng loại giao điểm thuần túy (pure intersection types).
  • Ký hiệu số bát phân rõ ràng (Explicit Octal Numeral Notation).
  • Định nghĩa hằng số lớp cuối cùng (Define final Class Constants).
  • Hỗ trợ thuật toán băm MurmurHash3.
  • Các kiểu giao điểm (Intersection Types).
  • Hỗ trợ thuật toán băm xxHash.

Bước 1: Cập nhật hệ thống Ubuntu

Bắt đầu quá trình cài đặt PHP 8.1 trên Ubuntu 20.04 bằng cách đảm bảo rằng hệ thống đã được cập nhật và nâng cấp.

sudo apt update && sudo apt -y upgrade

Bạn khởi động lại hệ thống sau khi nâng cấp hệ điều hành thành công.

Bước 2: Thêm kho lưu trữ PPA của Ondřej Surý

Đối với Ubuntu 20.04, các gói nhị phân PHP 8.1 có sẵn trong kho lưu trữ PPA của Ondřej Surý. Kho lưu trữ này cần được thêm vào hệ thống một cách thủ công.

Thêm kho lưu trữ PPA của Ondřej Surý vào hệ thống:

sudo apt update
sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

Chọn Enter Key để thêm kho lưu trữ

Lấy danh sách các gói mới nhất từ ​ nguồn được định cấu hình trên hệ thống Ubuntu của bạn:

sudo apt update

Bước 3: Install PHP 8.1 on Ubuntu 20.04

Chúng ta giờ đã có thể install PHP 8.1 trên máy Linux Ubuntu 20.04. Chạy lệnh sau:

sudo apt install php8.1

Ấn phím y để bắt đầu quá trình cài đặt.

The following additional packages will be installed: apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php8.1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libjansson4 liblua5.2-0 php-common php8.1-cli php8.1-common php8.1-opcache php8.1-readline ssl-cert Suggested packages: apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser php-pear openssl-blacklist The following NEW packages will be installed: apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php8.1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libjansson4 liblua5.2-0 php-common php8.1 php8.1-cli php8.1-common php8.1-opcache php8.1-readline ssl-cert 0 upgraded, 18 newly installed, 0 to remove and 109 not upgraded. Need to get 6589 kB of archives. After this operation, 29.4 MB of additional disk space will be used. Do you want to continue? [Y/n] y

Kiểm tra phiên bản PHP hiện tại đang hoạt động:

$ php --version PHP 8.1.0 (cli) (built: Nov 23 2021 18:56:11) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.1.0, Copyright (c) Zend Technologies with Zend OPcache v8.1.0, Copyright (c), by Zend Technologies

Bước 4: Cài đặt các tiện ích PHP 8.1

Lệnh để install các tiện ích PHP 8.1 trên Ubuntu 20.04:

sudo apt install php8.1-<extension>
  • Trong đó, <extension> sẽ được thay thế bằng tên tiện ích PHP mà bạn muốn cài đặt. Ví dụ: mysql, zip, xml, v.v...

Một số tiện ích có sẵn như sau:

  • mysql: Cài đặt tiện ích MySQL
  • zip: Cài đặt tiện ích ZIP
  • xml: Cài đặt tiện ích XML

Ví dụ cài đặt các tiện ích PHP phổ biến:

$ sudo apt install php8.1-<TAB> 
php8.1-amqp php8.1-decimal php8.1-grpc php8.1-maxminddb php8.1-opcache php8.1-redis php8.1-tidy php8.1-yac php8.1-apcu php8.1-dev php8.1-igbinary php8.1-mbstring php8.1-pcov php8.1-rrd php8.1-uopz php8.1-yaml php8.1-ast php8.1-ds php8.1-imagick php8.1-mcrypt php8.1-pgsql php8.1-smbclient php8.1-uploadprogress php8.1-zip php8.1-bcmath php8.1-enchant php8.1-imap php8.1-memcache php8.1-phpdbg php8.1-snmp php8.1-uuid php8.1-zmq php8.1-bz2 php8.1-fpm php8.1-inotify php8.1-memcached php8.1-protobuf php8.1-soap php8.1-vips php8.1-zstd php8.1-cgi php8.1-gd php8.1-interbase php8.1-mongodb php8.1-ps php8.1-solr php8.1-xdebug php8.1-cli php8.1-gearman php8.1-intl php8.1-msgpack php8.1-pspell php8.1-sqlite3 php8.1-xhprof php8.1-common php8.1-gmagick php8.1-ldap php8.1-mysql php8.1-psr php8.1-ssh2 php8.1-xml php8.1-curl php8.1-gmp php8.1-lz4 php8.1-oauth php8.1-raphf php8.1-swoole php8.1-xmlrpc php8.1-dba php8.1-gnupg php8.1-mailparse php8.1-odbc php8.1-readline php8.1-sybase php8.1-xsl

Ví dụ cài đặt các extensions PHP phổ biến:

sudo apt install php8.1-{bcmath,xml,fpm,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi}

Để liệt kê tất cả các module PHP 8.1 đã nạp, chạy lệnh sau:

$ php --modules [PHP Modules] bcmath bz2 calendar Core ctype curl date dom exif FFI fileinfo filter ftp gd gettext hash iconv intl json ldap libxml mbstring mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_pgsql pgsql Phar posix readline Reflection session shmop SimpleXML soap sockets sodium SPL standard sysvmsg sysvsem sysvshm tokenizer xml xmlreader xmlwriter xsl Zend OPcache zip zlib [Zend Modules] Zend OPcache

Nếu sử dụng PHP với máy chủ web Nginx, đảm bảo dịch vụ php-fpm đã được bật và chạy:

$ systemctl status php*-fpm.service ● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-11-20 19:40:34 UTC; 59s ago Docs: man:php-fpm8.1(8) Process: 25095 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81 (code=exited, status=0/SUCCESS) Main PID: 25091 (php-fpm8.1) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 2344) Memory: 10.9M CGroup: /system.slice/php8.1-fpm.service ├─25091 php-fpm: master process (/etc/php/8.1/fpm/php-fpm.conf) ├─25093 php-fpm: pool www └─25094 php-fpm: pool www Nov 20 19:40:34 ubuntu-01 systemd[1]: Starting The PHP 8.1 FastCGI Process Manager... Nov 20 19:40:34 ubuntu-01 php-fpm8.1[25091]: [20-Nov-2021 19:40:34] NOTICE: PHP message: PHP Warning: PHP Startup: ^(text/|application/xhtml\+xml) (offset=0): unrecognised compile-time optio> Nov 20 19:40:34 ubuntu-01 systemd[1]: Started The PHP 8.1 FastCGI Process Manager.

Cấu hình mặc định của PHP-FPM để thiết lập socket lắng nghe, người dùng và thông tin khác nằm tại:

$ ls  -1 /etc/php/8.1/fpm/
conf.d
php-fpm.conf
php.ini
pool.d
$ sudo vim /etc/php/8.1/fpm/pool.d/www.conf
$ sudo vim /etc/php/8.1/fpm/php-fpm.conf

Đối với Apache, cài đặt mô-đun PHP 8.1 cho Apache và khởi động lại Apache sau khi cài đặt:

sudo apt install libapache2-mod-php8.1
sudo systemctl restart apache2

Switch php version:

sudo update-alternatives --config php

PHP 8.1 mang đến nhiều tính năng mới và cải tiến, giúp bạn phát triển các ứng dụng web hiện đại một cách hiệu quả hơn. Hy vọng bài viết đã giúp bạn thành công trong việc install PHP 8.1 trên Ubuntu 20.04 và khám phá thêm về sự phát triển của ngôn ngữ lập trình này.

Làm cách nào để chuyển đổi phiên bản PHP cho CLI?

  • Kiểm tra tất cả các phiên bản PHP được cài đặt trên Ubuntu bằng cách chạy các lệnh bên dưới.
    • root@ubuntu ~]# dpkg-query -l | grep -i php
      
      root@ubuntu ~]# apt list --installed | grep -i php
  • Chạy lệnh bên dưới và chọn phiên bản PHP bạn muốn chuyển sang. Trong ví dụ dưới đây tôi đang chuyển phiên bản PHP sang 7.4
    • root@ubuntu ~]# update-alternatives --config php
      
      There are 4 choices for the alternative php (providing /usr/bin/php).
      
        Selection  Path                     Priority      Status
      ------------------------------------------------------------
      * 0          /usr/bin/php8.0          80            auto mode
        1          /usr/bin/php5.6          56            manual mode
        2          /usr/bin/php7.0          70            manual mode
        3          /usr/bin/php7.4          74            manual mode
        4          /usr/bin/php8.0          80            manual mode
      
      Press <enter> to keep the current choice[*], or type selection number: 3
      update-alternatives: using /usr/bin/php7.4 to provide /usr/bin/php (php) in manual mode

Cài đặt node bằng Trình quản lý phiên bản node nvm

  • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh
  • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
  • source ~/.bashrc
  • nvm list-remote
  • Output
    . . .
            v18.0.0
            v18.1.0
            v18.2.0
           ...
  • nvm install v14.10.0

Setting Up Nginx

  • sudo nano /etc/nginx/sites-available/travellist
  • server {
        listen 80;
        server_name server_domain_or_IP;
        root /var/www/travellist/public;
    
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";
    
        index index.html index.htm index.php;
    
        charset utf-8;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }
    
        error_page 404 /index.php;
    
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
  • sudo ln -s /etc/nginx/sites-available/travellist /etc/nginx/sites-enabled/
  • sudo nginx -t
    sudo systemctl reload nginx

Trường hợp sử dụng port khác default

Bạn cần phải cho phép cổng 8080 trong tường lửa của bạn.

Nếu bạn chưa cài đặt ufw, hãy cài đặt nó như sau:

$ sudo apt install ufw​

Sau đó, kiểm tra trạng thái của ufw:

$ sudo ufw status​

Kiểm tra xem cổng cần thiết của bạn đã được thêm vào danh sách chưa.

Sau đó, sử dụng lệnh sau để cho phép cổng 8080:

$ sudo ufw allow 8080​

Kiểm tra lại trạng thái của ufw. Bây giờ, nó sẽ hiển thị cổng và kết nối được phép cho ipv4, ipv6. Khởi động lại máy chủ nginx và kiểm tra xem cổng có hoạt động không:

$ sudo systemctl restart nginx
$ curl -I 'http://{địachỉcủa bạn}:8080'​

Hoặc truy cập vào URL trong trình duyệt của bạn.

Nếu bạn đang sử dụng GCP, AWS, hãy kiểm tra cài đặt tường lửa bên ngoài trên bảng điều khiển máy chủ của bạn, chẳng hạn như cho phép http_server 80. Hãy chỉnh sửa bản ghi này thành 80, 8080 và lưu lại.

Lưu ý: Đừng thực hiện cài đặt tường lửa nội bộ bằng ufw trong GCP, AWS vì họ đã có cài đặt tường lửa riêng cho các hệ thống của họ.

Downloading and Installing Composer

  • sudo apt update
  • cd ~
    curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
  • HASH=`curl -sS https://composer.github.io/installer.sig`
  • echo $HASH
  • Output
    906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8
  • php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
  • Installer verified
  • sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
  • Output
    All settings correct for using Composer
    Downloading...
    
    Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
    Use it: php /usr/local/bin/composer
  • composer

Install MariaDB on Ubuntu 20.04

Link hướng dẫn: Link

Installing MySQL

  1. sudo apt install mysql-server
  2. sudo mysql_secure_installation
  3. VALIDATE PASSWORD PLUGIN can be used to test passwords
    and improve security. It checks the strength of password
    and allows the users to set only those passwords which are
    secure enough. Would you like to setup VALIDATE PASSWORD plugin?
    
    Press y|Y for Yes, any other key for No:
  4. sudo mysql

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday