Много лет назад, когда еще не было Nginx, в мире интернета де-факто стандартом была связка из PHP и Apache. В те времена не было ни Amazon Web Services, Azure, Cloud Platform и прочих облачных систем. А VPS хостинг только начинал набирать популярность. Как правило, виртуальные машины стоили дорого и имели очень мало оперативной памяти. На моем первом VPS c Jail мне приходилось бороться за каждый мегабайт оперативной памяти. Даже после отключения всех неиспользуемых модулей Apache и прочей оптимизации, VPS периодически не справлялся с нагрузкой.
Сегодня я всеми путями пытаюсь отказаться от использования Apache. Но бывают ситуации, когда по той или иной причине приходится использовать Apache2. В данной записи я расскажу о установке связки из PHP7 и Apache2. Для установки свежей версии PHP7 я буду использовать репозиторий Dotdeb.
Для начала обновим локальный кеш пакетов и обновим нашу систему:
apt-get update && apt-get dist-upgrade
Выполните команду ниже для того чтобы установить Apache2:
apt-get install apache2
Для установки PHP7 для начала нам необходимо добавить репозиторий Dotdeb. Откройте файл:
nano /etc/apt/sources.list
Добавьте в конец файла две строки:
deb http://packages.dotdeb.org jessie all deb-src http://packages.dotdeb.org jessie all
Скачиваем и устанавливаем ключ:
wget https://www.dotdeb.org/dotdeb.gpg apt-key add dotdeb.gpg
Обновляем локальный кеш пакетов:
apt-get update
Список доступных пакетов для установки:
# apt-cache search php7 libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module) libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library) php-all-dev - package depending on all supported PHP development packages php7.0 - server-side, HTML-embedded scripting language (metapackage) php7.0-apcu - APC User Cache for PHP php7.0-apcu-bc - APCu Backwards Compatibility Module php7.0-bz2 - bzip2 module for PHP 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 - Common files for packages built from the PHP source php7.0-curl - CURL module for PHP php7.0-dbg - Debug symbols for PHP7.0 php7.0-dev - Files for PHP7.0 module development php7.0-enchant - Enchant module for PHP php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary) php7.0-gd - GD module for PHP php7.0-geoip - GeoIP module for PHP php7.0-gmp - GMP module for PHP php7.0-igbinary - igbinary serializer for PHP php7.0-imagick - Provides a wrapper to the ImageMagick library php7.0-imap - IMAP module for PHP php7.0-interbase - Interbase module for PHP php7.0-intl - Internationalisation module for PHP php7.0-json - JSON module for PHP php7.0-ldap - LDAP module for PHP php7.0-mcrypt - libmcrypt module for PHP php7.0-memcached - memcached extension module for PHP, uses libmemcached php7.0-mongodb - MongoDB driver for PHP php7.0-msgpack - MessagePack serializer for PHP php7.0-mysql - MySQL module for PHP php7.0-odbc - ODBC module for PHP php7.0-opcache - Zend OpCache module for PHP php7.0-pgsql - PostgreSQL module for PHP php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary) php7.0-pspell - pspell module for PHP php7.0-readline - readline module for PHP php7.0-recode - recode module for PHP php7.0-redis - PHP extension for interfacing with Redis php7.0-snmp - SNMP module for PHP php7.0-sqlite3 - SQLite3 module for PHP php7.0-ssh2 - Bindings for the libssh2 library php7.0-sybase - Sybase module for PHP php7.0-tidy - tidy module for PHP php7.0-xdebug - Xdebug Module for PHP php7.0-xmlrpc - XMLRPC-EPI module for PHP php7.0-xsl - XSL module for PHP
Запускаем установку PHP7:
apt-get install php7.0 php-pear
Перезапустим Apache2:
service apache2 restart
Файл конфигурации виртуального хоста находятся в файле:
nano /etc/apache2/sites-enabled/000-default.conf
Находим директиву DocumentRoot:
DocumentRoot /var/www/html
И в корне указанного каталога создаем файл, который выведет информацию о PHP7:
nano /var/www/html/info.php
Добавьте в файл следующие строки:
<?php phpinfo(); ?>
Открываем страницу в браузере:
http://exemple.com/info.php
Если открылась страница с конфигурацией PHP7, то вы все сделали правильно.