Локальный веб-сервер под 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 и пользоваться
Как установить веб-сервер (Apache, PHP, MySQL, phpMyAdmin) на Linux Mint, Ubuntu и Debian
Если вы веб-мастер, или программист на PHP, или вам просто нужно запустить веб-сайт на вашем компьютере, то вы можете это сделать с помощью веб-сервера. На Linux веб-сервер (Apache), а также сопутствующие компоненты (PHP, MySQL, phpMyAdmin) устанавливаются буквально в несколько команд.
В этой инструкции будет показано, как установить веб-сервер для сайтов на Linux Mint, Ubuntu и Debian.
Установка Apache, PHP, MySQL, phpMyAdmin на Linux Mint, Ubuntu и Debian
Большинство операций мы будет делать в командной строке – терминале Linux.
Откройте терминал и выполните в нём следующие две команды:
Ответьте «Нет» на запрос о настройки с dbconfig-common:

Для перехода между пунктами используйте клавишу Tab, а для нажатия Enter.
Выберите «apache2».

Для выбора пунктов используйте клавишу Пробел, для перехода между пунктами используйте клавишу Tab, а для нажатия Enter.
Вот и всё! Веб-сервер (связка Apache, PHP, MySQL, phpMyAdmin) установлен и готов к работе. Откройте в браузере ссылку http://localhost/
Вы увидите стандартную страницу Apache:

А phpMyAdmin доступен по ссылке http://localhost/phpmyadmin/

Чтобы веб-сервер запускался вместе с каждым включением компьютера, выполните команду:
Как поменять URL адрес phpMyAdmin. Как включить и отключить phpMyAdmin
Если при установке phpMyAdmin вы выбрали не настраивать его для использованием с веб-сервером Apache, то для включения phpMyAdmin используйте команду:
Чтобы изменения вступили в силу, перезагрузите веб-сервер:
Чтобы отключить phpMyAdmin, используйте команду:
Чтобы изменения вступили в силу, перезагрузите веб-сервер:
В файле /etc/phpmyadmin/apache.conf есть важная строка:
Суть её в том, что URL адресу /phpmyadmin (например, http://localhost/phpmyadmin) начинает соответствовать папка /usr/share/phpmyadmin. То есть файлы (скрипты) phpMyAdmin физически расположены в /usr/share/phpmyadmin, а не в директории веб-сервера (например, /var/www/html/).
Подробности о директиве Alias вы можете почитать в статье «Модуль Apache mod_alias».
Многие автоматические сканеры «скрытых» файлов и папок веб-сервера и сайтов обязательно проверяют директории «phpmyadmin», «pma» и другие подобные. Вы можете хорошо спрятать ваш phpMyAdmin изменив Alias. Например:
Настройка phpMyAdmin
По умолчанию phpMyAdmin не позволяет входить без пароля. Если вы не установили пароль для СУБД MySQL, то у вас на выбор две опции:
Рекомендуется задать пароль для базы данных. Для изменения пароля можно воспользоваться скриптом:
Если вам нужно подробное описание и перевод всех шагов, то смотрите его в этой статье.
Если вы хотите разрешить входить в phpMyAdmin без пароля, то откройте файл
Найдите вторую (их там две) строку
и раскомментируйте её (уберите два слеша из начала строки), чтобы получилось:

Где в веб-сервере Apache находятся сайты?
По умолчанию корневой папкой для веб-документов является /var/www/html. В /var/www вы можете делать ваши собственные виртуальные хосты.
Папка /var/www/html и все файлы внутри неё принадлежат пользователю рут.
Чтобы вы могли изменять, добавлять, удалять файлы в этой папке, вам нужно использовать sudo. Например, следующей командой вы откроете файловый менеджер для управления содержимым папки.
Все другие программы, которые вносят изменения в /var/www/html, также должны быть запущенными с sudo
На локальном сервере для упрощения использования вы можете сделать себя владельцем этой папки:
Теперь вам и запущенным от вашего имени программам не нужны привилегии суперпользователя для работы с содержимым этой директории:
Индексные файлы Apache
Если пользователь запрашивает у веб-сервера не файл, и директорию, то сервер ищет в ней файлы index.html, index.php, index.htm и т.п. Если эти файлы есть в этой директории, то показывается их содержимое. Эти файлы называются индексными. Если в директории сразу два или более таких файлов, то показывается один из них в соответствии с установленным приоритетом.
Посмотреть, какие файлы для вашего сервера являются индексными и в каком порядке выстроен их приоритет вы можете в файле
Там вы увидите что-то вроде:
Обычно пользователи хотят переместить индексный файл PHP (index.php) в первую позицию после DirectoryIndex, чтобы получилось примерно так:
После внесения изменений, сохраните и закройте файл, перезапустите веб-сервер.
Заключение
В этой инструкции было показано, как установить веб-сервер Apache на свой компьютер с Linux Mint. По своей функциональность этот сервер не отличается от возможностей хостингов. Вы можете на нём тестировать свои сайты, использовать при изучении PHP, установить WordPress и т.д. Более того, этот сервер можно сделать доступным для локальной или даже глобальной сети.
Локальный веб сервер на линукс
Как установить локальный сервер на linux
Хаюшки! В данной статье рассмотрена установка и настройка локального веб сервера со связкой apache, php, mysql в операционной системе linux. Погнали!
Если вы веб программист то наверняка знаете такие программы как denver или open server. Они по сути создают на ПК локальный сервер и позволяют гибко им управлять. В linux к сожалению подобных программ нет и здесь требуется немного другой подход к развертыванию локального сервера.
Для начала вам необходимо скачать пакеты XAMPP для linux.
По итогу скачается подобный файл xampp-linux-x64-7.2.29-1-installer.run который нужно сделать исполняемым и запустить! Открываем консоль в папке с данным файлом. И выполняем команду:
Данная команда сделаем файл исполняемым. И затем запустим под root правами.
Далее откроются окна установки пройдя которые по данному пути ‘/opt/lampp’ будут установлены все файлы локального сервера.
Для проверки можно запустить локальный сервер выполнив в консоли команду:
и затем открыть в браузере следующий адрес ‘http://localhost/’. Перейдя по такому адресу ‘http://localhost/phpmyadmin/’ откроется панель phpmyadmin для работы с базами данных Mysql.
Чтобы остановить локальный сервер достаточно выполнить команду.
Для перезапуска используется команда restart.
Данная команда сначала останавливает локальный сервер а затем запускает.
Идем далее. Рассмотрим как разместить сайт на нашем локальном сервере.
Переходим в папку ‘htdocs’, она находится по такому пути ‘/opt/lampp/htdocs’. В данной директории размещаются локальные хосты сервера. Если вы работали с open server то эта альтернатива папке ‘domains’.
Если директория htdocs не пустая, то все от туда удаляем и создаем новую папку ‘newdomain’ это будет наш локальный домен сайта. В папке создадим файл index.php в который просто пропишем.
Данный код выведет в консоль информацию о конфигурациях php.
Затем необходимо добавить наш новый домен (newdomain) в конфигурации сервера. Находим и открываем файл хостов ‘hosts’ (/etc/hosts).
Для начала можно все из него удалить и прописать такую вот строку.
С этим разобрались! Сохраняем изменения в файле hosts и переходим к файлу httpd-vhosts.conf (/opt/lampp/etc/extra/httpd-vhosts.conf).
В нем также все удаляем и прописываем следующее.
Здесь нас интересуют строки:
Остальные строки можно всегда оставлять как есть. Еще обратите внимание ‘127.0.0.1:80’ что мы подключаемся по 80 порту http.
Сохранив изменения можно запускать локальный сервер.
После запуска, в адресной строке браузера вводим адрес нашего локального хоста ‘http://newdomain’ и вуаля. Сайт запущен!
Результатом будет вывод на странице конфигураций php.
Это конечно все хорошо но что если мы к примеру хотим запустить сайт под https? Рассмотрим как это можно сделать!
Для закрепления материала создадим еще один сайт.
В папке htdocs создаем директорию ‘site’ в ней файл index.php
Обновляем файл ‘hosts’
Обновляем файл ‘httpd-vhosts.conf’
Обратите внимание что для хоста ‘site’ мы прописали две конфигурации для http ‘127.0.0.1:80’ и https ‘127.0.0.1:443’.
После сохранения изменений перезапускаем сервер.
И пробуем перейти на сайт ‘https://site/’ при первом переходе у вас может вылезти предупреждение о небезопасности соединения, игнорируем его и переходим.
В результате сайт будет работать под https. В некоторых браузерах в частности google chrome рядом с адресной строкой может отображаться что соединение не защищено.
На это можно не обращать особого внимания так как основные технологии которые работают только под https будут работать и этого вполне достаточно для тестирования.
Вот все что я вам хотел рассказать про работу с локальным сервером (apache + php + mysql) в linux. В принципе этих знаний уже достаточно для работы веб программисту.
Напоследок хочу дать небольшой бонус по автоматизированному запуску сайтов на локальном сервере. Согласитесь что так добавлять новые сайты на локальный сервер не очень удобно, необходимо как минимум внести изменения в два файла hosts и httpd-vhosts.conf. В качестве решения этой проблемы мной был разработан скрипт на Python для автоматического запуска.
Файл web-server.py и его содержимое:
Кто разбирается в Python для тех не составит особого труда разобраться что делает данный код. При запуске данного файла перебираются все папки в директории htdocs при этом данные в ‘hosts’ и ‘httpd-vhosts.conf’ обновляются, локальный сервер перезапускается.
Для большего удобства файл можно сделать исполняемым.
и разместить в ‘/usr/bin’. В результате этих действий вы сможете запускать и перезапускать локальный сервер простой командой в консоли.
В результате вам больше не придется лазать в файлы ‘hosts’ и ‘httpd-vhosts.conf’. И заметьте что каждый сайт на локальном хосте будет доступен под http и https.
На этом у меня все. Надеюсь данная статья оказалась для вас интересной и полезной! Не забывайте подписываться в группу Вконтакте и переходите на мой канал Youtube.
Желаю вам успехов и удачи! Пока.
Оцените статью:
Статьи
Комментарии
Внимание. Все комментарии проходят модерацию перед публикацией!
В данном разделе пока нет комментариев!
Запись экрана
Данное расширение позволяет записывать экран и выводит видео в формате webm
Как создать Linux сервер своими руками и что для этого нужно
Чтобы создать терминальный, файловый (FTP) или почтовый сервер на Linux, надо уметь работать в этой операционной системе. Иначе разобраться будет сложно. ОС не нужен мощный компьютер. Потому что она не расходует лишние ресурсы на графическое оформление. Дистрибутивы Линукса можно развернуть даже на старом ПК. Поэтому для создания различных серверов часто используют Linux или Ubuntu Server.
Об этом написано много различной литературы. Некоторые книги о Линуксе насчитывают тысячу страниц. Работать придётся через терминал и все команды вводить вручную. Но всё же вы сможете сделать небольшой Linux-сервер своими руками, который будет включать файловое хранилище, Web-сервисы и почтовый протокол.
Установка и настройка Ubuntu Server
Ubuntu Server создана на базе операционной системы Linux. Для её работы не нужен современный процессор, хорошая видеокарта или большой объём оперативной памяти. С Линукс можно развернуть сервер даже на старом ноутбуке. И в нём будут все нужные компоненты: почта, FTP, Web.
Скачать образ диска с Linux можно с сайта Ubuntu.ru. Выбирайте любую версию с Server (не Desktop!). Загрузка будет проходить через Torrent-клиент. Этот образ надо записать на болванку или флешку (с помощью LiveUSB). Также можно воспользоваться виртуальным приводом.
У Ubuntu упрощённый интерфейс. В нём нет никаких графических излишеств. Эта ОС прекрасно подходит, чтобы сделать Linux-сервер своими руками. С ней ресурсы компьютера будут использоваться для нужд домена. Ведь ей для работы нужно совсем немного.
Её установка проходит так:
Указываем имя пользователя в Ubuntu
Вводим пароль учетной записи
Вот список того, что необходимо для сервера Linux и его полноценной работы:
Далее указано то, что устанавливать необязательно. Выбор дистрибутивов опционален и зависит от того, что вы хотите в итоге получить.
Выберите то, что вам нужно, и подтвердите установку. При первом запуске надо будет ввести логин администратора и пароль. Откроется консоль. Она похожа на командную строку Windows или интерфейс операционной системы MS DOS.
Изначально вам надо будет проверить наличие обновлений. Введите команду «Sudo apt-get update» или «Sudo apt-get upgrade» без кавычек. После апдейта можно заняться настройкой всех компонентов серверов: FTP, почтового, Веб.
Для Ubuntu существует псевдографический интерфейс — Midnight Commander. Это аналог оболочки Norton Commander, которая разработана для системы MS DOS. С таким интерфейсом легче работать — всё нагляднее, чем в консоли.
Запуск терминала Linux
В современных Linux вместо консоли используется терминал. Чтобы в него зайти:
В него можно вводить команды так же, как в Ubuntu Server.
При установке MySQL из пакета LAMP нужно будет задать пароль администратора, для SQL.
Локальный Web-сервер
Для создания Web у сервера должен быть свой выделенный IP. Тогда после установки LAMP по этому IP-адресу будет доступна тестовая страница Apache. Это и есть будущий Веб. В дальнейшем на него можно будет поставить FTP, базы данных, почтовый протокол. Для настройки Web-сервера:
Команда «sudo apt-get install phpmyadmin»
Если у вас Ubuntu 13.1 и выше, используйте команды:
Вбивайте их последовательно друг за другом, после каждой нажимайте Enter.
В Ubuntu 16.04, нужны другие указания:
После их ввода и автоматического перезапуска службы по адресу http://[iP сервера]/phpmyadmin будет доступен веб-интерфейс.
Каждый раз после внесения каких-либо изменений надо перезапускать службу командой «Restart».
Почтовый сервер
Чтобы создать почтовый сервер на Линукс, у вас уже должен быть зарегистрирован домен. Также нужно иметь статический IP.
Не рекомендуется открывать доступ к серверу извне. Такие «публичные» ресурсы очень часто используются для рассылки спама. Из-за этого ваш домен может оказаться в чёрном списке у других почтовых сервисов.
Если служба настроена верно, и выполнены все условия (постоянный IP-адрес, зарегистрированный домен), то Server сможет принимать и отправлять корреспонденцию. Если запись MX вашего домена ссылается на ваш хост.
Файловый сервер
FTP-сервер Linux может понадобиться для обмена документами и загрузки файлов. Существует несколько версий таких ресурсов: vsFTPd, Samba, proFTPd.
Подробнее остановимся на vsFTPd. Его можно установить и запустить одной командой — «sudo apt-get install vsftpd». Дальнейшие настройки зависят от ваших предпочтений и от того, какой сервис вы хотите сделать. Для изменения параметров могут понадобиться права администратора.
Команда «sudo apt-get install vsftpd»
Изначально FTP запускается в автономном режиме. У неё есть скрипт, который играет роль демона. При такой функциональности доступно несколько команд. Они вводятся после строки «sudo service vsftpd».
Команда «sudo service vsftpd»
Дальнейшая настройка сервера заключается в переписывании файла конфигурации, который находится в etc/vsftpd.conf. У него простая и понятная структура. Разобраться в нём достаточно просто. Хотя для этого нужны определённые знания. Перед изменением этого файла имеет смысл сделать его резервную копию. Чтобы в случае выявления ошибок можно было всё восстановить. Введите команду «cp /etc/vsftpd.conf /etc/vsftpd_old.conf» и информация будет сохранена.
После этого можно приступать к редактированию.
Если вы хотите делать публичный сервер, то после строки «listen» надо добавить несколько дополнительных параметров.
Терминальный сервер
Терминальный сервер на Linux предназначен для предприятий и офисов, все компьютеры в которых объединены в одну сеть. Очень удобно, когда с любого ПК (если у него есть доступ) организации можно зайти на терминал. Это открывает большие возможности для удалённого администрирования.
Для такой задачи подходит LTSP — Linux Terminal Server Project. Программа есть в стандартном пакете Ubuntu. Чтобы её установить:
Linux Server может работать даже на слабых ПК. Поэтому его очень часто используют для создания серверов и удалённого администрирования. На этой операционной системе делают почтовые сервисы, FTP-хранилища, терминалы.
Локальный веб сервер Linux-Apache2-MySQL-PHP(LAMP)
Возникло острое желание создать локальный веб сервер с сайтом на Ubuntu, до этого был опыт использования open server для Windows, но он не портирован на Linux. Не теряя ни минуты залез в гугл, и что я увидел? Инструкций сотни, одна краше другой, но вот беда — не работает. Либо написаны для более ранних версий операционной системы, либо авторы просто копировали друг друга даже не проверяя. И каждую проблему приходилось решать часами.
Но раз я уже поставил себе отдельно lamp и phpmyadmin, то расскажу, как я это сделал, поехали!
Система: linux Ubuntu 16.04 LTS
Дата: Июль 2016 года
Для локального веб сервера нужны три главных компонента — Apach, MySQL и PHP.
Версии программного обеспечения на момент написания инструкции:
Apache2 — 2.4.18
MySQL — 5.7.12
PHP — 7.0
Проще всего будет установить lamp — Linux, Apache, MySQL, PHP пакет с помощью утилиты tasksel. Все в одном, очень приятно.
1) Устанавливаем tasksel, если его нет в системе.
2) Теперь непосредственно сам lamp.
Во время установки MySQL предложит нам выбрать имя пользователя и пароль, стандартная процедура аутентификации.
После завершения можно проверить работоспособность, в браузере заходим на адрес локального сервера: localhost и видим стартовую страницу Apache — дело сделано.
Команды управления сервером Apache:
Минимум для локального сервера у нас готов, есть Apache и база данных. Можно создавать базу, цеплять к ней сайт и заниматься любимым делом. Ее можно создать напрямую в MySQL через консоль, а можно подсластить себе жизнь и воспользоваться графическим интерфейсом. Их на выбор целая куча, но мы будем ставить самый модный — phpmyadmin.
3) Установка phpmyadmin.
Версия на момент написания инструкции: PhpMyAdmin — 4.5.4.1
Во время установки:
— выбираем apache2 и жмакаем enter;
— на вопрос «настроить базу данных phpmyadmin с помощью dbconfig-common?» отвечаем «да»;
— запрашивается пароль от базы данных — вводим пароль от MySQL, который выбрали в пункте 2;
— перезагружаем апач — sudo service apache2 reload
4) Создание базы данных для сайта.
Заходим в админку localhost/phpmyadmin. Перед нами список баз данных и обширные возможности по их администрированию, они нам пока не интересны. Вводим имя новой базы, например siteDB и жмем create. В принципе, все. Этого достаточно, переходим к настройке WordPress.
5) Настройка WordPress.
Версия на момент написания инструкции: WordPress — 4.5.3
Возвращаемся на сайт продолжаем отвечать на вопросы и совсем скоро попадаем в админку вордпрес, поздравляю, наш сайт готов!
Возможные проблемы:
— При переходе по адресу localhost/phpmyadmin ошибка «Not found»
Решение:
Внесите в файл /etc/apache2/apache2.conf строчку Include /etc/phpmyadmin/apache.conf
Перезагрузите апач — sudo service apache2 restart
Заключение
На этом все, локальный веб сервер установлен и готов к работе! А мы в свое очередь готовы к покорению новой дисциплины: веб-программирование. Спасибо за внимание!










