Speed up PHP by using an opcode cache
You can improve the performance of your PHP by using a caching method. We’ll use APCu, but there are other alternatives available.
If you have the ‘php-pear’ module installed (we included it in our instructions above), you can install APCu with the following command:
pecl install apcu
There are also other ways you can install APCu, including using a package.
To start using APCu, you should run the following command for PHP 7.2:
echo "extension=apcu.so" | tee -a /etc/php/7.2/mods-available/cache.ini
Or this command for PHP 7.3:
echo "extension=apcu.so" | tee -a /etc/php/7.3/mods-available/cache.ini
And the following command for PHP 7.4:
echo "extension=apcu.so" | tee -a /etc/php/7.4/mods-available/cache.ini
If you’re following our LAMP tutorials and you’re using Apache, create a symlink for the file you’ve just created.
For PHP 7.2:
ln -s /etc/php/7.2/mods-available/cache.ini /etc/php/7.2/apache2/conf.d/30-cache.ini
For PHP 7.3:
ln -s /etc/php/7.3/mods-available/cache.ini /etc/php/7.3/apache2/conf.d/30-cache.ini
For PHP 7.4:
ln -s /etc/php/7.4/mods-available/cache.ini /etc/php/7.4/apache2/conf.d/30-cache.ini
And finally, reload Apache for the changes to take effect:
systemctl restart apache2
To further configure APCu and how it works, you can add some additional lines to the cache.ini file you previously created. The best configuration depends on what kind of server you’re using, what applications you are using etc. Either google it and find a configuration that works for you, or contact professionals and let them do it for you.
Install PHP 7.1 on Ubuntu
Use the following set of commands to add PPA for PHP 7 in your Ubuntu system and install PHP 7.1 version.
sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y php7.1
Now use the following command to check installed php version on your system.
php -v PHP 7.1.27-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 7 2019 20:02:25) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.27-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Install PHP 7 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*
php-all-dev - package depending on all supported PHP development packages php7.0 - server-side, HTML-embedded scripting language (metapackage) php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary) php7.0-cli - command-line interpreter for the PHP scripting language php7.0-common - documentation, examples and common module for PHP php7.0-curl - CURL module for PHP php7.0-dev - Files for PHP7.0 module development php7.0-gd - GD module for PHP php7.0-gmp - GMP module for PHP ... ... ... php7.1-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP php7.1-xmlrpc - XMLRPC-EPI module for PHP php7.1-zip - Zip module for PHP php7.1-opcache - Zend OpCache module for PHP php7.1 - server-side, HTML-embedded scripting language (metapackage) php7.1-xsl - XSL module for PHP (dummy) ... ... php7.2-bcmath - Bcmath module for PHP php7.2-bz2 - bzip2 module for PHP php7.2-cgi - server-side, HTML-embedded scripting language (CGI binary) php7.2-cli - command-line interpreter for the PHP scripting language php7.2-common - documentation, examples and common module for PHP php7.2-curl - CURL module for PHP php7.2-dba - DBA module for PHP
You can install the required PHP modules on your system as below command. Make sure to install packages for correct PHP version by specifying the version with the package name. Without defining the package version, it will install the latest package.
sudo apt-get install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2-xsl
Congratulation! Enjoy the development with PHP 7.
Настройка php 7.1
Настройка php будет заключаться в следующем:
- Устранение уязвимостей
- Увеличение размера загружаемого файла
- Увеличение времени работы скрипта
- Настройка opcache
Открываем php.ini
sudo nano /etc/php/7.1/fpm/php.ini
ищем строчку
;cgi.fix_pathinfo = 1
раскомментируем строчку и поставим за место единицы 0
cgi.fix_pathinfo = 0
Увеличим размер загружаемых файлов. Находим post_max_size и приводим к виду
post_max_size = 100M
Увеличим время обработки скрипта, ищем max_execution_time выставив 300 секунд — обычно нужно для работы с большими таблицами mysql
max_execution_time = 300
Далее ищем opcache. Приводим данные директивы к такому виду:
opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=64 opcache.interned_strings_buffer=4 opcache.max_accelerated_files=7963 opcache.revalidate_freq=20
Сохраняем файл. Перезапускаем php7.1-fpm
service php7.1-fpm restart
Устанавливаем MySQL сервер и phpmyadmin
sudo apt install mysql-server-5.7
Во время установки нас попросит задать пароль для администратора mysql сервера. Выполните просьбу.
Все готово. Теперь установим менеджер работы с базами данных
sudo apt install phpmyadmin
При установке скорее всего попросит выбрать вебсервер, выберите любой, если попросит задать пароль для базы задайте.
Теперь сделаем символьную ссылку на директорию где у нас будет лежать сайт
ln -s /usr/share/phpmyadmin /var/www/html/my.site.ru
Зайти в менеджер базых можно будет по адресу
my.site.ru/phpmyadmin/
В будущем можно создать свой конффигурационный файл nginx для менеджера баз данных phpmyaadmin, и перенести его на поддомен типа mysql.my.site.ru, и поставить серверную авторизацию.
How to install PHP 7 on Ubuntu 16.04
Currently, as of January 2018, the default PHP release in the Ubuntu 16.04 repositories is PHP 7.0. We’ll show you how to install it using Ubuntu’s repository.
First, before you do anything else, you should update your Ubuntu server:
apt-get update && apt-get upgrade
Install PHP
Next, to install PHP, just run the following command:
apt-get install php
This command will install PHP 7.0, as well as some other dependencies:
- php-common
- php7.0
- php7.0-cli
- php7.0-common
- php7.0-fpm
- php7.0-json
- php7.0-opcache
- php7.0-readline
To verify if PHP is installed, run the following command:
php -v
You should get a response similar to this:
And that’s it. PHP is installed on your Ubuntu server.
Install PHP 7.0 modules
You may need some additional packages and PHP modules in order for PHP to work with your applications. You can install the most commonly needed modules with:
apt-get install php-pear php7.0-dev php7.0-zip php7.0-curl php7.0-gd php7.0-mysql php7.0-mcrypt php7.0-xml libapache2-mod-php7.0
Depending on how and what you’re going to use, you may need additional PHP modules and packages. To check all the PHP modules available in Ubuntu, run:
apt-cache search --names-only ^php
You can tweak the command to only show ^php7.0- packages etc.
If you want to use the latest PHP version, follow the next instructions instead.
How to install PHP 7.4 on Ubuntu 18.04 or 16.04
PHP 7.4 is the latest version of PHP that has lots of improvements. The instructions are pretty similar to PHP 7.3.
First, update your Ubuntu server:
apt-get update && apt-get upgrade
Add the PHP repository
To install PHP 7.4 you’ll need to use a third-party repository. We’ll use the repository by Ondřej Surý that we previously used again.
First, make sure you have the following package installed so you can add repositories:
apt-get install software-properties-common
Next, add the PHP repository from Ondřej:
add-apt-repository ppa:ondrej/php
And finally, update your package list:
apt-get update
Install PHP 7.4
After you’ve added the repository, you can install PHP 7.4 with the following command:
apt-get install php7.4
This command will install additional packages:
- libapache2-mod-php7.4
- libaprutil1-dbd-sqlite3
- php7.4-cli
- php7.4-common
- php7.4-json
- php7.4-opcache
- php7.4-readline
- …and others.
And that’s it. To check if PHP 7.4 is installed on your server, run the following command:
php -v
Install PHP 7.4 modules
You may need additional packages and modules depending on your applications. The most commonly used modules can be installed with the following command:
apt-get install php-pear php7.4-curl php7.4-dev php7.4-gd php7.4-mbstring php7.4-zip php7.4-mysql php7.4-xml
And that’s all. You can now start using PHP on your Ubuntu server.
If you want to further tweak and configure your PHP, read our instructions below.
Установка PHP 7(php-fpm) с Nginx в Centos/RedHat/Fedora
Подключаем необходимые репозитории, — стоит подключить EPEL и REMI. Документация тут:
Выполним поиск пакета:
Чтобы поставить, выполняем:
PS: Версии можно менять, например php71, php72, php73.
Если необходимо, можно поставить модули, например:
Чтобы постоянно не подключать репозиторий, можно его включить следующим образом:
Чтобы проверить версию, выполним:
Если есть необходимость внести какие-то настройки в сам php, то открываем:
Если нужно внести изменения в php-fpm, открываем:
У меня он выглядит:
Чтобы запустить php-fpm, выполните:
Чтобы проверить статус, выполните:
Можно сервис добавить в автозагрузку ОС:
Как-то так.
Добавление PPA для пакетов PHP7
Персональные архивы пакетов (PPA) представляют собой пакеты, которые обычно создаются и распространяются в репозиториях, специальных серверах-хранилищах для таких файлов. launchpad.net – сервис, созданный для поддержки и развития подобных свободных проектов. Именно там вы можете найти бета-версии, модифицированные сборки и ретроподдержки для более старых версий операционной системы.
$ sudo add-apt-repository ppa:ondrej/php
После того, как на экране высветилось описание пакета PPA, нажмите Enter.
Примечание.
Если в вашей локали установлена не UTF-8 кодировка, тогда при установке PPA может возникнуть ошибка, связанная с обработкой букв имени автора. В качестве временного решения вы можете установить language-pack-en-base, и, когда локали сгенерированы, заместить настройки локали системы в то время, как добавляется PPA:
$ sudo apt-get install -y language-pack-en-base $ sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
После того, как пакет PPA установлен, вам необходимо обновить кэш локального пакета. Это нужно для того, чтобы локальный пакет включал содержание PPA:
$ sudo apt-get update
После того, как вы получили доступ к пакетам PHP 7.0, можно заменить уже установленную версию PHP.
Install PHP 7.2 on Ubuntu
PHP 7.2 stable version has been released. Use the following set of commands to enable PPA for PHP 7.2 in your Ubuntu system and install it. You can use this version for production use also.
sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y php7.2
Now use the following command to check installed php version on your system.
php -v PHP 7.2.16-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 7 2019 20:23:29) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.16-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Установка драйверов в Suse 12 и 15Installing the drivers on Suse 12 and 15
Примечание
В приведенных ниже инструкциях замените нужной версией Suse. Если вы используете Suse Enterprise Linux 15, используйте значение SLE_15 или SLE_15_SP1.In the following instructions, replace with your version of Suse — if you are using Suse Enterprise Linux 15, it will be SLE_15 or SLE_15_SP1. Для SUSE 12 используйте SLE_12_SP4 (или выше, если применимо).For Suse 12, use SLE_12_SP4 (or above if applicable). Не все версии PHP доступны для всех версий Suse Linux. В указано, какие версии Suse имеют доступную версию PHP по умолчанию, а в — какие еще версии PHP доступны для разных версий Suse.Not all versions of PHP are available for all versions of Suse Linux — please refer to to see which versions of Suse have the default version PHP available, or to to see which other versions of PHP are available for which versions of Suse.
Примечание
Пакеты для PHP 7.4 недоступны для SUSE 12.Packages for PHP 7.4 are not available for Suse 12. Чтобы установить PHP 7.2, замените URL-адрес репозитория в команде ниже следующим URL-адресом: .To install PHP 7.2, replace the repository URL below with the following URL: .
Чтобы установить PHP 7.3, замените URL-адрес репозитория в команде ниже следующим URL-адресом: .To install PHP 7.3, replace the repository URL below with the following URL: .
Шаг 2.Step 2. Установка необходимых компонентовInstall prerequisites
Установите драйвер ODBC для Suse, следуя инструкциям в статье со сведениями об установке в Linux.Install the ODBC driver for Suse by following the instructions on the Linux installation article.
Примечание
Если вы получаете сообщение об ошибке вида , измените скрипт pecl в папке /usr/bin/pecl, удалив аргумент в последней строке.If you get an error message saying , edit the pecl script at /usr/bin/pecl and remove the switch in the last line. Этот аргумент запрещает PECL загружать ini-файлы при вызове PHP, что мешает загрузить расширение OpenSSL PECL.This switch prevents PECL from loading ini files when PHP is called, which prevents the OpenSSL extension from loading.
Установка PHP 7(php-fpm) с Nginx 1.9 в Debian 8
Недавно, вышла новая версия PHP7
В данной статье «Установка PHP 7 в Debian 8» я хотел бы уделить внимание установки PHP 7 в Debian 8
И так начнем…
Установка nginx 1.9 в Debian 8.
Для начала, добавляем ключ:
Добавляем репозиторий:
И выполняем установку:
Я ленивый иногда, по этому для этой задачи, я написал bash скрипт. Вы можете его тоже использовать:
Установка PHP 7 в Debian 8 с использованием репозитория Dotdeb.
Чтобы установить PHP 7 на Debian 8, но для начала добавляем репозиторий:
После этого, загружаем и запускаем ключ GnuPG:
Обновляем репозиторий:
Запускаем установку PHP как fpm:
Чтобы запустить PHP 7, используйте:
Запуск:
Останавливаем:
Перезапуск:
Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:
Ну это простой вариант и взят в качестве примера (что можно использовать данный репозиторий), а дальше, я опишу нормальное решение.
Установка PHP 7 в Debian 8 с исходного кода.
Для начала выполняем установку всех необходимых компонентов и все зависимости для PHP 7:
Я указал все нужные зависимости для моей сборки, вы можете дополнить их (в зависимости от своих нужд). Если не сделать это, то вы получите ошибку в процессе выполнения команды ./configure.
Переходим в директорию, скачиваем и распаковываем архив с php7, для этого выполните команду:
Вы можете использовать другую ссылку (если вышла пхп свежей версии) с официального сайта.
Переходим в папку:
Добавляем нужные модули в свою сборку и указываем параметры:
При необходимости, можно просмотреть весь список доступных модулей:
А сейчас, приступаем к компиляции и собственно к самой установки PHP 7:
Идем далее, копируем конфигурационный файл с php.ini в папку установки PHP:
Подключаем модуль Zend OPcache: /usr/local/php7/etc/conf.d
Прописываем в него:
И так, настроим сейчас PHP-FPM, для этого открываем файл:
И прописываем в него:
И для этого, создаем init.d скрипт:
Назначаем нужные права (исполнение) и добавляем скрипт в автозагрузку своей ОС:
Чтобы запустить (в данном случае перезапусить) php7-fpm выполняем:
Если используете PHP-FPM с Nginx, то нужно добавьте в блок server виртуального хоста следующий текст:
PS: Для всего этого, я написал bash скрипт, вы можете его использовать для своих нужд:
Осталось только перезапустить все службы:
Вот и все!
Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:
Шаг 2 — Установка MySQL для управления данными сайта
Теперь, когда у вас есть веб-сервер, вам нужно установить MySQL (система управления базами данных) для хранения и управления данными вашего сайта.
Для установки MySQL введите следующее:
Программное обеспечение СУБД MySQL установлено, но его настройка еще не завершена.
Для защиты установки в комплект MySQL входит скрипт, запрашивающий подтверждение небезопасных изменений параметров по умолчанию. Запустите скрипт, введя следующую команду:
Скрипт предложит настроить .
Предупреждение. Эту функцию следует активировать при наличии разумных оснований. Если она активирована, MySQL будет отклонять пароли, не соответствующие определенным критериям, и выводить сообщение об ошибке. Это может вызвать проблемы, если вы используете слабый пароль в сочетании с программным обеспечением для автоматической настройки учетных данных пользователя MySQL, например, с пакетами Ubuntu для phpMyAdmin. Оставить проверку отключенной достаточно безопасно, но для входа в базу данных всегда нужно использовать надежные уникальные пароли.
Выберите для активации или любой другой вариант, чтобы продолжить без активации этой функции.
Если вы активировали функцию проверки, скрипт также попросит вас задать уровень проверки пароля. Помните, что если вы укажете самый высокий уровень 2, система будет выводить сообщения об ошибке при попытке установки пароля, который не будет содержать цифры, буквы в верхнем и нижнем регистре и специальные символы, или будет содержать распространенные словарные слова.
Затем вам нужно будет отправить и подтвердить пароль пользователя root:
Для всех остальных вопросов нужно выбирать и нажимать в каждом диалоговом окне. В результате будут удалены некоторые анонимные пользователи и тестовая база данных, отключена возможность удаленного входа для пользователя root, и будут загружены новые правила, чтобы СУБД MySQL немедленно использовала внесенные изменения.
В системах Ubuntu с СУБД MySQL 5.7 (и более поздними версиями) для пользователя root СУБД MySQL по умолчанию для аутентификации задан плагин , а не пароль. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить доступ к пользователю внешней программе (например, phpMyAdmin).
Если использование плагина для доступа к MySQL соответствует вашим рабочим процессам, вы можете перейти к шагу 3. Если же вы предпочитаете использовать пароль при подключении к MySQL в качестве пользователя root, метод аутентификации нужно изменить с на . Для этого откройте командную строку MySQL через терминал:
Затем проверьте, какой метод аутентификации используют ваши аккаунты пользователей MySQL с помощью следующей команды:
В этом примере вы можете видеть, что root пользователь действительно использует метод аутентификации с помощью плагина . Чтобы настроить для учетной записи root аутентификацию с помощью пароля, выполните следующую команду . Обязательно измените значение на надежный пароль по вашему выбору:
Затем выполните команду , которая просит сервер перезагрузить предоставленные таблицы и ввести в действие изменения:
Проверьте методы аутентификации, применяемые для каждого из ваших пользователей, чтобы подтвердить, что root-пользователь больше не использует для аутентификации плагин :
В результатах этого примера можно увидеть, что теперь пользователь root СУБД MySQL проходит аутентификацию с помощью пароля. Убедившись в этом на своем сервере, вы можете выйти из оболочки MySQL:
Примечание. После настройки аутентификации с помощью пароля для пользователя root СУБД MySQL вы не сможете получать доступ к MySQL с помощью команды , которая использовалась до этого. Вместо этого нужно запустить следующую команду:
После ввода заданного пароля вы увидите командную строку MySQL.
Теперь СУБД настроена, и вы можете переходить к установке PHP.
Установка PHP 7.2
Установка базовых пакетов для работы с PHP 7.2:
1 | apt-get install php7.2php7.2-common php7.2-cli |
Список всех пакетов для работы с PHP 7.2:
1 |
php7.2-bcmath-Bcmath module forPHP php7.2-bz2-bzip2 module forPHP php7.2-cgi-server-side,HTML-embedded scripting language(CGI binary) php7.2-cli-command-line interpreter forthe PHP scripting language php7.2-common-documentation,examples and common module forPHP php7.2-curl-CURL module forPHP php7.2-dba-DBA module forPHP php7.2-dev-Files forPHP7.2module development php7.2-enchant-Enchant module forPHP php7.2-fpm-server-side,HTML-embedded scripting language(FPM-CGI binary) php7.2-gd-GD module forPHP php7.2-gmp-GMP module forPHP php7.2-imap-IMAP module forPHP php7.2-interbase-Interbase module forPHP php7.2-intl-Internationalisation module forPHP php7.2-json-JSON module forPHP php7.2-ldap-LDAP module forPHP php7.2-mbstring-MBSTRING module forPHP php7.2-mysql-MySQL module forPHP php7.2-odbc-ODBC module forPHP php7.2-opcache-Zend OpCache module forPHP php7.2-pgsql-PostgreSQL module forPHP php7.2-phpdbg-server-side,HTML-embedded scripting language(PHPDBG binary) php7.2-pspell-pspell module forPHP php7.2-readline-readline module forPHP php7.2-recode-recode module forPHP php7.2-snmp-SNMP module forPHP php7.2-soap-SOAP module forPHP php7.2-sodium-libsodium module forPHP php7.2-sqlite3-SQLite3 module forPHP php7.2-sybase-Sybase module forPHP php7.2-tidy-tidy module forPHP php7.2-xml-DOM,SimpleXML,WDDX,XML,and XSL module forPHP php7.2-xmlrpc-XMLRPC-EPI module forPHP php7.2-xsl-XSL module forPHP(dummy) php7.2-zip-Zip module forPHP |
Установка NGINX
Устанавливаем NGINX:
apt-get install nginx
Внесем изменение в файл nginx.conf:
vi /etc/nginx/nginx.conf
http {
…
server_names_hash_bucket_size 64;
….
}
* в данном примере мы сняли комментарий со строчки server_names_hash_bucket_size 64;* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.
Запускаем nginx:
systemctl enable nginx
systemctl start nginx
* в процессе запуска мы можем увидим ошибку — возможно, в системе работает другой веб-сервер и занимает 80 порт. Как правило, это apache. Чтобы его выключить (на данном этапе он нам не нужен) вводим команду systemctl stop apache2.
Проверим работу веб-сервера. Открываем браузер и вводим в адресной строке http://. В итоге мы должны увидеть заголовок «Welcome to nginx!»:
Если стартовая страница не загружается, проверяем состояние сервиса:
systemctl status nginx
Установка и настройка FTP-сервера
Мы настроим ProFTPd, так как он позволит использовать виртуальных пользователей с uid пользователя www-data.
Для его установки вводим следующую команду:
apt-get install proftpd
Смотрим uid пользователя www-data:
id www-data
* в Ubuntu это, как правило, 33.
Создаем виртуального пользователя:
ftpasswd —passwd —file=/etc/proftpd/ftpd.passwd —name=ftpwww —uid=33 —gid=33 —home=/var/www —shell=/usr/sbin/nologin
* где /etc/proftpd/ftpd.passwd — путь до файла, в котором хранятся пользователи; ftpwww — имя пользователя (логин); uid и gid — идентификаторы пользователя и группы системной учетной записи (www-data); /var/www — домашний каталог пользователя; /usr/sbin/nologin — оболочка, запрещающая локальный вход пользователя в систему.
Открываем основной конфигурационный файл:
vi /etc/proftpd/proftpd.conf
Снимаем комментарий или редактируем опцию:
DefaultRoot ~
* данная опция говорит о том, что корневой директорией для пользователя будет домашняя директория. Это нужно, чтобы FTP-пользователи не могли выйти за пределы дозволенного и видеть на сервере сайты друг друга.
Создаем дополнительный конфигурационный файл для proftpd:
vi /etc/proftpd/conf.d/custom.conf
Со следующим содержимым:
UseIPv6 off
IdentLookups off
PassivePorts 40900 40999
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
LoadModule mod_auth_file.c
AuthOrder mod_auth_file.c
* где 40900 — 40999 — диапазон динамических портов для пассивного режима.
Разрешаем автозапуск FTP-серверу и запускаем его:
systemctl enable proftpd
systemctl restart proftpd
Пробуем подключиться к серверу, использую любые FTP-клиенты, например, FileZilla, Total Commander или тот же браузер.
Related
-
Tutorial
В этом обучающем модуле вы создадите приложение Python с использованием микроструктуры Flask в Ubuntu 20.04. Основная часть этой статьи посвящена настройке сервера приложений Gunicorn, запуску приложения и настройке Nginx для…
-
Tutorial
Let’s Encrypt — это центр сертификации (ЦС), позволяющий легко получать и устанавливать бесплатные сертификаты TLS/SSL, что позволяет использовать на…
-
Tutorial
MariaDB — это система управления реляционными базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного набора…
-
Tutorial
Предыдущая версия данного обучающего руководства была написана Брайаном Бушероном. MariaDB — это система управления реляционными базами данных с открытым исходным кодом, которая часто…
How to Install PHP 7.2 on Ubuntu 16.04
PHP 7.2 is a stable version of PHP and has many new features, improvements, and bug fixes. You should definitely use it if you want a better, faster website/application.
Of course, as always, first update Ubuntu:
apt-get update && apt-get upgrade
Add the PHP repository
You can use a third-party repository to install the latest version of PHP. We’ll use the repository by Ondřej Surý.
First, make sure you have the following package installed so you can add repositories:
apt-get install software-properties-common
Next, add the PHP repository from Ondřej:
add-apt-repository ppa:ondrej/php
And finally, update your package list:
apt-get update
Install PHP 7.2
After you’ve added the repository, you can install PHP 7.2 with the following command:
apt-get install php7.2
This command will install additional packages:
- libapache2-mod-php7.2
- libargon2-0
- libsodium23
- libssl1.1
- php7.2-cli
- php7.2-common
- php7.2-json
- php7.2-opcache
- php7.2-readline
And that’s it. To check if PHP 7.2 is installed on your server, run the following command:
php -v
Install PHP 7.2 modules
You may need additional packages and modules depending on your applications. The most commonly used modules can be installed with the following command:
apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml
And that’s all. You can now start using PHP on your Ubuntu server.
If you want to further tweak and configure your PHP, read our instructions below.
Postfix
В качестве агента MTA мы будем использовать удобный в настройке и надежный Postfix.
Установка, настройка и запуск
Устанавливаем пакет postfix:
apt-get install postfix
Вносим некоторые изменения в настройки:
vi /etc/postfix/main.cf
myorigin = $mydomain
smtp_generic_maps = hash:/etc/postfix/generic_map
* mydomain — домен сервера; myorigin — имя домена, которое будет подставляться всем отправляемым сообщениям без явного указания оного; smtp_generic_maps указывает на карту с общими правилами пересылки.
Открываем карту пересылки:
vi /etc/postfix/generic_map
И добавляем:
@dmosk.local no-reply@dmosk.local
* данной настройкой мы будем подставлять всем отправляемым письмам без поля FROM адрес no-reply@dmosk.local.
Создаем карту:
postmap /etc/postfix/generic_map
Включаем автозапуск почтового сервера и запускаем его службу:
systemctl enable postfix
systemctl start postfix
Корректная отправка
Для того, чтобы сервер мог отправлять сообщения на внешние ящики, необходимо корректно настроить в DNS, как минимум, записи A и PTR.
Для добавления А-записи, необходимо в настройках панели управления нашим доменом создать запись типа. Ее имя и IP-адрес должны соответствовать имени и адресу нашего сервера.
Для создания PTR-записи необходимо написать письмо Интернет-провайдеру, к которому подключен наш сервер. Если наш сервер арендуется у хостинговой компании, необходимо либо написать данное письмо данной хостинговой компании, либо данная возможность может быть предоставлена в панели управления хостинговыми услугами.
Установка PHP в Ubuntu
Предполагается, что у вас уже установлен какой-нибудь PHP версии 7.x. Если нет, то давайте это исправим:
apt-get update && apt-get upgrade
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php7.2
apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml
1 |
apt-get update&&apt-get upgrade apt-get install software-properties-common add-apt-repository ppaondrejphp apt-get update apt-get install php7.2 apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml |
Теперь, например устанавливаем версию 5.6:
sudo apt install php5.6
1 | sudo apt install php5.6 |
После всех этих команд на вашей машине установлены 7.2 и 5.6 версии. Выведем список всех установленных версий в меню, которое позволит выбрать нужную версию:
sudo update-alternatives —config php
1 | sudo update-alternatives—config php |
После этого вы увидите примерно такое:
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
————————————————————
* 0 /usr/bin/php7.2 72 auto mode
1 /usr/bin/php5.6 56 manual mode
2 /usr/bin/php7.2 72 manual mode
Press to keep the current choice, or type selection number:
1 |
There are2choices forthe alternative php(providingusrbinphp). Selection Path Priority Status ———————————————————— *usrbinphp7.272auto mode 1usrbinphp5.656manual mode 2usrbinphp7.272manual mode Pressenter>tokeep the current choice*,ortype selection number |
В коде выше можно выбрать например пункт — 1 и тогда версия переключится на 5.6. Проверить это можно следующей командой:
php -v
1 | php-v |
Которая вернет примерно такое сообщение:
PHP 5.6.38+deb.sury.org+2 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
1 |
PHP5.6.38+deb.sury.org+2(cli) Copyright(c)1997-2016The PHP Group Zend Engine v2.6.0,Copyright(c)1998-2016Zend Technologies with Zend OPcache v7.0.6-dev,Copyright(c)1999-2016,by Zend Technologies |
Таким образом, теперь вы можете легко менять свои версии даже легче чем в Open Server