Установка lamp debian 9. Справочный материал по веб-серверу

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

В этой статье мы рассмотрим как выполняется установка LAMP Debian 9. Аббревиатура LAMP расшифровывается как Linux Apache Mysql PHP, это набор программного обеспечения, который чаще всего используется для размещения сайтов. Раньше мы уже говорили про , процесс не будет очень сильно отличаться в Debian, но все же есть нюансы.

Сначала мы установим все необходимые компоненты, а затем будем настраивать их и проверять правильность работы по мере необходимости. Но сначала нужно обновить систему до последней версии:

sudo aptitude update && sudo aptitude upgrade

1. Установка компонентов

Сначала установим веб-сервер и интерпретатор языка программирования PHP:

sudo aptitude install apache2 php php-mysql libapache2-mod-php php-mbstring php-zip php-gd

Мы установили не только веб-сервер, но и основные библиотеки PHP, которые могут понадобиться для работы с графикой, строками и сжатыми архивами. Пакет libapache2-php отвечает за интеграцию поддержки php для веб-сервера Apache.

Перед тем как перейти к настройке всего этого, нужно установить систему управления базами данных. Вы можете использовать MySQL либо же версию, разрабатываемую сообществом - MariaDB. Для установки MariaDB выполните:

sudo aptitude install mariadb-server mariadb-client mariadb-common

А для установки MySQL:

sudo aptitude install mysql-server mysql-client mysql-common

В этой статье мы будем рассматривать MariaDB, но работа с MySQL не будет очень сильно отличаться.

2. Настройка Apache и PHP

Уже прошли те времена, когда для того чтобы подключить PHP к Apache нужно было пересмотреть кучу конфигурационных файлов, теперь установка LAMP Debian 9 выполняется достаточно просто. Если уже сейчас запустить Apache, и ввести адрес localhost, то все будет работать. Но давайте сначала добавим домен к нашему сайту. На локальной машине это тоже полезно. Сначала создадим папку для сайта:

sudo mkdir /var/www/test-site/

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

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test-site.conf

Теперь полученный файл нужно отредактировать. Нас будут интересовать директивы ServerName и DocumentRoot. Установите для них правильные значения:

ServerName test-site.com
DocumentRoot /var/www/test-site/

Все остальное можно оставить по умолчанию. Дальше сохраните изменения и активируйте сайт командой:

sudo a2ensite test-site.conf

Теперь осталось перезапустить Apache:

Чтобы проверить как все работает создайте файл index.php со следующим содержимым в папке /var/www/test-site/:

Если домен зарегистрирован в интернете и все запросы к нему направляются на ваш ip то уже можно открыть сайт в браузере. Если же нет, вы можете настроить маршрут для домена локально с помощью файла /etc/hosts:

sudo vi /etc/hosts

127.0.0.1 test-site.com

Теперь можете открывать сайт в браузере и проверять:

http://test-site.com

Если вы увидели информацию о версии php, как на снимке экрана, значит все работает и нам осталось только настроить базу данных.

3. Настройка базы данных

Как я уже говорил, в качестве основной базы данных мы будем использовать mariadb. Чтобы начать ее настройку выполните:

mysql_secure_installation



Я не буду подробно описывать все шаги настройки. Они уже описаны в статье установка MySQL в Ubuntu. После того как процесс первоначальной настройки завершится, создадим новую базу данных:

CREATE DATABASE testsite;

Затем создайте пользователя и дайте ему доступ к этой базе данных:

CREATE USER "testuser"@"localhost" IDENTIFIED BY "password";
GRANT ALL PRIVILEGES ON testsite.* TO "testuser"@"localhost";

Ну и для тестирования добавим таблицу:

USE testsite;
CREATE TABLE testtable (
id INT NOT NULL AUTO_INCREMENT,
str VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
);

Теперь добавим одну запись в только что созданную таблицу:

INSERT INTO testtable (str) VALUES ("test1"), ("test2"), ("test3");

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

sudo vi /var/www/test-site/testmysql.php

$connection = mysqli_connect("localhost","testuser","password","testsite") or die("Error " . mysqli_error($connection));
$sql = "SELECT id, str FROM testtable";
$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));
$items = array();
while($row = mysqli_fetch_assoc($result))
{
$items = $row;
}
echo json_encode($items);
?>

http://test-site.com/testmysql.php

Хотелось бы рассказать как я устанавливал apache2 c php5 и mysql, а так же phpmyadmin на Debian, Ubuntu и Linux Mint в своей статье «Установка Apache2 с PHP5 и MySQL + phpmyadmin для Debian/Ubuntu/Mint». У меня установлен Debian, работать будет так же на Ubuntu и Linux Mint.

Я использую my_server.example.net — это доменное имя с 192.168.16.66- это его айпишник. Они будут отличны от ваших, и их можно настроить под себя. А посмотреть можно вот так:

# vim /etc/hosts [...] 192.168.16.66 my_server.example.net [...]

Я буду запускать все команды с привилегиями суперюзера, поэтому убедитесь, что вы вошли в вашу систему как администратор (root):

Установка Mysql

Когда я начал писать эту статью, то последняя версия mysql была 5, сейчас установим:

# apt-get install mysql-server mysql-client

В ходе установки, попросят ввести пароль для MySQL (для полного доступа, для рута) — это пароль будет одинаков как для root@localhost, так и для root@my_server.example.net. Его нужно ввести 2 раза.

Еще полезные статьи по теме:
1. 2. 3.
4.
5.

Установка apache2

Apache2 содержится в репозитории Ubuntu, как пакет, по этому я могу установить следующим образом:

# apt-get install apache2

После того как завершится установка, нужно перейти в свой ​​браузер на http://ip_server_or-IP (у меня это http://my_server.example.net), и вы должны увидеть страницу приветствия Apache2 (Это работает!), на английском «It’s works!». По этому если вы это увидели, то сервер работает нормально.

Домашняя директория с apache-м, по умолчанию, находится в /var/www на Debian, и файл конфигурации лежит в /etc/apache2/apache2.conf. Дополнительные конфигурации хранятся в подкаталогах, в таких как /etc/apache2/mods-enabled (для модулей Apache), /etc/apache2/sites-enabled (для виртуальных хостов), и /etc/apache2/conf.d.

Установка PhP5

Мы можем установить пхп и модуль для работы вот так:

# apt-get install php5 libapache2-mod-php5

Перезапускаем веб сервер чтобы все что установили вступило в силу:

Для того чтобы убедится что все хорошо работает у нас, нужно создать файл в домашней директории апача (если вы не меняли то он находится по пути /var/www) и добавим php код который будет выводить полезную информацию о установленных приложения (php, apache, модули и тд):

# vim /var/www/php_info.php

Открываем браузер и переходим на этот файл:
http://your_ip/php_info.php

Вы должны увидеть некоторые данные на экране. Чтобы была поддержка MySQL в PHP,нужно установить php5-mysql пакет. Сейчас я установлю полезные модули, по этому, если нужны они вам, то устанавливайте (они не помешают), так же можно выбрать самое необходимое и не ставить все что я ставлю себе.

# apt-cache search php5

Выберите те, которые вам нужны, и установить их так:

# apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-suhosin

Я установлю все перечисленное, оно не помешает мне. В этой установке содержатся модули для работы с шифрованием + для работы с кешем (улучшение работы пхп) + поддержка sqlite и еще много чего. Я не буду описывать каждый из них, если уж очень нужно будет, то напишите и я добавлю описание каждого из них и вам станет понятно, но гугл еще работает =)

Теперь перезагрузите сервер:

# /etc/init.d/apache2 restart

XCache — модуль для кэширования и оптимизации промежуточного кода PHP. У него есть пару аналогов, таких как Eaccelerator и APC. Я рекомендую, чтобы хотя бы один из них был установлен у вас он должен ускорить работу ваших страниц которые написаны на PHP.

XCache можно установить следующим образом:

# apt-get install php5-xcache

Перезапускаем апач:

# /etc/init.d/apache2 restart

Чтобы посмотреть весь список установленных модулей, выполните:

# php -m

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

Установка phpmyadmin

Если нужно установить именно phpmyadmin для работы с вашими базами, то сейчас мы это сделаем:

# apt-get install phpmyadmin

Мастер установки спросит какой веб -сервер вы используете (Web server to reconfigure automatically ): выбираем apache2, есть так же еще lighttpd. На следующий вопрос «Configure database for phpmyadmin with dbconfig-common ?» — отвечаем No. Хотя можно нажать и Yes, тогда установщик спросит пароль для пользователя admin (нужен для входа в phpmyadmin).

Чтобы начать пользоваться phpmyadmin, нужно открыть в браузере:
http://yourIP_or_server/phpmyadmin/

Вводим в поле логин «root», пароль вводим такой как вы создали для mysql.

Настройка mysql

попозже будет(через пару дней)

Настройка apache2

Тут я буду рассказывать основные настройки веб-сервера апач, но по мере возможности. Я с каждым разом редактирую данную статью и добавляю что — то новое в описание.

Виртуальные хосты (Virtualhosts).

Хочу начать я свою настройку с создания и настройки Virtualhosts (виртуальных хостов). Есть много разных способов чтобы создать виртуальные хосты, но я бы посоветовал данный метод (поискав и перебрал много вариантов и литературы, я выбрал именно его).

По умолчанию, веб-сервер апач «слушает» все IP-адреса которые доступны для виртуального сервера. Это не есть хорошо, по этому нужно подредактировать и настроить его на прослушивание только определенного ИП-адреса. Даже если Вы имеете только один IP адрес!

Делаем изменение в файле ports.conf:

# vim /etc/apache2/ports.conf [...] NameVirtualHost 192.168.16.66:80 [...]

Измените данный ИП-адрес на свой!

Делаем изменение в файле default:

# vim /etc/apache2/sites-available/default

Теперь я создам 1 виртуальный хост в качестве примера:

# vim /etc/apache2/sites-available/test ServerAdmin [email protected] # введите свой емейл ServerName 192.168.16.66 # замените на свой IP ServerAlias www.192.168.16.66 # замените на свой ИП-адрес или доменное имя DocumentRoot /var/www/192.168.16.66/public_html/ # домашняя директория для данного домена или сайта ErrorLog /var/www/192.168.16.66/logs/error.log # файл для хранения ошибок CustomLog /var/www/192.168.16.66/logs/access.log combined # # папка для хранения ошибок

Создадим папки которых нет:

# mkdir -p /var/www/192.168.16.66/ # mkdir -p /var/www/192.168.16.66/public_html # mkdir -p /var/www/192.168.16.66/logs

После всех изменений, нужно подключить данный домен в apache:

# a2ensite test

И перезагрузить веб-сервер:

# /etc/init.d/apache2 reload

Можно отключить данный сайт (виртуальный хост test)следующей командой:

# a2dissite test

Чтобы проверить работает ли все нормально, я скопирую файл (php_info):

# cp /var/www/php_info.php /var/www/192.168.16.66/public_html/

Можно открыть браузер и перейти:
http://192.168.16.66/php_info.php

Настройка PHP5

Все изменения нужно проводить в конфигурационном файле php.ini, сейчас мы его немного поправим:

# vim /etc/php5/apache2/php.ini [...] max_execution_time = 30 memory_limit = 64M error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR display_errors = Off log_errors = On error_log = /var/log/php.log register_globals = Off [...]

Вот и все, данная тема «Установка Apache2 с PHP5 и MySQL + phpmyadmin для Debian/Ubuntu/Mint» полностью раскрыта, можно использовать наш установленный LAMP.

| |

Программный стек LAMP включает в себя операционную систему Linux, веб-сервер Apache, систему управления базами данных MySQL и скриптовый язык PHP. LAMP stack – надёжная основа для разработки и размещения динамических веб-сайтов и веб-приложений.

В данном руководстве речь пойдёт об установке стека LAMP на виртуальный сервер Debian 8.

Примечание : Поскольку на сервере уже установлена операционная система Debian 8, первый компонент стека (Linux) уже установлен.

Требования

Чтобы следовать руководству, нужно:

  • Создать пользователя с правами sudo;
  • Установить основные пакеты безопасности (IPTables, Fail2Ban и т.п.).

Все команды данного руководства выполнены с правами sudo.

1: Обновление системы

Прежде чем приступить к установке программ, нужно обновить систему.

Войдите в систему и запустите следующую команду, чтобы обновить список пакетов:

sudo aptitude update

После запуска этой команды операционная система сравнит все установленные пакеты с версиями, появившимися в репозитории Debian, и обновит их в случае появления более новой версии.

Примечание : Если вы используете сервер производства или критически важный сервер, будьте предельно внимательны при установке обновлений. Не устанавливайте непроверенные версии пакетов.

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

sudo aptitude safe-upgrade

Это может занять некоторое время в зависимости от текущей версии операционной системы, пакетов программного обеспечения и сетевых условий (на обновление свежего сервера уйдёт пара секунд).

После этого сервер полностью исправлен, обновлен и готов к установке стека LAMP.

2: Установка Apache

Теперь можно приступать к установке популярного веб-сервера Apache, который нужен для отображения веб-контента. Для этого используйте команду:

sudo aptitude install apache2 apache2-doc

Эта команда установит базовый пакет и документацию Apache. Установка займёт несколько секунд.

Затем нужно убедиться, что установка прошла успешно (для этого нужен IP-адрес сервера).

Введите в браузере:

http://111.111.111.111

Если установка прошла успешно, на экране появится стандартная страница Apache 2.

После этого можно подгрузить контент в каталог /var/www/html.

Примечание : Чтобы разместить на веб-сервере несколько сайтов, читайте по настройке виртуальных хостов Apache. Дополнительную информацию по настройке Apache в Debian можно найти .

3: Установка и защита MySQL

Следующий компонент – СУБД MySQL – необходим для работы систем управления контентом (например, WordPress, Joomla, Drupal и т.п.).

Чтобы установить MySQL с поддержкой PHP, введите:

sudo aptitude install mysql-server php5-mysql

Эта команда установит MySQL и все необходимые пакеты. Во время установки программа предложит установить новый пароль для root-пользователя MySQL (это специальный аккаунт для управления системой MySQL). Установите надёжный пароль, состоящий из букв разного регистра и цифр.

После этого установка MySQL будет завершена.

Чтобы защитить MySQL, нужно запустить дополнительный скрипт:

sudo mysql_secure_installation

Данный скрипт задаст вам несколько вопросов. По запросу введите root-пароль MySQL, после чего программа спросит:

Interactive
Change the root password? n

Менять только что созданный root-пароль нет никакой необходимости. Затем скрипт спросит:

Remove anonymous users? y

Ответьте yes, и скрипт удалит анонимных пользователей. На остальные вопросы можно также ответить yes.

Затем скрипт предложит отключить удалённый доступ к пользователю root. Если окружение не нуждается в удалённом root-логине, отключите его в целях безопасности.

В завершение скрипт предложит удалить тестовую БД и обновить права; ответьте yes.

Если всё было выполнено успешно, скрипт вернёт вывод:

All done! If you have completed all of the above steps, your MySQL installation should now be secure.

Чтобы убедиться, что сервер MySQL работает должным образом, введите:

mysql -u root -p

Введите root-пароль MySQL. Затем введите следующую команду, чтобы получить информацию о состоянии сервера, версии и т.п.:

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

4: Установка PHP

Последний компонент стека – гипертекстовый препроцессор PHP; этот широко используемый серверный язык сценариев необходим для обработки динамического веб-контента.

Чтобы установить PHP, введите:

sudo aptitude install php5-common libapache2-mod-php5 php5-cli

Кроме PHP на сервер будет установлен ряд дополнительных пакетов; они необходимы для интеграции PHP, установленного ранее сервера Apache2 и других программ.

Перезапустите Apache, чтобы изменения, внесённые во время установки PHP, вступили в силу. Для этого запустите:

sudo service apache2 restart

Теперь проверьте установку PHP. Перейдите в каталог веб-сервера:

cd /var/www/html

Затем создайте страницу info.php при помощи текстового редактора:

sudo vi info.php

Эта команда откроет чистый файл в редакторе vi. Внесите в файл такой код:

Сохраните изменения и закройте файл. Затем откройте браузер и перейдите по ссылке:

http://111.111.111.111/info.php

Если всё было выполнено должным образом, на экране появится страница с данными о PHP.

sudo rm -i /var/www/html/info.php

Базовая установка PHP успешно завершена.

Заключение

Теперь на сервер установлен LAMP stack – надёжная основа для запуска веб-сайта.

Tags: ,

В современном Web-е Linux является основной платформой для размещения разнообразных веб-серверов. Бесперебойность работы, удобство развертывания и обслуживания — наше все.

При рассмотрении развертывания веб-сервера на системе Linux за основу возьмем один из самых популярных дистрибутивов – Debian. Он зарекомендовал себя как один из самых стабильных дистрибутивов, имеет наиболее из всех дистрибутивов хранилище пакетов, а каждая его версия сопровождается длительным периодом поддержки. Использование Debian позволяет быть уверенным, что при обновлении пакетов на сервере, в большинстве, случаев ничего не поломается. Но это не точно.

Быстрый, надежный, хостинг в Европе!

Ищете хороший, и при этом недорогой хостинг для сайтов? Хотите быстрый, по-европейски надежный и самый лучший для вашего проекта? Компания FORNEX рада Вам помочь.

Быстрый, качественный хостинг за рубежом. В качестве серверов для виртуального хостинга используются быстрые дисковые массивы из SSD дисков, что обеспечивает надежную и быструю работу ваших сайтов. Инженеры Fornex помогут вам с переносом сайтов абсолютно бесплатно.

Теперь стоит перейти к LAMP.

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

L – Linux – операционная система

A – Apache2 – веб-сервер

M – Mysql (на данный момент пакет Mysql заменен на MariaDB) – система управления базами данных

P – PHP – язык программирования

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

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

Установка Apache не представляет никаких сложностей – необходимо просто установить одноименный пакет из репозитория Debian.

Для начала обновим список пакетов, если по какой-то причине вы не сделали этого после установки операционной системы:

Теперь можно перейти по ссылке http://(IP_адресвеб сервера) и проверить, появилась ли страница-заглушка.

Для начала остановимся на этом и перейдем к следующему пункту.

Mysql (MariaDB)

Как уже было сказано выше, в Debian 9 стандартный пакет Mysql был заменен на MariaDB. Данная СУБД является полностью совместимой, обладает идентичным синтаксисом и полностью открытым исходным кодом. Присутствие MariaDB, и СУБД как таковой, на веб-сервере необходимо для работы разнообразных систем управления контентом (CMS), таких как WordPress, Joomla и прочих.

Также, при установке MariaDB понадобится один из пакетов PHP, необходимый для работы с СУБД:

sudo apt install mariadb-server mariadb-client php7.0-mysql -y

Утилита просит на ввести пароль root-пользователя, но так как мы его еще не задали, то просто нажимаем Enter .

Задаем пароль привилегированного пользователя, утвердительно ответив на первый вопрос (вводим y на клавиатуре и жмем Enter) . Набираем придуманный нами пароль и подтверждаем его, введя еще раз.

Не переживайте из-за того, что не видите на экране символов, которые вводите с клавиатуры – так и должно быть.

Отвечаем на все остальные вопросы, которые задает Вам утилита:

  1. Удалить анонимных пользователей?

Отвечаем утвердительно – нам необходимо, чтобы вход в консоль управления СУБД осуществлялся только после ввода пароля.

  1. Запретить удаленное подключение к пользователю root?

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

  1. Удалить тестовую базу данных?

Удаляем не боясь. Она нам не к чему.

  1. Обновить привилегии пользователей?

Снова отвечаем утвердительно.

Убедимся, что все настроено правильно. Для этого подключимся к консоли управления MariaDB:

Sudo mysql –u root –p

sudo mysql –u root –p

Mysql – вызов утилиты управление СУБД

u root – подключаемся от пользователя root

p – указываем, что необходим ввод пароля

Вводим команду status; , чтобы получить информацию о состоянии сервера и убедиться, что MariaDB готова к работе:

Для выхода из консоли управления СУБД вводи команду exit;

PHP7.0

Мы подошли к заключительному компоненту стека LAMP – гипертекстовому процессору PHP. Он представляет собой скриптовый язык общего назначения, применяемый для разработки web-приложений. Давайте установим его интерпретатор и некоторые библиотеки для работы с Apache:

sudo apt install php7.0-common libapache2-mod-php7.0 php7.0-cli -y

Теперь проверим корректность установки PHP. Для этого перейдем в каталог веб-сервера:

ИНФО: каталогом для хранения web-приложений по умолчанию является /var/www/html. Изменить каталог или добавить новый можно путем редактирования виртуальных хостов – файлов конфигурации Apache, что будет рассмотрено в следующем пункте.

Cd /var/www/html

И требуют именно веб-сервера apache с модулем php. Чаще всего причина этого — необходимость использования модуля rewrite для работы сайта.

Одной командой установите базовые компоненты. Зависимости будут установлены автоматически.

# aptitude install apache2-mpm-itk libapache2-mod-php5 php5-curl php5-mysqlnd php5-gd

Первым делом включите mod_rewrite. Он обязательно понадобится, если ваш сайт будет использовать ЧПУ.

# a2enmod rewrite

Включать mod_php не потребуется, поскольку при установке он будет включён автоматически.

# a2dismod -f autoindex deflate setenvif status

Это позволит вам сократить расход памяти.

Откройте файл /etc/apache2/conf-available/charset.conf и раскомментируйте следующую строку:

AddDefaultCharset UTF-8

Данная директива указывает, что кодировкой по-умолчанию будет UTF-8. Если ваши сайты используют другую кодировку, например, CP-1251, то необходимо указать её либо тут же, либо в параметрах виртуального хоста.

Сохраните изменения.

Откройте файл /etc/apache2/conf-available/security.conf и преобразуйте строку ServerTokens OS в ServerTokens Prod . Это скроет версию apache для клиентов.

Строку ServerSignature On преобразуйте в ServerSignature Off .

Сохраните изменения.

Откройте для редактирования файл /etc/apache2/apache2.conf и найдите параметр KeepAlive On . Если после настройки apache вы установите nginx и будете проксировать от него запросы, то этот параметр нужно преобразовать в KeepAlive Off , поскольку эту функцию (поддержание соединения с клиентом) будет выполнять nginx. Если вы планируете использовать apache в качестве основного веб-сервера, эту функцию следует настроить.

MaxKeepAliveRequests — максимальное количество запросов на поддержание постоянного соединения. Для большей производительности рекомендуется установить высокое значение. Для начала подойдёт значение по-умолчанию — 100.

KeepAliveTimeout — время в секундах для ожидания следующего запроса от того же самого клиента.

Сохраните изменения и перезапустите apache.

Откройте файл /etc/apache2/mods-available/mpm_prefork.conf.

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

Приведите значения по-умолчанию к такому виду:

StartServers 2 MinSpareServers 2 MaxSpareServers 6 MaxRequestWorkers 32 MaxConnectionsPerChild 0

StartServers — количество дочерних процессов сервера, создаваемых при запуске.

MinSpareServers — минимальное количество простаивающих процессов.

MaxSpareServers — максимальное количество простаивающих процессов.

MaxRequestWorkers — максимальное количество соединений, которые будут обрабатываться одновременно.

MaxConnectionsPerChild — максимальное количество соединений, обработав которые, дочерний процесс будет завершён. Может быть полезен в борьбе с утечками памяти.

Также сохраните изменения и перезапустите apache: service apache2 restart .

Создание виртуального хоста

Виртуальным хостом называется группа конфигурационных параметров для определённого сайта. Она включает в себя обслуживаемый домен, email администратора, пути к лог-файлам, подключение обработчиков php и т.д.

Мне нравится размещать конфигурации виртуальных хостов в одном файле — apache2.conf. Если потребуется массово заменить какое-то значение для всех сайтов, то не нужно будет открывать поочерёдно все конфигурационные файлы виртуальных хостов.

В первую очередь отключите default site.

# a2dissite 000-default

В конце файла /etc/apache2/apache2.conf пропишите следующую директиву:

В этой директиве группируются все параметры сайта. Именно она является виртуальным хостом. Следующие параметры прописываем внутри этой директивы.

ServerName — ваш домен без www. (Например, example.com.)

ServerAlias — домен с www (www.example.com)

DocumentRoot — каталог, где располагаются файлы вашего сайта. Например, /var/www/.

ServerAdmin — email администратора сайта.

ErrorLog — местоположение лог-файла ошибок. Как правило, они располагаются в каталоге /var/log/apache2/. Для него служит алиас ${APACHE_LOG_DIR}. Пример:

ErrorLog ${APACHE_LOG_DIR}/example.com .error.log

LogLevel warn . Ничего не меняем, прописываем так. Задаёт уровень логирования ошибок.

CustomLog — Расположение и тип access-лога сайта. По-умолчанию тип — combined. Хотя существуют и другие типы. Пример:

CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined

В обоих примерах example.com заменяем на ваш домен без www.

Добавляем настройки для mpm-itk, поскольку произвели установку именно этого модуля. Что он даёт? Позволяет обрабатывать php-скрипты от имени пользователя — владельца сайта.

AssignUserId user group

Здесь нужно заменить user на имя пользователя и group на имя группы, в чьей домашней папке размещены сайты.

Определяем настройки для директорий.

Options +FollowSymLinks AllowOverride None Require all granted Options -Indexes +FollowSymLinks AllowOverride All Order allow,deny allow from all

Директорию /var/www замените на ту, где размещены ваши сайты.

Подключаем обработчик php-скриптов.

php_admin_flag engine on php_admin_value open_basedir "/var/www:/tmp/sessions:/tmp/upload_tmp" php_admin_value upload_tmp_dir /tmp/sessions php_admin_value session.safe_path /tmp/upload_tmp php_admin_value sendmail_path "/usr/sbin/sendmail -t -i [email protected]"

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

upload_tmp_dir — каталог для хранения временных файлов. Когда вы загружаете картинку (или что-то ещё) на сайт, загруженный файл сначала помещается в этот каталог, а затем в конечное местоположение.

session.safe_path — каталог для хранения сессий.

Из соображений безопасности, эти два каталога не следует держать в общедоступном месте. Создайте их в домашнем каталоге пользователя, где размещаются ваши сайты. Разрешите доступ к ним только этому пользователю (права 0750).

sendmail_path — путь к sendmail и параметры. Как правило, sendmail располагается в каталоге /usr/sbin. После параметра -f следует указать email, не разделяя пробелом.

Сохраняем конфигурационный файл apache2.conf, перезапускаем apache:

Service apache2 restart

Тестирование настроенной связки

В каталоге сайта создайте файл index.php. Пропишите в нём код:

После чего откройте ваш сайт в браузере и посмотрите, отображается ли информация о php. Если да, то сервер успешно настроен и можно разместить сайт в предназначенном для него каталоге.

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

Вконтакте



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: