How to install SSH2 extension for PHP 7.4

If You have an error like: Call to undefined function ssh2_connect() that’s mean that in your PHP not installed ssh2 extension.

Install this extension is very simple, in Ubuntu Linux or other Debian based distribution just use the command:

sudo apt install php7.4-ssh2

This command will install ssh2 extension to Your PHP 7.4. If you use other PHP version, just change number in this command to Your version.

How to use Match in PHP 8

In PHP 8, the match expression was introduced as a more concise and powerful alternative to the switch statement. The match expression allows you to perform pattern matching against a value and execute code based on the matched pattern.

Here’s the basic syntax of the match expression:

match ($value) {
    pattern_1 => expression_1,
    pattern_2 => expression_2,
    // more patterns and expressions...
    pattern_n => expression_n,
    default => expression_default

Here’s how it works:

  • The $value is the expression that you want to match against.
  • pattern_1, pattern_2, and pattern_n are the patterns you want to match against the value. These can be literal values, constants, or expressions.
  • expression_1, expression_2, and expression_n are the expressions that will be executed if the corresponding pattern matches.
  • default is an optional keyword that specifies the default case when none of the patterns match. expression_default is the expression executed in the default case.

The match expression evaluates the value and compares it against each pattern in order. If a pattern matches, the corresponding expression is executed, and the match expression completes. If none of the patterns match, the default case (if provided) is executed. If no default case is provided and no pattern matches, a MatchError is thrown.

Here’s an example to illustrate the usage of the match expression:

$result = match ($value) {
    0 => 'Zero',
    1 => 'One',
    2, 3 => 'Two or Three',
    4, 5, 6 => 'Four, Five, or Six',
    default => 'Other'

In this example, the value of $value is matched against different patterns, and the corresponding expressions are executed based on the match. The result is assigned to the variable $result.

The match expression in PHP 8 provides a more expressive and concise way to perform pattern matching, making your code easier to read and maintain.

Disable exec, shell_exec, system, popen and Other PHP Functions To Improve Security

PHP has a lot of functions which can be used to crack your server if not used properly. You can set list of functions in php.ini using disable_functions directive. This directive allows you to disable certain functions for security reasons. It takes on a comma-delimited list of function names.

Open a terminal application or login to your server over the ssh session using ssh command. Open php.ini file using a text editor such as vim command or nano command:

sudo nano /etc/php/8.0/fpm/php.ini

Find disable_functions and set new list as follows:

disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

We also recommend to disable allow_url_include and allow_url_fopen for security reasons:


Restart PHP with command:

systemctl restart php8.0-fpm

Install Composer and Laravel

First install Composer package manager on on your project:

php -r "copy('', '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');"

Now install Composer global:

php composer.phar global require laravel/installer

Install Composer to your project (change site-name to your project name):

php composer.phar create-project --prefer-dist laravel/laravel site-name "8.*"

How to install Composer on Linux server

Composer is a most popular PHP package manager, let’s install composer on website and watch how it works.

You can download Composer from official site:

Connect to your server via SSH client and run this commands:

php -r "copy('', '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');"