Verification: a143cc29221c9be0

Path to php in ubuntu

Path to php in ubuntu

Установка на Ubuntu

Поддерживаются версии Ubuntu 16.04, 18.04 и 20.04.

Примечание

Чтобы установить PHP 7.4 или 7.3, замените 8.0 на 7.4 или 7.3 в следующих командах.

Шаг 1. Установка PHP (Ubuntu)

sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php8.0 php8.0-dev php8.0-xml -y --allow-unauthenticated

Шаг 2. Установка необходимых компонентов (Ubuntu)

Установите драйвер ODBC для Ubuntu, следуя инструкциям в статье Установка Microsoft ODBC Driver for SQL Server (Linux). Также обязательно установите дополнительный пакет unixodbc-dev. Он используется командой pecl для установки драйверов PHP.

Шаг 3. Установка драйверов PHP для Microsoft SQL Server (Ubuntu)

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv

Если в системе только одна версия PHP, последний шаг можно упростить: phpenmod sqlsrv pdo_sqlsrv.

Шаг 4. Установка Apache и настройка загрузки драйвера (Ubuntu)

sudo su
apt-get install libapache2-mod-php8.0 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.0
exit

Шаг 5. Перезапуск Apache и тестирование примера скрипта (Ubuntu)

sudo service apache2 restart

Чтобы протестировать установку, воспользуйтесь разделом Тестирование установки в конце этого документа.

Установка в Ubuntu с PHP-FPM

Поддерживаются версии Ubuntu 16.04, 18.04 и 20.04.

Примечание

Чтобы установить PHP 7.4 или 7.3, замените 8.0 на 7.4 или 7.3 в следующих командах.

Шаг 1. Установка PHP (Ubuntu с PHP-FPM)

sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php8.0 php8.0-dev php8.0-fpm php8.0-xml -y --allow-unauthenticated

Проверьте состояние службы PHP-FPM, выполнив следующее:

systemctl status php8.0-fpm

Шаг 2. Установка необходимых компонентов (Ubuntu с PHP-FPM)

Установите драйвер ODBC для Ubuntu, следуя инструкциям в статье Установка Microsoft ODBC Driver for SQL Server (Linux). Также обязательно установите дополнительный пакет unixodbc-dev. Он используется командой pecl для установки драйверов PHP.

Шаг 3. Установка драйверов PHP для Microsoft SQL Server (Ubuntu с PHP-FPM)

sudo pecl config-set php_ini /etc/php/8.0/fpm/php.ini
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv

Если в системе только одна версия PHP, последний шаг можно упростить: phpenmod sqlsrv pdo_sqlsrv.

Убедитесь, что sqlsrv.ini и pdo_sqlsrv.ini находятся в /etc/php/8.0/fpm/conf.d/:

ls /etc/php/8.0/fpm/conf.d/*sqlsrv.ini

Перезапустите службу PHP-FPM:

sudo systemctl restart php8.0-fpm

Шаг 4. Установка и настройка nginx (Ubuntu с PHP-FPM)

sudo apt-get update
sudo apt-get install nginx
sudo systemctl status nginx

Чтобы настроить nginx, необходимо изменить файл /etc/nginx/sites-available/default. Добавьте index.php в список под разделом со следующим текстом: # Add index.php to the list if you are using PHP:

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;

Затем раскомментируйте и измените раздел после # pass PHP scripts to FastCGI server следующим образом:

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
}

Шаг 5. Перезапуск nginx и тестирование примера скрипта (Ubuntu с PHP-FPM)

sudo systemctl restart nginx.service

Чтобы протестировать установку, воспользуйтесь разделом Тестирование установки в конце этого документа.

Установка в Red Hat

Поддерживаются версии Red Hat 7 и 8.

Шаг 1. Установка PHP (Red Hat)

Чтобы установить PHP в Red Hat 7, выполните следующие команды:

Примечание

Чтобы установить PHP 7.4 или 7.3, замените remi-php80 строкой remi-php74 или remi-php73 соответственно в следующих командах.

sudo su
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
subscription-manager repos --enable=rhel-7-server-optional-rpms
yum install yum-utils
yum-config-manager --enable remi-php80
yum update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
yum install php php-pdo php-xml php-pear php-devel re2c gcc-c++ gcc

Чтобы установить PHP в Red Hat 8, выполните следующие команды:

Примечание

Чтобы установить PHP 7.4 или 7.3, замените remi-8.0 на remi-7.4 или remi-7.3 соответственно в следующих командах.

sudo su
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install yum-utils
dnf module reset php
dnf module install php:remi-8.0
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
dnf update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
dnf install php-pdo php-pear php-devel

Шаг 2. Установка необходимых компонентов (Red Hat)

Установите драйвер ODBC для Red Hat 7 или 8, следуя инструкциям в статье Установка Microsoft ODBC Driver for SQL Server (Linux). Также обязательно установите дополнительный пакет unixodbc-dev. Он используется командой pecl для установки драйверов PHP.

Шаг 3. Установка драйверов PHP для Microsoft SQL Server (Red Hat)

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini
exit

Можно также установить их из репозитория Remi:

sudo yum install php-sqlsrv

Шаг 4. Установка Apache (Red Hat)

sudo yum install httpd

SELinux устанавливается по умолчанию и выполняется в принудительном режиме. Чтобы разрешить Apache подключаться к базам данных через SELinux, выполните следующую команду:

sudo setsebool -P httpd_can_network_connect_db 1

Шаг 5. Перезапуск Apache и тестирование примера скрипта (Red Hat)

sudo apachectl restart

Чтобы протестировать установку, воспользуйтесь разделом Тестирование установки в конце этого документа.

Установка в Debian

Поддерживаются версии Debian 9 и 10.

Примечание

Чтобы установить PHP 7.4 или 7.3, замените 8.0 на 7.4 или 7.3 в следующих командах.

Шаг 1. Установка PHP (Debian)

sudo su
apt-get install curl apt-transport-https
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update
apt-get install -y php8.0 php8.0-dev php8.0-xml php8.0-intl

Шаг 2. Установка необходимых компонентов (Debian)

Установите драйвер ODBC для Debian, следуя инструкциям в статье Установка Microsoft ODBC Driver for SQL Server (Linux). Также обязательно установите дополнительный пакет unixodbc-dev. Он используется командой pecl для установки драйверов PHP.

Кроме того, может потребоваться создать правильный языковой стандарт, чтобы выходные данные PHP правильно отображались в браузере. Например, для языкового стандарта en_US UTF-8 выполните следующие команды:

sudo su
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen

Может потребоваться добавить /usr/sbin в $PATH, так как там находится исполняемый файл locale-gen.

Шаг 3. Установка драйверов PHP для Microsoft SQL Server (Debian)

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv

Если в системе только одна версия PHP, последний шаг можно упростить: phpenmod sqlsrv pdo_sqlsrv. Как и в случае с locale-gen, phpenmod находится в /usr/sbin, поэтому может потребоваться добавить этот каталог в $PATH.

Шаг 4. Установка Apache и настройка загрузки драйвера (Debian)

sudo su
apt-get install libapache2-mod-php8.0 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.0

Шаг 5. Перезапуск Apache и тестирование примера скрипта (Debian)

sudo service apache2 restart

Чтобы протестировать установку, воспользуйтесь разделом Тестирование установки в конце этого документа.

Установка в Suse

Поддерживаются версии Suse Enterprise Linux 12 и 15.

Примечание

В следующих инструкциях замените на свою версию SUSE. Если вы используете SUSE Enterprise Linux 15, это будет SLE_15_SP1 или SLE_15_SP2. Для SUSE 12 используйте SLE_12_SP4 (или выше, если применимо). Не все версии PHP доступны для всех версий SUSE Linux. В http://download.opensuse.org/repositories/devel:/languages:/php указано, какие версии SUSE имеют доступную версию PHP по умолчанию, а в http://download.opensuse.org/repositories/devel:/languages:/php:/ — какие еще версии PHP доступны для разных версий SUSE.

Примечание

Пакеты для PHP 7.4 или более поздней версии недоступны для SUSE 12, а пакет для PHP 8.0 пока не доступен для SUSE 15. Чтобы установить PHP 7.3, замените URL-адрес репозитория в команде ниже следующим URL-адресом: https://download.opensuse.org/repositories/devel:/languages:/php:/php73//devel:languages:php:php73.repo.

Шаг 1. Установка PHP (Suse)

sudo su
zypper -n ar -f https://download.opensuse.org/repositories/devel:languages:php//devel:languages:php.repo
zypper --gpg-auto-import-keys refresh
zypper -n install php7 php7-devel php7-openssl

Шаг 2. Установка необходимых компонентов (Suse)

Установите драйвер ODBC для SUSE, следуя инструкциям в статье Установка Microsoft ODBC Driver for SQL Server (Linux). Также обязательно установите дополнительный пакет unixodbc-dev. Он используется командой pecl для установки драйверов PHP.

Шаг 3. Установка драйверов PHP для Microsoft SQL Server (Suse)

Примечание

Если вы получаете сообщение об ошибке вида Connection to 'pecl.php.net:443' failed: Unable to find the socket transport "ssl", измените скрипт pecl в папке /usr/bin/pecl, удалив аргумент -n в последней строке. Этот аргумент запрещает PECL загружать ini-файлы при вызове PHP, что мешает загрузить расширение OpenSSL PECL.

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/sqlsrv.ini
exit

Шаг 4. Установка Apache и настройка загрузки драйвера (Suse)

sudo su
zypper install apache2 apache2-mod_php7
a2enmod php7
echo "extension=sqlsrv.so" >> /etc/php7/apache2/php.ini
echo "extension=pdo_sqlsrv.so" >> /etc/php7/apache2/php.ini
exit

Шаг 5. Перезапуск Apache и тестирование примера скрипта (Suse)

sudo systemctl restart apache2

Чтобы протестировать установку, воспользуйтесь разделом Тестирование установки в конце этого документа.

Установка в Alpine

Поддерживаются версии Alpine 3.11 и 3.12.

Примечание

Версия PHP по умолчанию — 7.3. Версия PHP 7.4 или более поздняя может быть доступна в тестовых или пограничных репозиториях для Alpine. Вместо этого можно скомпилировать PHP из источника.

Шаг 1. Установка PHP (Alpine)

Пакеты PHP для Alpine находятся в репозитории edge/community. Проверьте раздел Включить репозиторий сообщества на их вики-странице. Добавьте следующую строку в /etc/apk/repositories, заменив на URL-адрес зеркального отображения репозитория Alpine:

http:///alpine/edge/community

Далее выполните:

sudo su
apk update
# Note: The php7-pdo package is required only for the PDO_SQLSRV driver
apk add php7 php7-dev php7-pear php7-pdo php7-openssl autoconf make g++

Шаг 2. Установка необходимых компонентов (Alpine)

Установите драйвер ODBC для Alpine, следуя инструкциям в статье Установка Microsoft ODBC Driver for SQL Server (Linux). Также обязательно установите пакет unixodbc-dev (sudo apk add unixodbc-dev). Он используется командой pecl для установки драйверов PHP.

Шаг 3. Установка драйверов PHP для Microsoft SQL Server (Alpine)

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/10_pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/00_sqlsrv.ini

Шаг 4. Установка Apache и настройка загрузки драйвера (Alpine)

sudo apk add php7-apache2 apache2

Шаг 5. Перезапуск Apache и тестирование примера скрипта (Alpine)

sudo rc-service apache2 restart

Чтобы протестировать установку, воспользуйтесь разделом Тестирование установки в конце этого документа.

Установка в macOS

Поддерживаются версии MacOS 10.14 (Mojave), 10.15 (Catalina) и 11.0 (Big Sur).

Установите brew, как описано ниже, если у вас ее еще нет:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Примечание

Чтобы установить PHP 7.4 или 7.3, замените php@8.0 на php@7.4 или php@7.3 соответственно в следующих командах.

Шаг 1. Установка PHP (macOS)

brew tap
brew tap homebrew/core
brew install php@8.0

PHP теперь должен быть указан в пути. Запустите php -v и убедитесь, что используется правильная версия PHP. Если в пути нет PHP или есть PHP неправильной версии, выполните следующие команды:

brew link --force --overwrite php@8.0

Шаг 2. Установка необходимых компонентов (macOS)

Установите драйвер ODBC для macOS, следуя инструкциям в статье Установка Microsoft ODBC Driver for SQL Server (macOS).

Кроме того, может потребоваться установить средства make для GNU:

brew install autoconf automake libtool

Шаг 3. Установка драйверов PHP для Microsoft SQL Server (macOS)

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Шаг 4. Установка Apache и настройка загрузки драйвера (macOS)

brew install apache2

Чтобы найти файл конфигурации Apache (httpd.conf) для установки Apache, выполните следующую команду:

/usr/local/bin/apachectl -V | grep SERVER_CONFIG_FILE

Следующие команды добавляют необходимую конфигурацию в httpd.conf. Не забудьте указать путь, возвращенный предыдущей командой, вместо /usr/local/etc/httpd/httpd.conf:

echo "LoadModule php7_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp7.so" >> /usr/local/etc/httpd/httpd.conf
(echo ""; echo "SetHandler application/x-httpd-php"; echo "";) >> /usr/local/etc/httpd/httpd.conf

Шаг 5. Перезапуск Apache и тестирование примера скрипта (macOS)

sudo apachectl restart

Чтобы протестировать установку, воспользуйтесь разделом Тестирование установки в конце этого документа.

Тестирование установки

Чтобы протестировать этот пример скрипта, создайте файл с именем testsql.php в корневом каталоге документов системы. Это путь /var/www/html/ в Ubuntu, Debian и Red Hat, /srv/www/htdocs в Suse, /var/www/localhost/htdocs в Alpine и /usr/local/var/www в macOS. Скопируйте приведенный ниже скрипт, заменив имя сервера, имя базы данных, имя пользователя и пароль правильными значениями.

Пример SQLSRV

 "yourDatabase",
    "uid" => "yourUsername",
    "pwd" => "yourPassword"
);

function exception_handler($exception) {
    echo "

Failure

"; echo "Uncaught exception: " , $exception->getMessage(); echo "

PHP Info for troubleshooting

"; phpinfo(); } set_exception_handler('exception_handler'); // Establishes the connection $conn = sqlsrv_connect($serverName, $connectionOptions); if ($conn === false) { die(formatErrors(sqlsrv_errors())); } // Select Query $tsql = "SELECT @@Version AS SQL_VERSION"; // Executes the query $stmt = sqlsrv_query($conn, $tsql); // Error handling if ($stmt === false) { die(formatErrors(sqlsrv_errors())); } ?>

Success Results :

SQL Error:"; echo "Error information:
"; foreach ($errors as $error) { echo "SQLSTATE: ". $error['SQLSTATE'] . "
"; echo "Code: ". $error['code'] . "
"; echo "Message: ". $error['message'] . "
"; } } ?>

Пример PDO_SQLSRV

query($tsql);
} catch (PDOException $exception1) {
    echo "

Caught PDO exception:

"; echo $exception1->getMessage() . PHP_EOL; echo "

PHP Info for troubleshooting

"; phpinfo(); } ?>

Success Results :

fetch(PDO::FETCH_ASSOC)) { echo $row['SQL_VERSION'] . PHP_EOL; } } catch (PDOException $exception2) { // Display errors echo "

Caught PDO exception:

"; echo $exception2->getMessage() . PHP_EOL; } unset($stmt); unset($conn); ?>

Перейдите в браузере на страницу https://localhost/testsql.php (https://localhost:8080/testsql.php в Mac OS). Теперь вы сможете подключиться к базе данных SQL Server или SQL Azure. Если вы не видите сообщение об успешном выполнении с информацией о версии SQL, выполните основные действия по устранению неполадок, запустив скрипт из командной строки:

php testsql.php

Если выполнение из командной строки прошло успешно, но в браузере ничего не отображается, проверьте файлы журнала Apache. Если потребуется дополнительная поддержка, см. места, где можно найти необходимую информацию, в разделе Ресурсы поддержки.

Step 1 – Add PHP PPA

First of all, you need to configure repository on your system. Run the following command to add ondrej PHP repository to your Ubuntu system.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

The above command will also update the packages information list. But if you already have repository added, then update the packages information before installing or updating package:

sudo apt update

Once the update complete, lets begin the PHP installation.

Step 2 – Install Required PHP Version

You can install any required php version on your Ubuntu system. Use one of the following options to install PHP.

  • Install PHP 7.4

    PHP 7.4 is the latest stable version available for installation. To install PHP 7.4 on your Ubuntu system run command:

    sudo apt install -y php7.4
    
  • Install PHP 7.3

    PHP 7.3 is an current active release of PHP. The PHP team is still providing updates on this version. To install PHP 7.3 on Ubuntu, type:

    sudo apt install -y php7.3
    
  • Install PHP 7.2

    For the PHP 7.2, the development is only providing security updates and fixed. Further development on this version is stopped. To install this version run commands:

    sudo apt install -y php7.2
    

    Info: This repository also contains PHP 7.1 and PHP 7.0 versions. You can install them by changing the php version number in above commands.

  • Install PHP 5.6

    PHP 5.6 is an outdated version. Its development is stopped and no more security updates available. But if you application still relies on this version use below command to install it.

    sudo apt install -y php5.6
    

    But it is recommended to upgrade your applications and make them compatible with latest PHP versions.

Step 3 – Check PHP Version

To view the current active PHP version run the following command:

php -v

PHP 7.4.8 (cli) (built: Jul 13 2020 16:46:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.8, Copyright (c), by Zend Technologies

Step 4 – Install PHP Modules

You may also need to install modules based on your application requirements. Use the following command to search available PHP 7 modules in the package repository.

sudo apt-cache search php7*

You can install the required PHP modules on your system. Just change the PHP version with the packages names as per your requirements:

sudo apt install php7.4-mysql php7.4-curl php7.4-json php7.4-cgi php7.4-xsl

Step 5 – Switch Between PHP Versions

You can use update-alternatives command to set the default PHP version. Use this tutorial to read more details about switching PHP version for CLI and Apache.

sudo update-alternatives --config php

Select PHP version number as per your requirement. This will change the PHP CLI version only.

There are 4 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.4   74        auto mode
  1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php7.2   72        manual mode
  3            /usr/bin/php7.3   73        manual mode
  4            /usr/bin/php7.4   74        manual mode

Press  to keep the current choice[*], or type selection number: 4

Method 1

One way to find out exactly which php.ini file your web sever is using is by creating a new PHP file in document root called info.php.

info.php

Load this file in your browser, press CTRL + F (or Command + F on Mac) and search for “Loaded Configuration File”. You should see something like

/etc/php/7.4/apache2/php.ini

This will tell you the exact location of the php.ini file you want to edit.

Method 2

In Linux, run this command to locate the PHP.ini configuration file.

php -i | grep "Loaded Configuration File"

Or in Windows Command Line:

php -i | findstr /c:"Loaded Configuration File"

The result should be something like this.

Loaded Configuration File => /etc/php/7.4/cli/php.ini

In the above example, we can see that the PHP install is located in /etc/php/7.4. Note that there are three different configuration files you should we aware of:

CLI

/etc/php/7.4/cli/php.ini is for the CLI PHP program. Changes to this config file will only affect PHP as it runs in the terminal – it will NOT affect the web server.

Apache

/etc/php/7.4/apache2/php.ini is for the PHP plugin used by Apache. This is the one you need to edit if you are using the Apache web server.

Nginx or Apache with PHP-FPM

/etc/php/7.4/fpm/php.ini is a fastcgi-compatible ‘wrapper’ for PHP processing. This is the one you need to edit if you’re using the Nginx web server or Apache with PHP-FPM.

Method 3

Using the locate command in Linux,. If it’s not already installed, run  sudo apt update && sudo apt install mlocate.

locate php.ini

You should see a list of php.ini files here. Try editing one of them and restarting you web server to see if makes the required changes.

Editing php.ini in Linux

Apache

On Apache, php.ini is usually located in /etc/php/7.4/apache2/php.ini. Replace 7.4 with your own version, e.g, php5.6php7.1, etc.

To edit:

sudo nano /etc/php/7.4/apache2/php.ini

However, if you are using PHP FPM, it may be located in /etc/php/7.4/fpm/php.ini. Replace 7.4 with your own version, e.g, php5.6php7.1, etc.

To edit:

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

To save file and exit, press CTRL + X, press Y and then press ENTER

You must restart Apache after altering php.ini.

sudo systemctl restart apache2

If you are using PHP-FPM, you must restart that service. Replace php7.4 with your own version, e.g, php5.6php7.1, etc.

sudo service php7.4-fpm restart

Nginx or Apache with PHP-FPM

Nginx uses PHP FPM and php.ini is usually located in /etc/php/7.4/fpm/php.ini. Replace 7.4 with your own version, e.g, php5.6php7.2, etc.

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

To save file and exit, press CTRL + X, press Y and then press ENTER

You must restart Nginx after altering php.ini.

sudo service nginx restart

Установка PHP Composer в Ubuntu

Перед установкой Composer убедитесь, что в вашей системе установлены все необходимые требования:

sudo apt updatesudo apt install wget php-cli php-zip unzip

Composer предлагает установщик, написанный на PHP, который мы будем использовать для установки Composer. Используйте wget для загрузки установщика:

wget -O composer-setup.php https://getcomposer.org/installer

Приведенная выше команда сохранит файл как composer-setup.php в текущем рабочем каталоге .

Composer — это однофайловое приложение CLI, которое можно установить глобально или как часть проекта. Для глобальной установки требуются привилегии sudo .

  • Чтобы установить Composer глобально как общесистемную команду, которая будет доступна для всех пользователей, просто поместите файл в каталог, который находится в системном PATH . Выполните следующую команду, чтобы установить Composer в каталог /usr/local/bin :

     sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
     All settings correct for using Composer Downloading... Composer (version 1.10.7) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer

    Теперь вы можете использовать Composer, запустив composer в своем терминале.

  • Чтобы установить композитор локально, введите:

     sudo php composer-setup.php --install-dir=/path/to/project

    Это загрузит файл с именем composer.phar в корневой каталог вашего проекта. Чтобы использовать Composer, перейдите в каталог проекта и запустите php composer.phar

Когда доступна новая версия Composer, вы можете обновить свою установку, используя следующую команду:

sudo composer self-update  

Начало работы с Composer

Теперь, когда Composer установлен в вашей системе Ubuntu, давайте посмотрим, как создать проект PHP с помощью Composer.

Первый шаг — создать корневой каталог проекта и перейти к нему :

mkdir ~/my-first-composer-projectcd ~/my-first-composer-project

В этом примере мы будем использовать пакет PHP под названием carbon, чтобы создать пример приложения, которое печатает текущее время.

Выполните следующую команду, чтобы инициализировать новый проект Composer и установить углеродный пакет:

composer require nesbot/carbon
Using version ^2.35 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
  - Installing symfony/translation-contracts (v2.1.2): Downloading (100%)         
  - Installing symfony/polyfill-php80 (v1.17.0): Downloading (100%)         
  - Installing symfony/polyfill-mbstring (v1.17.0): Downloading (100%)         
  - Installing symfony/translation (v5.1.2): Downloading (100%)         
  - Installing nesbot/carbon (2.35.0): Downloading (100%)         
Writing lock file
Generating autoload files
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Как показано в выходных данных, Composer создает файл composer.json загружает и устанавливает углерод и все его зависимости.

Если вы укажете каталог вашего проекта , вы увидите, что он содержит два файла composer.json и composer.lock и каталог vendor .

ls -l
-rw-rw-r--. 1 linuxize linuxize    60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 linuxize linuxize 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 linuxize linuxize    82 Mar 27 18:06 vendor
  • vendor — это каталог, в котором хранятся зависимости проекта.
  • composer.lock — это файл, в котором хранится информация обо всех установленных пакетах и их версиях, что позволяет привязать проект к конкретным версиям.
  • composer.json — это файл, описывающий ваш PHP-проект, включая PHP-зависимости и другие метаданные.

Все пакеты PHP, устанавливаемые с помощью Composer, перечислены на Packagist .

Composer имеет возможности автозагрузки, которые позволяют нам использовать классы PHP без необходимости require или include файлы.

Создайте файл с именем testing.php и добавьте следующий код:

php

require __DIR__ . '/vendor/autoload.php';

use CarbonCarbon;

printf("Now: %s", Carbon::now());

Давайте проанализируем код построчно.

Файл vendor/autoload.php автоматически создается Composer и автоматически загружает все библиотеки.

Следующая строка создает псевдоним Carbon а последняя строка печатает текущее время с использованием метода Carbon now .

Запустите сценарий, набрав:

php testing.php

Результат должен выглядеть примерно так:

Now: 2020-06-17 20:41:04

Позже, если вам потребуется обновить пакеты проекта, введите:

composer update

Приведенная выше команда проверит наличие более новых версий установленных пакетов, и если будет обнаружена более новая версия и ограничение версии совпадает с ограничением, указанным в composer.json , Composer обновит пакет.

Установка Apache

Первый компонент вашего стека LAMP в Ubuntu 20.04 – Apache.

Начните с обновления списков пакетов и установки Apache. Нажмите y и ENTER, когда вас попросят продолжить. Команда: 

sudo apt update && sudo apt install apache2

Установка может занять несколько минут.

Настройка брандмауэра

Настоятельно рекомендуется настроить брандмауэр для обеспечения дополнительной безопасности вашего LAMP-стека в Ubuntu 20.04.

Мы начнем с добавления правила брандмауэра для SSH. Вы же не хотите получить блокировку при включении брандмауэра, когда настраиваете сервер удаленно? 

Сообщение об ошибке «ERROR: could find a profile matching openSSH» означает, что вы не настраиваете сервер удаленно. Можно игнорировать. 

Теперь мы можем добавить правила брандмауэра для Apache:

sudo ufw allow in "Apache Full"

Теперь включите брандмауэр:

Нажмите y, если вы видите сообщение «Command may disrupt existing ssh connections».

Если брандмауэр был активирован правильно, вы должны увидеть сообщение «Брандмауэр активен и включен при запуске системы»​.

Вы также можете проверить текущее состояние брандмауэра с помощью:

Ниже мы видим, что брандмауэр активен и имеет два правила для каждой службы. v6 это сокращение от IPv6.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6)

Тестовый Apache

Чтобы узнать, правильно ли установлен Apache на Ubuntu 20.04, мы можем проверить текущее состояние службы:

sudo service apache2 status

Если он включен и работает, вы должны увидеть зеленое активное состояние.

Если вы получаете следующую ошибку о полном доменном имени, вы можете игнорировать ее:

apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sat 2020-03-31 08:44:04 CEST; 15min ago
Main PID: 5727 (apache2)
Tasks: 55 (limit: 4915)
CGroup: /system.slice/apache2.service
├─5727 /usr/sbin/apache2 -k start
├─5728 /usr/sbin/apache2 -k start
└─5729 /usr/sbin/apache2 -k start

Mar 31 08:44:04 ubuntu2004 systemd[1]: Starting The Apache HTTP Server...
Mar 31 08:44:04 ubuntu2004 apachectl[5675]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1.
Mar 31 08:44:04 ubuntu2004 systemd[1]: Started The Apache HTTP Server.

Возможно, вам придется нажать кнопку q для выхода из проверки состояния сервера при использовании SSH-клиента.

Теперь, когда служба Apache запущена, вы имеете возможность просмотреть тестовую веб-страницу Apache через свой веб-браузер.

Введите IP-адрес вашего сервера в адресную строку и нажмите ENTER.

apache2

Все готово! Вы можете найти страницу приветствия Apache в папке /var/www/html. Чтобы отредактировать этот файл, необходимо ввести:

sudo nano /var/www/html/index.html

Нажмите CTRL+X, чтобы выйти из текстового редактора nano.

Если у вас есть доменное имя, вы можете указать его в IP-адресе вашего сервера без дальнейшей настройки, так как Apache должен загрузить эту страницу по умолчанию. Но если вы хотите разместить несколько доменов на своем сервере или настроить SSL-сертификаты с помощью Let's Encrypt, вам следует настроить виртуальный хост (инструкция будет в конце этого руководства).