- Подготовка сервера
- 2. Устанавливаем пакет компонентов Apache, MySQL, PHP (LAMP)
- 3. Устанавливаем phpMyAdmin
- 4. Устанавливаем FTP (для удобства работы с файлами)
- 5. Установка apache2-mpm-itk
- 6. Включение mod_rewrite (для возможности работы ЧПУ)
- Начало создания сайта
- 7. Создаём пользователя и каталога для работы с сайтами
- 8. Создаём виртуальный хост для сайта
- 9. Создаём базу данных MySQL
- На этом можно закончить. Полноценный хостинг для сайта готов.
- Blog server for linux
- Как установить локальный сервер на linux
- Оцените статью:
- Статьи
- Комментарии
- Запись экрана
Подготовка сервера
2. Устанавливаем пакет компонентов Apache, MySQL, PHP (LAMP)
Символ ^ в конце обязателен — это часть команды
Во время установки MySQL будет выведен запрос на создание пароля root (это отдельный пароль администратора именно для SQL сервера, а не для основного администратора сервера).
Проверяем установку web-сервера http://[ip адрес сервера ubuntu] — должна отобразиться тестовая страница apache.
3. Устанавливаем phpMyAdmin
Необходимо выполнить следующие команды:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo /etc/init.d/apache2 reload
sudo apt-get install php-mbstring php-gettext
sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo systemctl restart apache2
Проверяем доступность интерфейса http://[ip адрес сервера ubuntu]/phpmyadmin
4. Устанавливаем FTP (для удобства работы с файлами)
Во время установки будет предложено выбрать один из двух различных вариантов установки:
From inetd — демон ProFTPd будет работать из-под службы inetd.
Standalone — ProFTPd будет установлен как самостоятельный демон.
Рекомендую выбрать вариант Standalone, т.к. гораздо удобней работать с ProFTPd, как с отдельной службой.
После установки ftp сервер будет запущен и можно подключаться.
Однако, желательно его дополнительно настроить:
sudo nano /etc/proftpd/proftpd.conf
Раскомментировать значение RequireValidShell off и DefaultRoot ~
После настройки FTP нужно перезапустить:
5. Установка apache2-mpm-itk
Этот модуль нужен, чтобы сервер Apache мог рабтать с файлами сайта от имени владельца папки.
По умолчанию на директорию с файлами сайта распространяются права 755 и права 644 на все файлы. Это даёт права на запись файлов и папок только их владельцем. По этой причине при работе с файлами через FTP и Apache (например через интерфейс CMS) файлы будут сзданы от имени разных пользователей и возникают проблемы с их изменением или удалением. В решении именно этой проблемы и помогает данный модуль. Он указывает в настройках хоста каждого сайта от имени какого пользователя и группы будет работать Apache в указанной директории.
sudo apt-get install libapache2-mpm-itk
sudo a2enmod mpm_prefork
sudo a2enmod mpm_itk
sudo systemctl restart apache2
6. Включение mod_rewrite (для возможности работы ЧПУ)
Начало создания сайта
7. Создаём пользователя и каталога для работы с сайтами
( имя_пользователя — новый пользователь, от имени которого будут выполняться работы с сайтом. Это поможет разграничить права при работе с несколькими сайтами на одном сервере)
На предложение системы вводим пароль нового пользователя (дважды)
После создания пользователя размещаем отдельный каталог для сайта (например www), зайдя новым пользователем по FTP в домашний каталог, либо следующей командой:
sudo mkdir /home/имя_пользователя/www
sudo chown -R имя_пользователя : группа_пользователя /home/имя_пользователя/www/
(Т.к. в предыдущей команде, при создании пользователя для него не была указана существующая группа, то была автоматически создана группа с таким же именем, как имя пользователя. Т.е. в команде выше имя пользователя равно имени группы пользователя)
8. Создаём виртуальный хост для сайта
Создаём файл конфигурации виртуального хоста из варианта по-умолчанию
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/новый_сайт.conf
Изменяем и дополняем следующие значения:
DocumentRoot /home/имя_пользователя/www
ServerName новый_сайт
ServerAdmin webmaster@localhost
AllowOverride All
Require all granted
AssignUserId имя_пользователя группа_пользователя
Включаем созданный виртуальный хоста и перезапускаем apache
9. Создаём базу данных MySQL
Необходимо зайти в кансоль управления mysql
При этом система запросит пароль root от mysql (именно от mysql, который задавался при установке LAMP). При удачном входе в кансоль mysql значение перед курсором сменится на mysql>. После этого создание новой базы sql и пользователя для управления ею можно выполнить одной командой:
create database имя_базы; GRANT ALL ON имя_базы.* TO ‘пользователь_базы‘@’localhost’IDENTIFIED BY ‘пароль_пользователя_базя_sql‘;
Для выхода из кансоли mysql нужно ввести команду
На этом можно закончить. Полноценный хостинг для сайта готов.
Дополнительно для удобства управления и контроля за сервером через WEB-интерфейс можно установить панель управления Webmin
Также дополнительно можно настроить параметры работы PHP («по вкусу» — например размер загружаемых фалов в параметре upload_max_filesize = 2M )
Blog server for linux
Как установить локальный сервер на linux
Хаюшки! В данной статье рассмотрена установка и настройка локального веб сервера со связкой apache, php, mysql в операционной системе linux. Погнали!
Если вы веб программист то наверняка знаете такие программы как denver или open server. Они по сути создают на ПК локальный сервер и позволяют гибко им управлять. В linux к сожалению подобных программ нет и здесь требуется немного другой подход к развертыванию локального сервера.
Для начала вам необходимо скачать пакеты XAMPP для linux.
По итогу скачается подобный файл xampp-linux-x64-7.2.29-1-installer.run который нужно сделать исполняемым и запустить! Открываем консоль в папке с данным файлом. И выполняем команду:
sudo chmod +x xampp-linux-x64-7.2.29-1-installer.run
Данная команда сделаем файл исполняемым. И затем запустим под root правами.
sudo ./xampp-linux-x64-7.2.29-1-installer.run
Далее откроются окна установки пройдя которые по данному пути ‘/opt/lampp’ будут установлены все файлы локального сервера.
Для проверки можно запустить локальный сервер выполнив в консоли команду:
и затем открыть в браузере следующий адрес ‘http://localhost/’. Перейдя по такому адресу ‘http://localhost/phpmyadmin/’ откроется панель phpmyadmin для работы с базами данных Mysql.
Чтобы остановить локальный сервер достаточно выполнить команду.
Для перезапуска используется команда restart.
sudo /opt/lampp/lampp restart
Данная команда сначала останавливает локальный сервер а затем запускает.
Идем далее. Рассмотрим как разместить сайт на нашем локальном сервере.
Переходим в папку ‘htdocs’, она находится по такому пути ‘/opt/lampp/htdocs’. В данной директории размещаются локальные хосты сервера. Если вы работали с open server то эта альтернатива папке ‘domains’.
Если директория htdocs не пустая, то все от туда удаляем и создаем новую папку ‘newdomain’ это будет наш локальный домен сайта. В папке создадим файл index.php в который просто пропишем.
Данный код выведет в консоль информацию о конфигурациях php.
Затем необходимо добавить наш новый домен (newdomain) в конфигурации сервера. Находим и открываем файл хостов ‘hosts’ (/etc/hosts).
Для начала можно все из него удалить и прописать такую вот строку.
127.0.0.1 localhost lampp xampp newdomain
127.0.0.1 localhost lampp xampp — это строка стандартная и постоянная, после нее идет перечисление хостов(доменов) которые мы хотим добавить. В нашем случае домен один это newdomain. Если доменов несколько то просто перечисляем их через пробел, пример.
127.0.0.1 localhost lampp xampp newdomain domain2 domain3 domain4
С этим разобрались! Сохраняем изменения в файле hosts и переходим к файлу httpd-vhosts.conf (/opt/lampp/etc/extra/httpd-vhosts.conf).
В нем также все удаляем и прописываем следующее.
ServerAdmin admin@mysite1.dev DocumentRoot '/opt/lampp/htdocs/newdomain/' ServerName newdomain ServerAlias www.newdomain ErrorLog '/opt/lampp/logs/mysite1.dev-error_log' CustomLog 'logs/mysite1.dev-access_log' common AllowOverride All Require all granted
Здесь нас интересуют строки:
DocumentRoot ‘/opt/lampp/htdocs/newdomain/’ — указывается путь к файлам нашего сайта на хосте ‘newdomain’.
ServerName newdomain — указывается домен ‘newdomain’
ServerAlias www.newdomain — указывается поддомен www ‘newdomain’
Остальные строки можно всегда оставлять как есть. Еще обратите внимание ‘127.0.0.1:80’ что мы подключаемся по 80 порту http.
Сохранив изменения можно запускать локальный сервер.
После запуска, в адресной строке браузера вводим адрес нашего локального хоста ‘http://newdomain’ и вуаля. Сайт запущен!
Результатом будет вывод на странице конфигураций php.
Это конечно все хорошо но что если мы к примеру хотим запустить сайт под https? Рассмотрим как это можно сделать!
Для закрепления материала создадим еще один сайт.
В папке htdocs создаем директорию ‘site’ в ней файл index.php
127.0.0.1 localhost lampp xampp newdomain site
Обновляем файл ‘httpd-vhosts.conf’
ServerAdmin admin@newdomain.dev DocumentRoot '/opt/lampp/htdocs/newdomain/' ServerName newdomain ServerAlias www.newdomain ErrorLog '/opt/lampp/logs/mysite1.dev-error_log' CustomLog 'logs/mysite1.dev-access_log' common AllowOverride All Require all granted ServerAdmin admin@newdomain.dev DocumentRoot '/opt/lampp/htdocs/site/' ServerName site ServerAlias www.site ErrorLog '/opt/lampp/logs/mysite1.dev-error_log' CustomLog 'logs/mysite1.dev-access_log' common AllowOverride All Require all granted DocumentRoot "/opt/lampp/htdocs/site/" ServerName site:443 ServerAdmin you@example.com ErrorLog "/opt/lampp/logs/error_log" TransferLog "/opt/lampp/logs/access_log" SSLEngine on SSLCertificateFile "/opt/lampp/etc/ssl.crt/server.crt" SSLCertificateKeyFile "/opt/lampp/etc/ssl.key/server.key" SSLOptions +StdEnvVars SSLOptions +StdEnvVars
Обратите внимание что для хоста ‘site’ мы прописали две конфигурации для http ‘127.0.0.1:80’ и https ‘127.0.0.1:443’.
После сохранения изменений перезапускаем сервер.
sudo /opt/lampp/lampp restart
И пробуем перейти на сайт ‘https://site/’ при первом переходе у вас может вылезти предупреждение о небезопасности соединения, игнорируем его и переходим.
В результате сайт будет работать под https. В некоторых браузерах в частности google chrome рядом с адресной строкой может отображаться что соединение не защищено.
На это можно не обращать особого внимания так как основные технологии которые работают только под https будут работать и этого вполне достаточно для тестирования.
Вот все что я вам хотел рассказать про работу с локальным сервером (apache + php + mysql) в linux. В принципе этих знаний уже достаточно для работы веб программисту.
Напоследок хочу дать небольшой бонус по автоматизированному запуску сайтов на локальном сервере. Согласитесь что так добавлять новые сайты на локальный сервер не очень удобно, необходимо как минимум внести изменения в два файла hosts и httpd-vhosts.conf. В качестве решения этой проблемы мной был разработан скрипт на Python для автоматического запуска.
Файл web-server.py и его содержимое:
#!/usr/bin/env python3 import os import subprocess host = open('/etc/hosts', 'w') vhost = open('/opt/lampp/etc/extra/httpd-vhosts.conf', 'w') text_hosts="127.0.0.1 localhost lampp xampp " text_vhosts="" os.chdir('/opt/lampp/htdocs/') for folder in os.listdir('.'): subprocess.call('chmod 777 '+folder, shell=True) text_hosts = text_hosts+" "+folder text_vhosts = text_vhosts+"\r\n\r\nServerAdmin admin@mysite1.dev\r\nDocumentRoot '/opt/lampp/htdocs/"+folder+"/'\r\nServerName "+folder+"\r\nServerAlias www."+folder+"\r\nErrorLog '/opt/lampp/logs/mysite1.dev-error_log'\r\nCustomLog 'logs/mysite1.dev-access_log' common\r\n \r\nAllowOverride All\r\nRequire all granted\r\n\r\n \r\n\r\n\r\nDocumentRoot '/opt/lampp/htdocs/"+folder+"/'\r\nServerName "+folder+":443\r\nServerAdmin you@example.com\r\nErrorLog '/opt/lampp/logs/error_log'\r\nTransferLog '/opt/lampp/logs/access_log'\r\nSSLEngine on\r\nSSLCertificateFile '/opt/lampp/etc/ssl.crt/server.crt'\r\nSSLCertificateKeyFile '/opt/lampp/etc/ssl.key/server.key'\r\n\r\n SSLOptions +StdEnvVars\r\n \r\n\r\nSSLOptions +StdEnvVars\r\n \r\n \r\n\r\n" host.write(text_hosts) vhost.write(text_vhosts) host.close() vhost.close() subprocess.call('sudo /opt/lampp/lampp restart', shell=True)
Кто разбирается в Python для тех не составит особого труда разобраться что делает данный код. При запуске данного файла перебираются все папки в директории htdocs при этом данные в ‘hosts’ и ‘httpd-vhosts.conf’ обновляются, локальный сервер перезапускается.
Для большего удобства файл можно сделать исполняемым.
и разместить в ‘/usr/bin’. В результате этих действий вы сможете запускать и перезапускать локальный сервер простой командой в консоли.
В результате вам больше не придется лазать в файлы ‘hosts’ и ‘httpd-vhosts.conf’. И заметьте что каждый сайт на локальном хосте будет доступен под http и https.
На этом у меня все. Надеюсь данная статья оказалась для вас интересной и полезной! Не забывайте подписываться в группу Вконтакте и переходите на мой канал Youtube.
Желаю вам успехов и удачи! Пока.
Оцените статью:
Статьи
Комментарии
Внимание. Все комментарии проходят модерацию перед публикацией!
В данном разделе пока нет комментариев!
Запись экрана
Данное расширение позволяет записывать экран и выводит видео в формате webm
Добавить приложение на рабочий стол