Как создать веб сервер на линукс

Содержание
  1. Базовая установка и настройка веб-сервера
  2. Содержание
  3. Базовая установка и настройка веб-сервера
  4. Установка
  5. Настройка Apache
  6. Персональные настройки
  7. Выключаем автозапуск apache2 и mysql
  8. Выключаем автозапуск Apache:
  9. Выключаем автозапуск MySQL:
  10. Разрешаем подключение к MySQL из Мира
  11. Локальный веб-сервер под Linux, с автоматическим поднятием хостов и переключением версий PHP
  12. Welcome
  13. Welcome
  14. 3. Конфигурация Apache-сервера
  15. Настройка FTP-сервера
  16. 1. Установка
  17. 2. Создание локальной учетной записи
  18. 3. Конфигурация
  19. 4. Создание базы данных
  20. Настройка PHP-сервера
  21. 1. Установка
  22. 2. Проверка
  23. Welcome
  24. Настройка MySQL (MariaDB)
  25. 1. Установка
  26. Настройка phpMyAdmin
  27. 1. Установка
  28. 2. Создание псевдонима
  29. 3. Подготовка базы данных
  30. 4. Конфигурация
  31. Установка и настройка WordPress на сервер Linux
  32. 1. Размещение файлов дистрибутива WP
  33. 2. Создание базы данных для WordPress
  34. 3. Конфигурация WP на сервере под Linux
  35. 4. Установка CMS WordPress

Базовая установка и настройка веб-сервера

Содержание

Решил оформить наконец своё HOW-TO на форуме в нашей вики, т.к. это правильнее и форматирование здесь удобнее. Я постарался изложить материал кратко, намеренно упустив подробности, которые не относятся напрямую к сути (вроде того, что конфиги сервера нужно править от рута). Считаем, что читатель имеет базовый уровень работы с линукс-системами.

Просьба к редакторам тоже там отписываться

Базовая установка и настройка веб-сервера

Установка

phpmyadmin — веб-интерфейс для управления БД MySQL.

Настройка Apache

Персональные настройки

Начиная с версии Ubuntu Saucy (13.10) свои настройки следует писать в /etc/apache2/conf-available, активировать настройки следует с помощью команды a2enconf.

Выключаем автозапуск apache2 и mysql

Выключаем автозапуск Apache:

Выключаем автозапуск MySQL:

т.е. должно быть так:

Разрешаем подключение к MySQL из Мира

/etc/mysql/my.cnf

Самое простое — просто закомментировать эту строку.

Кроме этого требуется добавить пользователя, который с разных мест и из разных программ может соединяться с базой, например «admin»:

© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Источник

Локальный веб-сервер под Linux, с автоматическим поднятием хостов и переключением версий PHP

Скорее всего какие-то части этой статьи уже знакомы многим хаброжителям, но в связи с покупкой нового рабочего ноутбука я решил собрать все крупинки воедино и организовать удобное средство для разработки. Мне часто приходится работать со множеством маленьких проектов, с разными версиями PHP, часто переводить старые проекты на новые версии. В далёком прошлом, когда я был пользователем Windows то использовал OpenServer. Но с переходом на Linux мне нехватало той простоты создания хостов и переключений версий которые были в нём. Поэтому пришлось сделать еще более удобное решение на Linux =)

будет запущен тот же файл но уже с версией PHP 7.2.7

Другие версии доставляются аналогичным описанным ниже способом.

Для создания еще одного сайта просто создаем в /var/www/ папку имеющую окончание .loc, внутри которой должна быть папка public_html являющаяся корнем сайта

Вот собственно и все. Как без дополнительных мучений, перезапусков, и редактирований конфигов имеем автоматическую систему для работы с сайтами.

Всё это я проверну на LinuxMint19, он на базе Ubuntu18.04, так что с ним все будет аналогично.

Для начала поставим необходимые пакеты

Postfix ставим в качестве плюшки, как простое решение(в мастере установки, всё по умолчанию выбираем) для отправки почты с локальной машины.

Так как это локальная разработка и я единственный пользователь. То мне удобней перенести папку с проектами в мою домашнюю дерикторию. Она у меня маунтится отдельным диском и мигрирует при переустановке системы. Самый простой способ это создать ссылку, тогда не нужно менять пути в настройках да и путь привычный для всех.

Скопируем папку созданную апачем в домашний каталог, создадим на ее месте ссылку, не забыв поменять пользователя на себя и обменяться группами с апачем.

Создадим папку в которой будем собирать исходники PHP для разных версий

Также нам понадобится папки для CGI скриптов

И runtime папка для этих же скриптов, с правами

И так как каталог у нас находится в оперативной памяти, добавим его создание при старте системы, для этого добавим в /etc/tmpfiles.d/fcgid.conf

У меня dnsmasq-base идет с коробки, если нет то его всегда можно доставить.

Добавим правило в его конфигурацию. Найти файл конфигурации dnsmasq.conf можно так

Либо если он как и у меня является частью NetworkManager то создать новый файл конфигурации в /etc/NetworkManager/dnsmasq.d/local.conf
Добавим в него строчку для перенаправление нашего локального домена на локальную машину.

Также нужно включить необходимые модули апача

Предварительная подготовка завершена, приступаем к сборке различных локальных версий PHP. Для каждой версии PHP проделываем следующие 4 шага. На примере 5.6.36

1. Скачиваем исходники нужной версии и распаковываем их

2. Cобираем из исходников нужную версию PHP, и помещаем ее в /opt/php-5.6.36

3. Создаем CGI для обработки этой версии в /var/www/cgi-bin/php-5.6.36.fcgi

4. Делаем файл исполняемым

5. Добавляем экшен для обработки каждой версии в /etc/apache2/mods-available/fcgid.conf

6. Добавляем правило для обработки каждой версии в /etc/apache2/sites-available/000-default.conf

Ну вот и всё. Осталось только перезапустить apache и dnsmasq и пользоваться

Источник

Welcome

В результате файл “/var/www/sites/site1/index.html” будет содержать одну html-строку:

Welcome

3. Конфигурация Apache-сервера

Конфигурационные файлы сайтов находятся в каталоге “/etc/apache2/sites-available/”. Создадим конфигурационный файл для нового виртуального хоста взяв за основу конфигурацию по умолчанию из файла “000-default.conf”

cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf

Откроем файл “site1.conf” и изменим параметр “DocumentRoot”. В качестве значения нужно указать путь к новому сайту, в нашем случае это “/var/www/sites/site1”

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

a2dissite 000-default
a2ensite site1
systemctl reload apache2

Снова переходим по ссылке “http://[ip_адрес_сервера]” и убеждаемся, что вместо стандартной страницы приветствия отображается наша новая страница.

Настройка HTTP-сервера завершена, переходим к следующему этапу.

Настройка FTP-сервера

1. Установка

Устанавливаем ftp-сервер и дополнительный пакет “db-util”, который потребуется для настройки виртуальных пользователей.

apt install vsftpd db-util

2. Создание локальной учетной записи

Сервер vsftpd позволяет очень гибко настраивать права доступа. Для решения наших задач ftp-пользователям необходимо обеспечить следующие возможности:

  • полный доступ к содержимому директории “/var/www/sites/”;
  • невозможность выхода за пределы директории “/var/www/”;
  • подключение с использованием виртуальной учетной записи;

Создадим локальную учетную запись “virtual” без возможности входа в систему, с домашней директорией “/var/www/”. Эта учетная запись будет использоваться для подключения виртуальных ftp-пользователей.

useradd -d /var/www virtual

По умолчанию, владельцем директории “/var/www” является “root”. Для того, того, чтобы ftp-пользователи могли изменять содержимое сайтов, изменим владельца каталога “/var/www/sites/”, включая вложенные папки на “virtual”.

chown -R virtual:root /var/www/sites

В результате изменения прав, пользователь “virtual” сможет просматривать содержимое каталога “/var/www/” и записывать во вложенный каталог “/var/www/sites/”

3. Конфигурация

Основная конфигурация хранится в файле “/etc/vsftpd.conf”, приводим его к следующему виду:

#Включаем виртуальных пользователей
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual

#Настраиваем права
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES

#задаем параметры запуска
listen=YES
pasv_min_port=30000
pasv_max_port=30999

4. Создание базы данных

База данных необходима для хранения виртуальных учетных записей.

Предварительно создадим в домашнем каталоге простой текстовый файл “users.txt” и запишем логины и пароли виртуальных пользователей в чередующиеся строки. Например нам нужен виртуальный пользователь с логином “ftp” и паролем “Qwe123”, тогда содержимое файла будет таким:

Создаем базу данных

db_load -T -t hash -f

Меняем стандартное содержимое PAM файла “/etc/pam.d/vsftpd” на следующие строки.

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login

Обратите внимание, что в различных дистрибутивах расположение библиотеки “pam_userdb.so” может отличаться, при необходимости путь к файлу нужно скорректировать.

Для применения изменений перезагружаем vsftpd сервер.

systemctl restart vsftpd

Настройка FTP-сервера завершена.

Данные для подключения:

  • ftp://[ip_адрес_сервера]
  • Логин: ftp
  • Пароль: Qwe123

Настройка PHP-сервера

1. Установка

На текущий момент последней стабильной версией PHP является php 7.4.5, которая отсутствует в официальных репозиториях Ubuntu. Подключим сторонний репозиторий и установим последнюю версию PHP.

apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4

2. Проверка

Для того, чтобы PHP код мог быть исполнен, файл веб страницы должен иметь расширение “.php”. Переименовываем тестовою страницу

cd /var/www/sites/site1/
mv index.html index.php

Добавляем в файл “/var/www/sites/site1/index.php” строку php-кода. В результате содержимое файла будет таким:

Welcome

Сохраняем изменения и проверяем результат в браузере.

Если вы видите результат работы функции “phpinfo()”, значит интерпретатор PHP работает корректно. Приступаем к следующему этапу.

Настройка MySQL (MariaDB)

1. Установка

Устанавливаем MariaDB и PHP-модуль для работы с MySQL, после завершения установки перезагружаем Apache

apt install mariadb-server php-mysql
systemctl restart apache2

Для проверки обновим тестовую страницу и в таблице с конфигурацией PHP и перейдем к разделу PDO. Наличие секции “PDO_mysql” говорит о корректной установке драйвера для работой с базой данных Mysql.

Для дальнейшей работы необходимо выполнить первоначальную настройку безопасности MariaDB, во время которой для пользователя “root” устанавливается пароль, запрещается удаленный вход и удаляются гостевые учетные записи.

На первом шаге необходимо ввести пароль пользователя «root» для входа в СУБД или нажать Enter, если пароль не задан. Так как после установки учетная запись «root» не имеет пароля, нажимаем “Enter”.

Обратите внимание, что в MariaDB существуют собственные учетные записи, которые не имеют отношения к учетным записям операционной системы. Речь идет о пользователе «root» в MariaDB.

Далее конфигуратор предложит задать пароль для пользователя root, нажимаем “y” для подтверждения и вводим новый пароль, в нашем случае “Qwe123”

На все последующие запросы просто нажимаем “y” до окончания настройки.

Данные для входа в MariaDB:

Настройка phpMyAdmin

1. Установка

Устанавливаем обязательное PHP-расширение mbstring.

apt install php-mbstring

В официальном репозитории размещена устаревшая версия phpMyAdmin, поэтому выполним установку в ручном режиме.

Заходим на официальный сайт проекта “https://www.phpmyadmin.net/” и скачиваем архив актуальной версии.

Копируем архив на сервер в каталог “/var/www/sites/” используя любой ftp-клиент.

Распаковываем архив, и для удобства, переименовываем извлеченную папку в “phpMyAdmin”. Для распаковки zip-архива предварительно установим утилиту “unzip”. После распаковки архив можно удалить.

apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip

Создаем папку “/var/www/sites/phpMyAdmin/tmp” для хранения временных файлов с полными доступом для всех. Если этого не сделать phpMyAdmin сообщит об отсутствии доступа в временной папке.

cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp

2. Создание псевдонима

Так как phpMyAdmin не является отдельным виртуальным хостом и находится за пределами корневой директории сайта, настроим псевдоним для возможности доступа.

Открываем файл “/etc/apache2/mods-available/alias.conf” и вставляем строку

Alias /pma “/var/www/sites/phpMyAdmin»

Перезагружаем конфигурацию Apache для применения изменений.

systemctl reload apache2

Псевдоним настроен. Сейчас мы можем входить в phpMyAdmin по ссылке “http://[ip_адрес_сервера]/pma”

3. Подготовка базы данных

Так как при первоначальной настройке MariaDB мы запретили использование учетной записи root для удаленного подключения, необходимо создать новую учетную запись с полными правами, которая будет использоваться для входа в phpMyAdmin.

Кроме того, для работы дополнительных функций phpMyAdmin необходима служебная база данных и учетная запись для доступа к ней.

Создадим учетные записи

mariadb -u root -p

GRANT ALL PRIVILEGES ON *.* TO ‘pma’@’localhost’ IDENTIFIED BY ‘Qwe123’ WITH GRANT OPTION;

GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO ‘pmaservice’@’localhost’ IDENTIFIED BY ‘Qwe123’ WITH grant option;

Обратите внимание, что имя базы данных во втором запросе заключено в обратные апострофы: “… ON `phpmyadmin`.* TO ‘pma’@’localhost’ IDENTIFIED BY …”,

В результате в MariaDB будет создано две учетные записи:

  1. Логин: pma, пароль: Qwe123
    Учетная запись имеет полные права и будет использоваться для входа в phpMyAdmin
  2. Логин: pmaservice, пароль:Qwe123
    Служебная учетная запись необходимая для работы дополнительных функций.

На следующем шаге эти учетные данные должны быть указаны в конфигурационном файле “config.inc.php”

Далее необходимо импортировать базу данных из файла “phpMyAdmin/sql/create_tables.sql”. Выполним импорт средствами phpMyAdmin.

Открываем браузер и переходим по ссылке “http://[ip_адрес _сервера]/pma”

Вводим логин “pma”, пароль “Qwe123”

Переходим на вкладку “Импорт”, нажимаем кнопку “Выберите файл” и выбираем файл ”sql/create_tables.sql” в корневой директории phpMyAdmin. Предполагается что на локальном компьютере существует папка с файлами “phpMyAdmin”, если необходимо, распакуйте архив.

Для завершения импорта нажимаем кнопку “Вперед”.

4. Конфигурация

Копируем файл конфигурации из шаблона

cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php

Открываем конфигурационный файл “/var/www/sites/phpMyAdmin/config.inc.php” и вносим следующие изменения:

  1. Задаем произвольное значение длиной 32 символа для параметра “$cfg[‘blowfish_secret’]”. Можно воспользоваться любым генератором паролей.
  2. Снимаем комментарии со всех строк раздела “phpMyAdmin configuration storage settings” и указываем для параметров “controluser” и “controlpass” логин и пароль служебной учетной записи MariaDB, созданной на предыдущем шаге. В нашем случае логин — pmaservice, пароль — Qwe123

Сохраняем изменения. Настройка завершена.

Данные для входа в phpMyadmin:

  • http://[ip_адрес_сервера]/pma/
  • Логин: pma
  • Пароль: Qwe123

Установка и настройка WordPress на сервер Linux

1. Размещение файлов дистрибутива WP

Заходим на официальный сайт “https://ru.wordpress.org/” и скачиваем архив на локальный компьютер.

Загружаем архив на сервер в каталог “/var/www/sites/” и распаковываем, файлы будут извлечены в папку “wordpress”.

Копируем содержимое папки “/var/www/sites/wordpress/” в корневую директорию сайта “/var/www/sites/site1/”

Так как копирование файлов выполнялось из консоли с root-правами еще раз изменяем владельца каталога “/var/www/sites/”, включая содержимое на virtual. Это нужно для восстановления полного доступа при подключении через ftp-клиент.

cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites

2. Создание базы данных для WordPress

Входим в PHPMyAdmin и нажимаем “Создать БД”. Указываем произвольное имя базы данных, в нашем случае “wordpress_db” и нажимаем кнопку “Создать”.

Выделяем в левой части окна созданную БД и нажимаем кнопку “Привилегии”

Далее нажимаем “Добавить учетную запись пользователя”.

В открывшемся окне вводим логин и пароль (wpservice / Qwe123), помечаем опцию “Предоставить все привилегии в базе данных wordpress_db” и нажимаем кнопку “Вперед”

На следующей странице нажимаем “Отметить все” для установки всех привилегий уровня базы данных и нажимаем “Вперед”.

3. Конфигурация WP на сервере под Linux

Переходим в корневую директорию сайта и копируем из шаблона конфигурационный файл.

cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php

Открываем файл “wp-config.php” и вводим параметры подключения к базе данных, созданной на предыдущем шаге и сохраняем изменения.

4. Установка CMS WordPress

Открываем браузер и переходим по ссылке “http://[ip_адрес_сервера]/wp-admin/install.php”

Заполняем предложенные поля и нажимаем “Установить WordPress” Имя пользователя и пароль указываем произвольные, в нашем случае логин — wpadmin, пароль — Qwe123

Эти учетные данные будут использоваться для входа в WordPress.

После завершения установки переходим по ссылке “http://[ip_адрес_сервера]/wp-login.php”, вводим учетные данные, указанные на предыдущем шаге и входим в WordPress

На главной странице сайта будет отображаться один из шаблонов WordPress

Данные для входа в WordPress:

Источник

Mac OS X Hints
Adblock
detector