- Базовая установка и настройка веб-сервера
- Базовая установка и настройка веб-сервера
- Установка
- Настройка Apache
- Персональные настройки
- Настройка виртуальных хостов
- Твики и трюки
- Ускоряем сервер (Opcode Cacher)
- Выключаем автозапуск apache2 и mysql
- Выключаем автозапуск Apache:
- Выключаем автозапуск MySQL:
- Разрешаем подключение к MySQL из Мира
- Install and Configure Apache
- What you’ll learn
- What you’ll need
- 2. Installing Apache
- 3. Creating Your Own Website
- 4. Setting up the VirtualHost Configuration File
- 5. Activating VirtualHost file
- End result
- Подготовка сервера
- 2. Устанавливаем пакет компонентов Apache, MySQL, PHP (LAMP)
- 3. Устанавливаем phpMyAdmin
- 4. Устанавливаем FTP (для удобства работы с файлами)
- 5. Установка apache2-mpm-itk
- 6. Включение mod_rewrite (для возможности работы ЧПУ)
- Начало создания сайта
- 7. Создаём пользователя и каталога для работы с сайтами
- 8. Создаём виртуальный хост для сайта
- 9. Создаём базу данных MySQL
- На этом можно закончить. Полноценный хостинг для сайта готов.
Базовая установка и настройка веб-сервера
Решил оформить наконец своё HOW-TO на форуме в нашей вики, т.к. это правильнее и форматирование здесь удобнее. Я постарался изложить материал кратко, намеренно упустив подробности, которые не относятся напрямую к сути (вроде того, что конфиги сервера нужно править от рута). Считаем, что читатель имеет базовый уровень работы с линукс-системами.
Просьба к редакторам тоже там отписываться
Базовая установка и настройка веб-сервера
Установка
apt-get install lamp-server^ phpmyadmin
phpmyadmin — веб-интерфейс для управления БД MySQL.
Иногда при копипасте кода установки может вылезать ошибка, что какой-то пакет не найден. На самом деле все правильно, просто глюк копипаста. Решение вбить руками команду или попробовать стереть название проблемного пакета вместе с пробелами по краям и вбить руками только его.
Настройка Apache
Персональные настройки
Начиная с версии Ubuntu Saucy (13.10) свои настройки следует писать в /etc/apache2/conf-available, активировать настройки следует с помощью команды a2enconf.
Свои настройки следует писать в /etc/apache2/conf.d, т.е. создать там файл, например, myconf.conf и определить в нём свои настройки.
## Файл персональных настроек веб-сервера Apache ## Чтобы устранить предупреждение при перезапуске Apache (хотя в целом на производительности это не отразится) ServerName localhost ## Для того, чтобы Apache интерпретировал php и не предлагал сохранить php-файл AddType application/x-httpd-php .php .phtml ## Установка кодировки UTF-8 по умолчанию AddDefaultCharset UTF-8
Для того, чтобы так же работали файлы php, которые начинаются с «» вместо «» нужно, чтобы в /etc/php5/apache2/php.ini было short_open_tag = On
Настройка виртуальных хостов
Есть несколько способов, я же расскажу о том как повесить несколько виртуальных хостов на один IP c доступом к ним по имени сервера.
127.0.0.1 host2.server1 host1.server1
и создаём там файлы, названиями которых будут названия, создаваемых серверов, например host1.server1.conf и host2.server1.conf в эти файлы пишем (здесь показано простейшее, подробнее можно заценить в файле default):
ServerName host1.server1 DocumentRoot /var/www/host1.server1 AllowOverride All
ServerName host2.server1 DocumentRoot /var/www/host2.server1 AllowOverride All
Далее создаём симлинки на эти файлы в директории /etc/apache2/sites-enabled с помощью команды a2ensite:
a2ensite host1.server1 host2.server1
http://host1.server1 http://host2.server1
Твики и трюки
Этот раздел применять не обязательно, у вас уже всё работает после 1-го раздела. Однако вы можете найти здесь что-то полезное. Я рекомендую не обделить вниманием ускорение (opcode cacher)
Ускоряем сервер (Opcode Cacher)
Акселератор PHP — программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.
Начиная с версии PHP 5.5 в интерпретатор по умолчанию включён Zend OPcache. В этой связи, а также потому что данная статья описывает базовую настройку, из неё убраны описания установки php-apc и php-xcache
Выключаем автозапуск apache2 и mysql
ВАМ ЭТО ДЕЙСТВИТЕЛЬНО НУЖНО? Эти демоны стартуют в родной для себя среде в разы быстрее чем денвер в винде, думаю от 1 сек к времени загрузки ОС и 10 мб ОЗУ вам хуже не станет, а лишних телодвижений не будет…
Выключаем автозапуск Apache:
sudo update-rc.d -f apache2 remove
Выключаем автозапуск MySQL:
sudo nano /etc/init/mysql.conf
start on (net-device-up and local-filesystems and runlevel [2345])
#start on (net-device-up # and local-filesystems # and runlevel [2345])
Разрешаем подключение к MySQL из Мира
Нужно для подключения веб-сервера или другой программы, находящейся на другом сервере. В случае, если у вас они крутятся на одном сервере этого делать не нужно!
/etc/mysql/my.cnf
# # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1
Самое простое — просто закомментировать эту строку.
Кроме этого требуется добавить пользователя, который с разных мест и из разных программ может соединяться с базой, например «admin»:
GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'my_admin_password' WITH GRANT OPTION;
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Install and Configure Apache
Apache is an open source web server that’s available for Linux servers free of charge.
In this tutorial we’ll be going through the steps of setting up an Apache server.
What you’ll learn
What you’ll need
- Ubuntu Server 16.04 LTS
- Secure Shell (SSH) access to your server
- Basic Linux command line knowledge
Got everything ready? Let’s move on to the next step!
Originally authored by Aden Padilla
2. Installing Apache
To install Apache, install the latest meta-package apache2 by running:
sudo apt update sudo apt install apache2
After letting the command run, all required packages are installed and we can test it out by typing in our IP address for the web server.
If you see the page above, it means that Apache has been successfully installed on your server! Let’s move on.
3. Creating Your Own Website
By default, Apache comes with a basic site (the one that we saw in the previous step) enabled. We can modify its content in /var/www/html or settings by editing its Virtual Host file found in /etc/apache2/sites-enabled/000-default.conf .
We can modify how Apache handles incoming requests and have multiple sites running on the same server by editing its Virtual Hosts file.
Today, we’re going to leave the default Apache virtual host configuration pointing to www.example.com and set up our own at gci.example.com .
So let’s start by creating a folder for our new website in /var/www/ by running
We have it named gci here but any name will work, as long as we point to it in the virtual hosts configuration file later.
Now that we have a directory created for our site, lets have an HTML file in it. Let’s go into our newly created directory and create one by typing:
cd /var/www/gci/ nano index.html
Paste the following code in the index.html file:
I'm running this website on an Ubuntu Server server!
Now let’s create a VirtualHost file so it’ll show up when we type in gci.example.com .
4. Setting up the VirtualHost Configuration File
We start this step by going into the configuration files directory:
cd /etc/apache2/sites-available/
Since Apache came with a default VirtualHost file, let’s use that as a base. ( gci.conf is used here to match our subdomain name):
sudo cp 000-default.conf gci.conf
Now edit the configuration file:
We should have our email in ServerAdmin so users can reach you in case Apache experiences any error:
ServerAdmin yourname@example.com
We also want the DocumentRoot directive to point to the directory our site files are hosted on:
The default file doesn’t come with a ServerName directive so we’ll have to add and define it by adding this line below the last directive:
This ensures people reach the right site instead of the default one when they type in gci.example.com .
Now that we’re done configuring our site, let’s save and activate it in the next step!
5. Activating VirtualHost file
After setting up our website, we need to activate the virtual hosts configuration file to enable it. We do that by running the following command in the configuration file directory:
You should see the following output
Enabling site gci. To activate the new configuration, you need to run: service apache2 reload root@ubuntu-server:/etc/apache2/sites-available#
To load the new site, we restart Apache by typing:
End result
Now is the moment of truth, let’s type our host name in a browser. Hooray!
Further reading:
Подготовка сервера
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 )