Операционная система Ubuntu и её производные поставляются вместе с встроенным сервером Apache2.
Apache
Если необходимо обновить либо переустановить сервер Apache, можем воспользоваться репозиторием apt-get.
sudo apt-get update
sudo apt-get install apache2 (опционально)
sudo service apache2 restart - перезапуск сервиса.
В Ubuntu конечный файл настройки (apache2.conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf.
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек используем соответствующие команды a2enconf или a2disconf. Пример подключения файла со своими настройками:
sudo a2enconf
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды a2ensite или a2dissite. Пример подключения виртуального хоста:
sudo a2ensite
Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
AddDefaultCharset UTF-8
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf.
Настройки виртуального хоста:
#Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All
Назовем файл настройки именем хоста erud.server1.conf и сохраним.
После создания файла настроек необходимо дописать в /etc/hosts имя вашего хоста: 127.0.0.1 host1.server1 [34]
Для включения созданного виртуального хоста воспользуемся утилитой a2ensite:
sudo a2ensite host1.server1
Отключается хост аналогично утилитой a2dissite:
sudo a2dissite host1.server1
MySQL
По умолчанию в репозиторий пакетов APT в Ubuntu 18.04 включена только последняя версия MySQL. На момент написания этой диссертации это MySQL 5.7 [35].
Установка пакета MySQL осуществляется с помощью следующей команды:
sudo apt install mysql-server
Эта команда установит MySQL, но при этом не предлагается задавать пароль или вносить какие-либо правки в конфигурацию.
Начиная с 2010 года в MySQL 5.5 движок хранения данных InnoDB является основным движком в MySQL, и используется по умолчанию. Отличительными особенностями этого движка являются:
– высокая производительность;
– автоматическое восстановление данных после сбоя;
– автоинкрементируемые значения;
– данные сохраняются в одном или нескольких файлах.
InnoDB - это транзакционная система хранения данных, где даже простые запросы вставки и обновления являются транзакциями. Это значит, что при запросах вставки и обновления данных происходит эксклюзивная блокировка записей: пока не будет выполнен транзакционный запрос для первого клиента, для последующих клиентов исключается возможность других запросов (как чтения, так и записи) [36].
Существует несколько вариантов блокировки: табличная и построчная. При табличной блокировке блокируется и становится недоступной вся таблица. При построчной - только строка. InnoDB поддерживает построчную блокировку [37].
Может возникать проблема конкурентности, или взаимоисключающие транзакции. Для решения таких проблемм, в InnoDB имеется специальный механизм увеличения конкуретности - Myltiversion Concurency Control, задача которого повысить изолированность запросов. Всего существует 4 уровня изолированности:
READ UNCOMMITED
READ COMMITED
REPEATABLE READ
SERIALIZABLE
По умолчанию используется REPEATABLE READ, который блокирует возможность простого чтения, чернового чтения и неповторяющегося чтения. Однако не блокируется возможность фантомного чтения, которое может возникать в результате не правильно настроенный транзакций.
PHP
Язык программирования PHP поставляется вместе с операционной системой Ubuntu и её производными. Для обновления PHP можно воспользоваться следующей командой.
apt-get install php
Кроме того, в процессе разработки нам потребуются некоторые модули для PHP, которые необходимо установить отдельно. Наличие этих модулей обязательно, так как без них не установится Laravel.
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
Composer
Для установки менеджера зависимостей для PHP - Composer, можно воспользоваться следующими коммандами:
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
PHPMyAdmin
Кроме сервера базы данных MySQL, нам потребуется система управления базой данных phpMyAdmin.
Для установки обновим наш локальный индекс пакетов, а затем используем систему управления пакетами apt для загрузки и установки необходимых файлов:
sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext
В процессе установки будет задано несколько вопросов по конфигурации.
При выборе сервера, выбераем Apache2.
На вопрос, хотим ли мы использовать dbconfig-common для настройки базы данных отвечаем утвердительно.
Далее будет запрошен пароль администратора базы данных и повтор пароля.
В процессе установки в директорию /etc/apache2/conf-enabled/ будет добавлен файл конфигурации phpMyAdmin для Apache2.
Единственное, что мы должны сделать вручную, так это включить расширения PHP mcrypt и mbstring следующими командами:
sudo phpenmod mcrypt
sudo phpenmod mbstring
Далее перезапустим Apache для применения изменений:
sudo systemctl restart apache2
Теперь мы можем осуществить доступ к веб-интерфейсу phpMyAdmin, введя имя домена или публичного статического IP адреса сервера и строки /phpmyadmin:
https://localhost/phpmyadmin