Создание и настройка web сервера arch linux
После переезда с Ubuntu на Arch появилась необходимость настроить данную связку, однако, в отличие от Ubuntu, под Arch подобного мануала всё-в-одном не нашлось. Собрав идеи с разных руководств, включая те, что были написаны под Ubuntu, и решил написать на хабр такой цельный гайд.
Сразу хочу сказать, что это базовая установка, без виртуальных хостов в количестве n-штук, просто настройка для локальной разработки.
XAMPP мне не подошёл просто по идейным соображениям.
Итак, приступим.
Предполагается, что yaourt у вас уже установлен и вы хотя бы немного умеете им пользоваться, а также настроено выполнение root-команд от своего пользователя (ставим пакет sudo, потом раскомментируем строчку "%wheel ALL=(ALL) ALL" в файле /etc/sudoers и релогинимся; при выполнении команд с sudo пароль вводим от своего пользователя, а не от root'a).
Также перед непосредственно установкой, убедитесь, что у вас подключены extra- и community-репозитории.
Для этого:
sudo nano /etc/pacman.conf
И проверяем, чтобы секции этих репозиториев выглядели аналогично.
И синхронизируем списки пакетов.
Вначале поставим Apache и PHP и, соответственно, немного поправим конфиги.
sudo pacman -S apache php-apache
yaourt mod-rpaf
- Меняем «Listen 80» на «Listen 81», поскольку 80 порт будет слушать nginx.
- В секцию LoadModule добавляем 2 строчки.
LoadModule rpaf_module modules/mod_rpaf-2.0.so
LoadModule php5_module modules/libphp5.so - Можете поменять электропочту в строке «ServerAdmin», хотя это опциональный пункт. Я обычно по привычке меняю.
- Чуть ниже идёт закомментированная строчка «ServerName» — раскомментируем и заменяем на «ServerName 127.0.0.1:81»
- Проверяем, чтобы в секции "<IfModule mime_module>" не была закомментирована строчка «TypesConfig conf/mime.types»
- Также расскомментируем строчку «MIMEMagicFile conf/magic»
- В секции "<IfModule dir_module>" заменяем приводим строчку с параметром «DirectoryIndex» к такому виду:
DirectoryIndex index.php - И наконец в конце файла дописываем.
Include conf/extra/php5_module.conf
RPAFenable On
RPAFproxy_ips 127.0.0.1 10.0.0.1
RPAFsethostname On
RPAFheader X-Forwarded-For
Сохраняем файл (Ctrl + O) и выходим (Ctrl + X).
Теперь нам осталось второй конфигурационный файл Апача чуть-чуть изменить.
Меняем «Listen 80» на «Listen 81».
На этом с настройкой Apache мы закончили. Переходим к PHP.
sudo nano /etc/php/php.ini
Сохраняем файл (Ctrl + O) и выходим (Ctrl + X).
Далее для проверки создадим файл index.php. (Здесь вводим пароль не от своего пользователя, а от root'a.)
su -c "echo '<?php phpinfo(); ?>' > /srv/http/index.php"
Переходим к установке и настройке NGINX
Установим последнюю (dev-ветка) версию. Если же хотите стабильную — то просто вместо команды ниже напишите „sudo pacman -S nginx“.
И приведём вид конфига к следующему виду.
sudo nano /etc/nginx/conf/nginx.conf
И перезапускаем nginx.
sudo rc.d restart nginx
И последний этап — установка PerconaDB
Как известно, сама по себе MySQL далеко не самая шустрая БД, так что я обычно устанавливаю форк — PerconaDB. Поподробнее о фичах можете почитать на официальном сайте, от себя разве что скажу, что обратная совместимость с MySQL полная, так что неожиданных проблем не будет.
Эта инструкция расскажет вам о том, как установить одну из самых часто используемых связок в веб-разработке: LAMP (Linux, Apache, MySQL/MariaDB и PHP/PhpMyAdmin). Кроме подробной пошаговой инструкции по настройке сервера вам также будут представлены несколько замечательных возможностей (быстрых и грязных Bash скриптов), которые отсутствуют в системе Arch Linux, но которые могут облегчить работу по созданию множества виртуальных хостов, генерации SSL сертификатов и ключей, необходимых для безопасных транзакций HTTS.
Шаг 1: Установка базового программного обеспечения LAMP
1. Обновим нашу систему с помощью утилиты pacman.
2. Когда процесс обновления завершиться, установим LAMP по частям, начнём с установки веб-сервера Apache Web Server и запустим/проверим демон каждого серверного процесса.
3. Установим динамический скриптовый язык на стороне сервера PHP и его модуль для Apache.
4. Последним шагом установим систему управления базами данных MySQL, выберите вариант 1 (MariaDB) – форк от сообщества.
Запустите и проверьте статус демона.
Не запутайтесь. Мы устанавливаем MariaDB, но она настолько совместима с MySQL, что служба запускается аналогичной командой. Аналогичной же командой производится подключение к БД. Вы можете установить оригинальную MySQL из AUR – если это кому-то интересно, то пишите в комментариях и материал будет добавлен.
Теперь мы имеем установленное базовое программное обеспечение LAMP с настройками по умолчанию.
Шаг 2: Обезопасим СУБД MySQL
5. Следующим шагом обезопасим СУБД MySQL настроив пароль для аккаунта root, удалив анонимные пользовательские аккаунты, удалив тестовую базу данных и отключив удалённый вход для пользователя root (когда попросят ввести текущий пароль, то просто нажмите клавишу [Enter] затем введите два раза новый пароль, на все вопросы выбирайте ответы по умолчанию, т.е. Да).
6. Проверьте подключение к базе данных MySQL следующей командой, для выхода наберите quit или exit.
Шаг 3: Модификация главного конфигурационного файла Apache
Для начала откройте конфигурационный файл Apache вашим любимым текстовым редактором.
И в низ этого файла добавьте следующие две строки.
После того, как Apache был проинструктирован этими двумя директивами, создайте необходимые системные директории следующими командами.
Путь sites-available содержит файлы настроек всех виртуальных хостов, которые не активированы на Apache, но следующий скрипт Bash будет использовать эту директорию для связи и задействования веб-сайтов, которые там расположены.
Шаг 4: Создание команд Apache a2eniste и a2diste
9. Теперь время создать скрипты Apache a2ensite и a2dissite, которые будут выполнять команды по включению и отключению файлов настроек виртуальных хостов. Наберите команду cd для возвращения в вашу домашнюю директорию и создайте a2eniste и a2dissite используя ваш любимый редактор.
Добавьте следующие содержимое в этот файл.
Теперь создайте файл баш скрипта a2dissite.
Добавьте следующее содержание.
После того, как файлы были созданы, назначьте им права выполнения и скопируйте их в директорию для исполнимых файлов, чтобы они были доступны во всей системе.
10. Установка ServerName для подавления предупреждения
Откройте главный конфигурационный файл текстовым редактором:
Внутри, в конце файла добавьте директиву ServerName, указывающую на ваше основное доменное имя. Если у вас нет связанного с вашим сервером доменного имени, вы можете использовать внешний IP сервера:
Если вы забыли внешний IP сервера, то проверить его можно так:
Для локального веб-сервера можно сделать следующую запись:
Когда закончите, сохраните и закройте файл.
Для того, чтобы изменения вступили в силу, перезапустите Apache:
Шаг 5: Создание виртуальных хостов в Apache
Использование путей sites-available и sites-enable, здорово упрощает работу по включению и отключению веб-сайтов и также сохраняет конфигурационные файлы всех веб-сайтов в независимости от того, активированы они или нет.
Здесь добавьте следующие директивы Apache.
Шаг 6: Включение SSL с виртуальным хостингом на LAMP (опционально)
Этот шаг можно пропустить. На локальном сервере (localhost) этот шаг рекомендуется пропустить.
Но для упрощения, мы собираемся создать новый модульный файл для SSL в директории mods-enabled, главный конфигурационный файл Apache оставить нетронутым. Создайте следующий файл для модуля SSL и добавьте следующее содержимое.
15. Теперь создайте файл виртуального хоста, который указывает на то же самое имя localhost, но использует в это же время конфигурационный файл сервера SSL и слега измените его имя на то, которое бы напоминало вам, что он здесь для localhost с SSL.
Добавьте следующее содержимое в этот файл.
Кроме директив Port и ServerName, другие важные директивы это указание на файл сертификата SSL и файл ключей SSL, которые ещё не созданы, поэтому не перезапускайте веб-сервер Apache или вы получите ошибки.
16. Для создания требуемых файлов сертификата SSL установите пакет OpenSSL набрав нижеприведённую команду.
Добавьте в этот файл следующий контент, сохраните его и сделайте исполнимым.
Если вы хотите, чтобы этот скрипт был доступен во всей системе по короткой команде, то сделайте так.
18. Теперь сгенерируйте ваш сертификат и ключи запустив этот скрипт. Предоставьте ваши SSL опции и не забудьте чтобы имя сертификата и общее имя соответствовали вашему официальному имени домена (FQDN).
После того, как сертификат был создан, не забудьте изменить ваши настройки виртуального хоста для SSL: путь до сертификата и ключа, чтобы они соответствовали имени этого сертификата.
Для соответствия вышеприведённым настройкам, переименуем файлы сертификатов:
19. Последний шаг – это активация нового виртуального хоста SSL и перезапуск сервера, чтобы изменения вступили в силу.
Шаг 7: Включение PHP 7 на Apache
20. По умолчанию сервер Apache в Arch Linux обслуживает только содержимое статичных HTML файлов без поддержки динамических скриптовых языков. Для активации PHP начните с открытия главного конфигурационного файла Apache, найдите и закомментируйте следующую строку LoadModule (php-apache не работает с mod_mpm_event в Arch Linux).
Для поиска используйте /.
Найдите и раскомментируйте строку:
Добавьте в точности следующий контент (вы должны использовать mod_mpm_prefork).
Чтобы подключить PHP к Apache создайте символьную ссылку:
Вот и оно! Если ваш результат похож на картинку выше, значит PHP работает на Apache и теперь вы можете заниматься разработкой веб-приложений или использовать готовые решения вроде WordPress.
Шаг 8: Установка и настройка PhpMyAdmin
23. Если вы не мастер по командной строке MySQL и хотите простой удалённый доступ к СУБД MySQL через веб-интерфейс, тогда вам нужен установленный пакет phpMyAdmin на ваш Arch.
24. После того, как пакеты были установлены вам нужно включить некоторые расширения PHP (mysqli.so) и вы также можете включить другие модули, которые необходимы для будущих платформ CMS, к примеру openssl.so, imap.so или iconv.so и т.д..
Найдите и раскомментируйте следующие расширения.
В этом же файле найдите строку
если она закоментирована, то раскоментируйте её, чтобы получилось
28. Включение дополнительных возможностей phpMyAdmin. Это необязательно, но для получения дополнительной функциональности и отсутствия предупреждений, добавьте в файл /etc/webapps/phpmyadmin/config.inc.php строку
И импортируйте файл /usr/share/webapps/phpMyAdmin/sql/create_tables.sql.
Шаг 9: Включение LAMP при загрузке
29. Если вы хотите, чтобы стек LAMP загружался автоматически после перезагрузки системы, то выполните следующую команду.
Здесь были описаны главные конфигурационные настройки LAMP, которые нужны для превращения вашей системы на Arch Linux в простую, но мощную и крепкую веб-платформу с самым последним серверным программным обеспечением для маленький некритичных окружений. Но для использования в рабочем окружении вам нужно продолжить изучение опций и особенностей обслуживания веб-серверов, уделять особое внимание обновлению пакетов и делать регулярное резервное копирование образов для быстрого восстановления системы в случае аварий.
В данной статье я расскажу как происходит базовая установка и настройка Arch Linux в качестве сервера.
Загрузка ISO образа и запись диска
Загрузить ISO образ можно с официального сайта Arch Linux
После загрузки образа, запишите его на диск, любым удобным для вас способом.
Также можно загрузить образ на флешку.
После записи диска/флешки, вставьте его и дождитесь загрузки диска:
Окно загрузки Arch Linux
В данном окне выберите Boot Arch Linux (x86_64)
Подключение будущего сервера к интернету
Для начала установки нужно убедиться, что вы подключены к интернету.
Проще всего проверить это выполнив команду ping:
Создание и монтирование разделов жесткого диска
В моем случае у меня был диск на 80гб:
Создадим / (корневой) раздел, размером 76гб:
Создадим swap раздел (4гб):
Создадим файловую систему на корневом / разделе. Для этого отформатируем его в файловую систему ext4:
Отформатируем раздел /dev/sda2 , для создания swap:
Подключим swap:
Примонтируем корневой раздел (/dev/sda1) в /mnt:
Установка базовой системы
Перед установкой вы можете изменить файл /etc/pacman.d/mirrorlist , для указания предпочтительных серверов обновлений:
Также копия этого файла будет установлена в вашу систему.
Далее, установим базовую систему с помощью pacstrap. Если вы собираетесь компилировать ПО из AUR, также установите группу пакетов base-devel.
Генерация fstab
Сгенерируем файл fstab с UUID в качестве имен устройств:
Проверим правильность сгенерированного fstab:
Войдем (chroot) в свежеустановленную, но не настроенную систему:
Настройка интернет соединения
Для начала узнаем имя сетевой карты сервера:
В нашем случае это enp0s3. Попытаемся получить IP автоматически, используя DHCP:
Установка языка, часового пояса и прочих настроек
В этом шаге зададим язык системы, время, дату и часовой пояс.
Для начала откроем файл /etc/locale.gen:
После чего сгенерируем выбранные локали:
Укажем язык по умолчанию:
Для русской локали следует заменить en_US.UTF-8 на ru_RU.UTF-8
Далее укажем часовой пояс, но перед этим найдем наш часовой пояс (в статье будет использован часовой пояс America/New_York):
Например, для России и московского времени это будет часовой пояс Europe и подпояс Moscow.
Создадим ссылку на выбранный часовой пояс:
Настроим системные часы:
Установка репозитория Arch Linux
Настроим репозиторий Arch Linux, для этого откроем файл /etc/pacman.conf
Включим репозиторий multilib, он нужен, если вы на 64-битной версии захотите запустить 32-битные приложения. Для включения репозитория нужно раскомментировать строки:
Добавим неофициальный репозиторий:
Сохраним изменения и обновим репозиторий Arch Linux:
Настройка имени сервера (hostname)
Запишем нужное имя сервера в файл /etc/hostname:
Например:
Замените archserver на нужное вам имя.
Проверим установленное имя:
Создание пользователя и выдача sudo привилегий
Теперь нам нужно создать пользователя. Этот пользователь должен будет подключаться к серверу, дадим ему sudo привелегии, для выполнения задач от имени администратора:
Например:
Далее установим sudo и bash-completion:
Откроем файл /etc/sudoers
найдем и раскомментируем следующую строку:
Указание пароля для root пользователя
Укажем пароль для root пользователя:
И введем новый пароль 2 раза
Установка SSH сервера
Установим SSH сервер:
Добавим его в автозагрузку:
Установка и настройка загрузчика GRUB
Установим пакеты grub и os-prober:
Установим grub на жесткий диск:
Создадим файл конфигурации GRUB:
Выход из системы(chroot) и отмонтирование файловой системы
Выйдем из chroot сессии:
Отмонтируем файловую систему:
Перезапустим Arch Linux:
Подключение по SSH
Теперь мы можем подключиться к нашему серверу по SSH:
Шаг 1. Обновите систему Arch Linux / Manjaro
Начнем установку с обновления системы:
После обновления системы выполните установку веб-сервера Apache:
Установить имя сервера:
После установки запустите веб-сервер Apache:
Подтвердим статус услуги:
Шаг 3: Установите PHP в Arch Linux / Manjaro Linux
Выполните следующие команды, чтобы установить PHP и базовые расширения в Arch Linux / Manjaro:
Раскомментируйте следующие строки в /etc/php/php.ini для расширений MySQL / MariaDB:
Шаг 4: Установите сервер базы данных MariaDB
Далее идет установка сервера базы данных MariaDB на Arch Linux / Manjaro:
Инициализируйте сервер базы данных, используя следующие команды:
Запустите и включите службу MariaDB:
Защитите свой сервер базы данных:
Откройте оболочку MySQL от имени пользователя root:
Создайте базу данных для WordPress, пользователя и предоставьте права:
Не забудьте изменить имя пользователя и базы данных WordPress соответственно.
Шаг 5: Загрузите WordPress в Arch Linux / Manjaro
Загрузите последнюю версию WordPress:
Распакуйте скачанный файл:
Создайте файл конфигурации:
Измените файл и предоставьте сведения о подключении к базе данных:
Установите права доступа к корневому веб-каталогу:
Измените файл VirtualHost, чтобы он выглядел, как показано ниже:
Поместите это в конец списка Включить:
Шаг 6. Настройте WordPress из веб-консоли
Введите необходимую информацию и нажмите кнопку «Установить WordPress» . Если все пойдет хорошо, вы должны получить страницу входа.
Нажмите «Войти» и укажите имя пользователя и пароль.
При входе в систему вы должны попасть на панель администратора WordPress.
Заключение
Мы рассмотрели, как настроить WordPress и настроили в Arch Linux все необходимое для запуска и размещения сайта WordPress. Теперь вы можете настроить WordPress и добавить любой плагин, который хотите, но будьте осторожны с количеством подключаемых плагинов, которые вы активируете, поскольку они могут серьезно повлиять на ваш сайт.
Читайте также: