В данной статье будет рассмотрена полная настройка готового WEB сервера хостинга сайтов на основе дистрибутива UBUNTU 16.04
Для удобства работы с командной строкой удалённого сервера, рекомендую использовать программу PuTTY.
Подготовка сервера
1. Обновить пакеты сервера
sudo apt-get update
sudo apt-get upgrade
2. Устанавливаем пакет компонентов Apache, MySQL, PHP (LAMP)
sudo apt-get install lamp-server^
Символ ^ в конце обязателен - это часть команды
Во время установки MySQL будет выведен запрос на создание пароля root (это отдельный пароль администратора именно для SQL сервера, а не для основного администратора сервера).
Проверяем установку web-сервера http://[ip адрес сервера ubuntu] - должна отобразиться тестовая страница apache.
3. Устанавливаем phpMyAdmin
sudo apt-get install phpmyadmin
sudo service apache2 restart
Необходимо выполнить следующие команды:
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 (для удобства работы с файлами)
sudo apt-get install proftpd
Во время установки будет предложено выбрать один из двух различных вариантов установки:
From inetd - демон ProFTPd будет работать из-под службы inetd.
Standalone - ProFTPd будет установлен как самостоятельный демон.
Рекомендую выбрать вариант Standalone, т.к. гораздо удобней работать с ProFTPd, как с отдельной службой.
После установки ftp сервер будет запущен и можно подключаться.
Однако, желательно его дополнительно настроить:
sudo nano /etc/proftpd/proftpd.conf
Раскомментировать значение RequireValidShell off и DefaultRoot ~
После настройки FTP нужно перезапустить:
sudo /etc/init.d/proftpd restart
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 (для возможности работы ЧПУ)
sudo a2enmod rewrite
sudo service apache2 restart
Начало создания сайта
7. Создаём пользователя и каталога для работы с сайтами
sudo useradd -m -s /bin/false имя_пользователя
sudo passwd имя_пользователя
(имя_пользователя
- новый пользователь, от имени которого будут выполняться работы с сайтом. Это поможет разграничить права при работе с несколькими сайтами на одном сервере)
На предложение системы вводим пароль нового пользователя (дважды)
После создания пользователя размещаем отдельный каталог для сайта (например 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
Редактируем параметры
sudo nano /etc/apache2/sites-available/новый_сайт.conf
Изменяем и дополняем следующие значения:
DocumentRoot /home/имя_пользователя/www
ServerName новый_сайт
ServerAdmin webmaster@localhost
<Directory /home/имя_пользователя/www>
AllowOverride All
Require all granted
</Directory>
<IfModule mpm_itk_module>
AssignUserId имя_пользователя группа_пользователя
</IfModule>
Включаем созданный виртуальный хоста и перезапускаем apache
sudo a2ensite новый_сайт
sudo service apache2 reload
9. Создаём базу данных MySQL
Необходимо зайти в кансоль управления mysql
mysql -u root -p
При этом система запросит пароль root от mysql (именно от mysql, который задавался при установке LAMP). При удачном входе в кансоль mysql значение перед курсором сменится на mysql>. После этого создание новой базы sql и пользователя для управления ею можно выполнить одной командой:
create database имя_базы; GRANT ALL ON имя_базы.* TO 'пользователь_базы'@'localhost'IDENTIFIED BY 'пароль_пользователя_базя_sql';
Для выхода из кансоли mysql нужно ввести команду
\q
На этом можно закончить. Полноценный хостинг для сайта готов.
Дополнительно для удобства управления и контроля за сервером через WEB-интерфейс можно установить панель управления Webmin
Также дополнительно можно настроить параметры работы PHP ("по вкусу" - например размер загружаемых фалов в параметре upload_max_filesize = 2M )
Для UBUNTU 16.04:
sudo nano /etc/php/7.0/apache2/php.ini
Для UBUNTU 14.04:
sudo nano /etc/php5/apache2/php.ini
Основной источник: http://senokosov.info/lamp/install-lamp
Дополнительные материалы:
http://la2ha.ru/dev-seo-diy/unix/add_new_ubuntu_user
https://dyrik.ru/linux/ustanovka-apache2-mpm-itk-v-ubuntu-16-04.html
http://paperplane.su/ustanovka-ftp-servera-proftpd-na-debianubuntu/
"Not Found
The requested URL /phpmyadmin/ was not found on this server.
Apache/2.4.18 (Ubuntu) Server at localhost Port 80"
Подскажите, пожалуйста, что делать?