Установка и настройка Apache, PHP, MySQL в Ubuntu Как создать свой сайт > Вебмастеру > Блог Андрея Морковина > Установка и настройка Apache, PHP, MySQL в Ubuntu

Установка и настройка Apache, PHP, MySQL в Ubuntu

Эта теория недостаточно безумна, чтобы быть верной.
Нильс Бор.
9 ноября 2010 года

    Уважаемый читатель, я хочу подробно описать процесс установки и настройки локальной среды разработки Apache + PHP + MySQL для операционной системы Ubuntu.

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

    Ранее я описывал процесс установки «большой тройки» (Apache + PHP + MySQL) для ОС Windows и даже умудрился опубликовать видеокурс, посвящённый хостингу на локальном компьютере, где «большая тройка» устанавливалась на ОС ArchLinux.

    Хотя ArchLinux, на мой взгляд, более подходит для использования в качестве серверной ОС, обойти вниманием Ubuntu, всё же, невозможно. Ведь Ubuntu является отличной альтернативой Windows и, как «рабочая лошадка» веб-разработчика, частенько превосходит своего платного конкурента.

    Лично я провёл над собой эксперимент по переходу с ворованного ПО на свободное. Результаты я публикую в отдельном разделе данного сайта. Уже сейчас могу сказать, что я не только работаю в Ubuntu, но мне это начинает нравиться.

    А раз так, то без установки сервера на Ubuntu нам не обойтись.

    Но сначала, как и договаривались, введение.

    Желающих избавиться от священного трепета перед пеленой непонимания процесса работы сайта на хостинг-компьютере я перенаправляю все к той же статье по настройке сервера на Windows, в начале которой я попытался покончить с этим самым трепетом. Если трепет не прошёл, сегодня мы его добьём окончательно.

    Как вы уже поняли, программная часть сервера состоит из трёх основных составляющих.

1. Apache

    Что делает Apache? Сейчас расскажу.

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

    Во-вторых, компьютер, на жёстком диске которого размещены файлы сайта, обладает уникальным идентификатором — IP-адресом (да и вообще, любой компьютер, подключённый к сети Интернет напрямую, обладает уникальным IP-адресом).

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

  • посетитель, зная IP-адрес компьютера-сервера, соединяется с ним и требует сайт;
  • Apache, в ответ на это требование, отправляет файлы подключившемуся посетителю;
  • браузер посетителя обрабатывает инструкции в полученных от Apache текстовых файлов и формирует привычный нам вид веб-страницы.

    В-четвёртых, вы же не знаете IP-адрес компьютера, на котором расположен сайт? Вы знаете доменное имя сайта, а о том, какой IP-адрес соответствует данному URL, знает NS-сервер.

    В-пятых, промежуточное звено — NS-сервер — придумано для того, чтобы не запоминать бессмысленные цифры IP-адреса. Ведь куда проще запомнить доменное имя.

    В-шестых, на одном IP-адресе может быть размещено несколько сайтов с разными доменными именами. Но об этом чуть позже.

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

    Понятно, что если сайт должен быть доступен из внешней сети (из Интернета), то компьютер, на котором размещены файлы сайта (будем называет его сервер), должен быть подключен к Интернету и иметь прямой фиксированный внешний IP-адрес.

    В принципе, серверу не обязательно иметь подключение к Интернету с прямым IP-адресом. Для обеспечения работоспособности сайта, можно воспользоваться пробросом портов. Но это отдельная тема для статьи.

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

    Последовательность обработки запроса посетителя вашего сайта будет следующей:

  1. посетитель сайта ввёл в браузер доменное имя,
  2. NS-сервер сообщил соответствующий IP,
  3. запрос по полученному IP пришёл на ваш компьютер к Apache,
  4. Apache, в соответствии со своими настройками, показал посетителю те или иные файлы.
Последовательность обработки запроса посетителя сайта

    Вот, каким образом выглядит интерфейс настройки NS-записи у хостера:

Настройка NS-сервера

    В настройках домена я указал две записи типа А для доменного имени с www и без www. Обоим доменным именам поставлен в соответствие IP-адрес 193.46.210.133. IP-адресом «193.46.210.133» обладает мой сервер, на котором запущен Apache, отдающий посетителю файлы этого блога.

    Ещё немного умственных усилий — и мы рассмотрим случай настройки локальной среды разработки.

    Разница в настройках локальной среды разработки и глобального хостинга лишь в том, что в глобальном случае приходилось настраивать NS-сервер (для того, чтобы все компьютеры в Интернете знали IP нашего сайта), а в случае использования локальной среды разработки для тестирования динамического сайта доступ к нему нужен только нам — его разработчикам. Поэтому никакие NS-сервера не требуются. Мы будем править файл «hosts», расположенный на жёстком диске компьютера.

    Файл «hosts» представляет собой ни что иное как локальный NS-сервер. В нём можно указать доменное имя сайта и IP-адрес, ему соответствующий.

    В Ubuntu данный файл расположен по следующему пути: «/etc/hosts».

    Для того, чтобы его отредактировать, требуется ввести команду в терминале («Меню Ubuntu/Приложения/Стандартные/Терминал»): «sudo gedit /etc/hosts».

Редактирование файла «hosts»

    Директива «sudo» включает режим «Суперпользователя» для редактирования служебных файлов. «gedit» — название программы для редактирования текстовых файлов в Ubuntu.

    Ну, а «/etc/hosts» — это, как вы понимаете, путь к редактируемому файлу.

Содержимое файла «hosts»

    Слева написаны IP-адреса, справа (через табуляцию) — доменные имена.

    После ввода доменного имени в браузере, компьютер, первым делом, проверит наличие информации по данному домену в файле «hosts» и если там его не найдёт — полезет на NS-сервера. IP-адрес «127.0.0.1» — это адрес каждого локального компьютера (такие уж существуют правила).

    Иными словами, если сейчас в браузере моего компьютера набрать «test2» или «wordpress.loc», то запрос будет передан моему локальному Apache.

    Файл «hosts», как вы знаете, есть и в Windows. Расположен он по адресу «C:\WINDOWS\system32\drivers\etc\hosts» и выполняет точно те же самые действия.

    Теперь быстро пройдёмся по оставшимся двум необходимым составляющим серверного ПО.

2. PHP

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

3. MySQL

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

    В следующей части мы займёмся непосредственно установкой и настройкой Apache + PHP + MySQL в Ubuntu.

Часть 2. Установка и настройка

    Итак, уважаемый читатель, теперь займёмся непосредственно установкой и настройкой Apache + PHP + MySQL в Ubuntu.

Установка Apache в Ubuntu

    В «Терминале» необходимо выполнить команду: sudo apt-get install apache2 libapache-mod-auth-mysql.

    С предназначением команды «sudo» мы знакомились в первой части данного руководства.

    Команда «apt-get install» запускает менеджер пакетов в режиме установки нового ПО.

    Через пробел следуют названия устанавливаемого ПО: «apache2 libapache-mod-auth-mysql» — самого Apache и дополнительного модуля.

    Вот и всё, Apache установлен. За это я и люблю Ubuntu: не надо искать и скачивать дистрибутивы, процесс приятно автоматизирован.

Устанавливаем PHP в Ubuntu

    Всё, что необходимо для работы PHP, можно установить одной командой: «sudo apt-get install php5-common php5 libapache2-mod-php5 php5-cli php5-cgi php5-mysql».

Устанавливаем MySQL в Ubuntu

    Команда для установки: «sudo apt-get install mysql-server mysql-client».

    После установки, MySQL потребует задать пароль пользователя «root» для подключения к базам данных.

Задаём пароль пользователя «root» для MySQL

    На этом установка всех необходимых компонентов закончена и мы переходим к настройке.

Настройка сервера в Ubuntu

    Для начала, создадим каталог на жёстком диске, где будут располагаться файлы сайтов. Например, пусть это будет папка «/home/imya_polzovatelya/sites».

    В директории «sites» я буду располагать поддиректории с файлами отдельных сайтов. Каждая поддиректория в «sites» будет представлять из себя хранилище файлов отдельного сайта.

    В качестве примера, настроим работу тестового сайта.

    Для этого, в каталоге «sites» я создаю каталог «test», содержащий две поддиректории: «logs» — для хранения логов; и «www» — для хранения файлов сайта.

    Пару слов о том, что же такое «логи». В ОС семейства Linux принято писать подробные и «человекопонятные» отчёты об ошибках. В случае возникновения непредвиденной ситуации, Apache запишет в папку «logs» отчёт, из которого вы сможете понять, что именно пошло не так. Советую не забывать о полезности чтения логов.

Создание папки для нового хоста в Ubuntu

    На «скрине» представлен внешний вид замечательного файлового менеджера ОС семейства Linux под названием «Midnight Commander». Запустить его можно, набрав в «Терминале» комаду «mc».

    Теперь в папке «www» свежесозданного хранилища файлов сайта «test» необходимо создать текстовый файл «index.php». В «Midnight Commander» для создания текстового файла можно воспользоваться комбинацией клавиш «Shift + F4».

    В файле «index.php», для проверки, напишем следующие сроки:

«<p>Привет, Мир!</p>»

«<?php echo phpinfo() ?>»

    Первая строка приведённого выше кода выводит на экран статический текст «Привет, Мир!». Вторая строка предназначена для проверки работоспособности PHP: если всё в порядке, функция «phpinfo()» покажет таблицу с информацией о версии PHP, установленной на сервере.

Настройка Apache в Ubuntu

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

Права доступа в Ubuntu

    У каталогов и файлов ОС, построенной на базе Linux, существует три степени доступа для трёх категорий пользователей.

    Сначала познакомимся с существующими категориями пользователей.

1. Категория «Владелец файла или каталога». В нашем случае, при создании каталога «sites, test, www, logs» и файла «index.php», мы действовали от имени пользователя, «под которым» вошли в операционную систему.

    Увидеть имя пользователя, под которым вы сейчас работаете, можно в окне «Терминала»:

Определение имени пользователя в Ubuntu

    На приведённом скриншоте, имя пользователя — «olga».

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

Внимание! Запустив файловый менеджер «Midnight Commander» в режиме суперпользователя командой «sudo mc», вы получите доступ к работе со служебными файлами и каталогами. Однако владельцем созданных файлов и каталогов в режиме суперпользователя будет назначен уже не пользователь «olga», а суперпользователь «root».

    Вабота в режиме суперпользователя идентифицируется знаком «#» в конце командной строки, в отличие от знака «$» при работе в обычном режиме.

Пользователь с правами root-а в Ubuntu

2. Категория «Группа владельца». Дело в том, что все пользователи ОС Linux распределены по группам. Рассматриваемая категория доступа относится к пользователям, входящим в ту же группу, что и владелец.

3. Категория «Все остальные». В данную категорию входят пользователи, не попавшие в первую и вторую категории.

    Для каждой из вышеописанных категорий пользователей может быть назначен свой уровень доступа к каталогам и файлам. Увидеть и отредактировать его можно, кликнув правой кнопкой мыши на папке или файле и выбрав пункт «Свойства».

Свойства папок и файлов в Ubuntu

    Но гораздо приятнее, лично для меня, воспользоваться «Терминалом» и посмотреть информацию о правах доступа посредством команды «ls -la put_k_papke_ili_failu»:

Права доступа в Ubuntu

    Выделенная на рисунке строка предоставляет полную информацию о правах доступа к папке «test», которая расположена в каталоге «/home/olga/sites/».

    Расшифрую выделенную на скриншоте строку.

  • Первая буква «d» информирует нас о том, что «test» — директория;
  • «rwxr-xr-x» — обозначение степени доступа, по три символа для каждой категории пользователей.

    Теперь начинаем разбираться со степенями доступа.

    В случае анализа прав доступа к директории первые три символа приведённой буквеннодефисной последовательности («rwx») характеризуют степень доступа категории «Владелец» и означают следующее: категория «Владелец» имеет право просматривать содержимое директории «test» (символ «r»), создавать новые файлы и подкаталоги в данной директории («w»), переходить в директорию «test» («x»).

    В случае анализа прав доступа для файла: «r» — чтение файла, «w» — запись в файл, «x» — запуск файла.

    Следующие три символа «r-x» характеризуют права категории «Группа владельца» на данную директорию. Символы «r-x» означают, что читать и переходить в данный каталог «одногруппники» владельца могут, но писать туда им запрещено, т. к. вместо «w» стоит прочерк.

    Для всех остальных пользователей назначены точно такие же права, что и для «одногруппников».

    Теперь внимание! С данными файлами будет работать программа «Apache». Возникает законный вопрос: от имени какого пользователя работает «Apache» в Ubuntu и какие права нужно установить на файлы и директории сайта, чтобы было безопасно и всё работало?

    Ответ на этот вопрос можно найти в файле конфигурации Apache: «/etc/apache2/apache2.conf». Параметры «User» и «Group» задают пользователя и группу, от имени которых будет действовать Apache.

Пользователь, от имени которого запускается Apache в Ubuntu

    Значение переменных «${APACHE_RUN_USER}» и «${APACHE_RUN_GROUP}» указаны в файле «/etc/apache2/envvars:»

Пользователь, от имени которого запускается Apache в Ubuntu

    Из скриншота видно, что Apache будет работать от имени пользователя «www-data», состоящего в группе «www-data».

    Для нашего сайта «test», владельцем папок и файлов которого является пользователь «olga», «www-data» будет относиться к третьей категории пользователей. А именно «Все остальные».

    Но позвольте, ведь частенько возникает необходимость давать полный доступ («rwx») пользователю, от имени которого работает Apache, к файлам и папкам сайта. А значит, нам потребуется выдать полный доступ третьей категории пользователей (всем подряд), чего делать совершенно не хочется из соображений безопасности.

    Поэтому я предлагаю пойти другим путём. Добавим пользователя «www-data» к группе владельца файлов и папок сайта.

    Для начала проверим, какая группа у владельца сайта. Воспользуемся командой «ls -la»:

Определение группы пользователя в Ubuntu

    Как видно из скриншота, группа владельца каталога с файлами сайта носит название «olga».

    Остаётся добавить пользователя «www-data» в группу «olga». Сделать это можно командой «sudo usermod -a -G olga www-data».

    Воспользуемся командой для просмотра групп пользователя, чтобы убедиться в успехе проделанной операции: «groups www-data».

Добавление в группу пользователя в Ubuntu

    Теперь необходимо задать права для каталогов и файлов нашего сайта, исходя из следующих соображений.

    Владелец должен иметь возможность полного доступа к файлам и каталогам сайта («rwx»). Действительно, мне же нужно создавать новые файлы сайта и редактировать существующие без всяких на то ограничений. Напомню, в ОС я работаю от имени пользователя «olga».

    «Одногруппники», одним из которых является пользователь «www-data», от чьего имени работает Apache, должны иметь возможность просматривать содержимое каталогов и файлов, а также запускать файлы («r-x»). Однако нужно иметь ввиду, что для некоторых папок сайта (например, тех, куда Apache записывает новые файлы) требуются полные права («rwx»).

    Категории пользователей «Все остальные» можно вообще не давать никаких прав («---»).

    Реализуем задуманное следующей командой: «sudo chmod -R 750 /home/olga/sites/».

    Данная команда даёт полный доступ («rwx») для владельца директории «sites» («7»), доступ на чтение и запуск («r-x») «одногруппникам» владельца («5») и запрещает доступ «Всем остальным» («0» в конце).

    Ключ «-R» говорит о том, что выполнить операцию смены прав доступа нужно рекурсивно. Т. е. для всех файлов и подкаталогов внутри директории «sites» и для неё самой.

    С правами доступа почти всё.

    Займёмся непосредственно настройкой Apache.

    В Ubuntu существует некая особенность в настройке нового сайта. Конфигурационный файл для каждого из сайтов, запускаемых с нашего компьютера, должен быть свой. Хранятся они в папке «/etc/apache2/sites-available».

Файл конфигурации хоста Apache в Ubuntu

    Я предлагаю создать файл шаблонной конфигурации, на основе которого будут создаваться «конфиги» всех остальных сайтов (файл «template» на скриншоте выше).

    Содержимое файла «template» описывает правила работы Apache с одним конкретным сайтом (в случае примера, это сайт «test»):

<VirtualHost *:80>
ServerName test
# ServerAlias example.com
ServerAdmin webmaster@example.com

DocumentRoot /home/olga/sites/test/www
<Directory /home/olga/sites/test/www>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ErrorLog /home//olga/sites/test/logs/error.log

LogLevel warn

ServerSignature On

</VirtualHost>

    В первой строке указывается доменное имя, по которому данный сайт будет доступен.

    Вторая строка — это синоним доменного имени, по которому осуществляется доступ к этому же сайту. В моём случае, она закомментирована символом «#» и в настройках не участвует.

    Ниже указывается адрес эл. почты администратора.

    Далее мы переходим к настройкам правил работы Apache с файлами сайта, расположенными в каталоге «/home/olga/sites/test/www».

    Строка с директивами «Options -Indexes FollowSymLinks MultiViews» задаёт опции работы Apache с указанной директорией:

  • -Indexes — запрещает показ в браузере содержимого каталогов в случае отсутствия запрашиваемого файла;
  • FollowSymLinks MultiViews — разрешение следовать по символическим ссылкам и разрешает поддержку многих языков (пусть будет, хуже не станет);
  • AllowOverride All — разрешает использовать файлы дополнительной конфигурации .htaccess.

    Следующий далее набор директив разрешает доступ к файлам сайта.

  • ErrorLog /home/olga/sites/test/logs/error.log — задаёт путь к файлу логов ошибок.

    Более подробную информацию по директивам Apache можно получить здесь.

    Скопируем содержимое файла шаблонной конфигурации и сохраним под именем нашего сайта, чтобы не путаться (в примере сайт называется «test»).

    Для выполнения описанного действия, удобно использовать «Midnight Commander», запустив его в режиме суперпользователя, т. к. мы будем заниматься редактированием служебных файлов (команда «sudo mc»).

    Копирование содержимого одного файла в другой осуществляется комбинацией клавиш «Shif+F5»:

Копирование файла в Ubuntu

    Далее необходимо воспользоваться командой подключения файла конфигурации хоста «test»: «a2ensite test».

    Данная команда создаст ссылку на файл конфигурации.

    Кстати, отключить надоевший хост можно командой: «a2dissite test».

    Теперь нам осталось выполнить всего два действия: перезапустить Apache командой «/etc/init.d/apache2 restart» и добавить название нашего свежеиспечённого хоста в файл «/etc/hosts» и перенаправление на IP-адрес 127.0.0.1 (об этом мы подробно говорили в первой части руководства).

    После перезапуска Apache, в каталоге «/home/olga/sites/test/logs/» создастся файл лога ошибок «error.log». Владельцем данного файла будет являться суперпользователь «root». Поэтому, чтобы у нас была возможность просматривать его содержимое, нужно расширить права доступа третьей категории пользователей, разрешив им чтение данного файла («r--»), ведь я работаю от имени пользователя «olga» и файлы пользователя «root» без соответствующего разрешения прочесть не смогу: «sudo chmod -R 774 /home/olga/sites/test/logs/error.log».

«774» означает:

  • «root» может читать, писать и запускать;
  • «одногруппники» могут читать, писать и запускать;
  • «Все остальные» — только читать.

    Вот и всё. Теперь можно запускать в Ubuntu браузер, вводить URL «http://test» и наблюдать содержимое файла «index.php», обработанного Apache.

P. S. Для работы большинства современных сайтов требуется модуль mod_rewrite. По умолчанию, он не подключён. Подключить его можно командой: «a2enmod rewrite». По аналогии можно подключить и другие недостающие модули.

 

    Автор: Андрей Морковин.

 

Ещё материалы по этой теме:

Комментарии:

mad
Хотелось бы услышать что-нибудь касающейся верстки и непосредственно создания самого сайта. интересно было бы посмотреть как сделать стр регистрации или поля входа в шапке, интернет магазин аукцион в общем много разных интересных и нужных тем например у вас в разделе про верстку до фига коментов а тут ето всего второй

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

Петр
Добрый вечер ,Андрей, вы где столько времени пропадали(последняя статья от 13 сентября) ? А то мы уже начали беспокоиться?

Андрей Морковин
Работа отнимала слишком много сил и времени.

Winet
«В принципе серверу не обязательно иметь подключение к интернету с прямым IP-адресом. Для обеспечения работоспособности сайта можно воспользоваться пробросом портов, но это отдельная тема для статьи.»
Можно ли по-подробней об этом?

Андрей Морковин
Можно, но чуть позже.

Василий
Андрей ваш пост как серия из современной «мыльной оперы» закончился на самом интересном месте. Жду продолжения.:)

iron-viper
Андрей Морковин — что же вы не публикуете мои комментарии?

коля
Он с Виндой возится. Вот если бы был Линукс…

WrongLane
Очень очень очень жду продолжения.
Прям вот щас бы все поставил и начал работать.
Знать бы как это все ставится…

Yuriy
Класс, хорошо, что вы пишите про это.
Всегда интересовался завести сервачок где то дома.
Нужно только за айпишку выделенную платить.
кстати, у вас на айпи, где ваш сервер, нету роутера за всем этим делом?

Андрей Морковин
Рекомендую мой видеокурс по настройке домашнего сервера: http://www.seoded.ru/webmaster/morkovin/server-svoimi-rukami.html

Андрей
ну ответе мне пожалуйста не могу разобраться куда вы устанавливали putti и как соединили две машины вместе ответ на мыло пожалуйста

Роман
с винды на винду нужен открытый порт , или лучне через нет биос, с винды на убунту допустим надо ssh пакет

okoloblog
Скажите, улучшится ли скорость загрузки сайта в в общем после утсановки линуха? Сейчас сервак на виндоузах стоит. Теряюсь, стоит ли менять…

SCRIPT
Здравствуйте! А есть уроки или что-то обучающее как собрать сам сервер?

Павел Кошкарев
Для установки Ubuntu 12.04 выбрал серверный вариант дистрибутива, дальше при установке можно поставить галочку на набор LAMP (Linux+Apache+MySQL+PHP) — все встало автоматом, при установке были заданы вопросы по размещению, паролям и т.д. Вариант готового web-сервера.
Для использования графической оболочки GNOME в системе пришлось установить ubuntu-desktop

коля
Вот это то, что надо!

Андрей Морковин
Вот и отлично.

Андрей Морковин
Из-за усиленной борьбы со спамом случайно удалил 8-мь замечательных комментариев данного поста. Прошу прощения у уважаемых читателей, потративших время на написание комментария.

Alex Riz
Ув. Андрей. Большое вам спасибо за ваш труд, очень мне нравятся ваши посты.
У меня возник вопрос, может не совсем по теме, но все же. Вот как вы считаете, на какой ОС (имеется в виду только linux дистрибутивы) лучше всего поднимать свой сервер, на полностью консольной, как archlinux например, или на той же Ubuntu с GUI?
Мне кажется, что консоль все таки на много меньше ресурсов потребляет чем графический интерфейс.
Какое ваше мнение и почему, в чем мотивация выбора того или иного варианта?

Андрей Морковин
На мой взгляд ArchLinux наиболее подходящий в качестве серверной ОС. В нем нет всех этих «упрощений», которые выходят боком, нет лишней тяжести. Все работает именно так, как вы настроили.
Но в качестве настольной ОС ArchLinux не подойдет. Слишком много необходимо произвести настроек для получения простого результата.

jhekasoft
Моя основная ОС — Arch Linux. Хотите быть счастливыми — ставте Арч. А щас пишу с Винды потому что Винда — отстой.

Алексей Кулагин
Какой сервер выбрать?
А для чего?
Если для решения серьезных задач, то по статистике, если на ошибаюсь, лидирует FreeBsd
Если в виртуалке, как у меня, вместо денвера, то не знаю, если честно.
Арч у меня не пошел, стоит ubuntu сервер, без всяких гуи, которые на сервере абсолютно не нужны, выделил под нее аж 256 метров озу, работает великолепно

Андрей Морковин
Да, есть мнение, что FreeBsd высокопроизводительная ОС, хорошо подходящая для сервера. Но сам я с ней не работал, не знаю.

Alex Riz
Мне почему-то кажется, что FreeBSD специально как серверную ОС создавали, хотя не могу утверждать точно. К сожалению, тоже с ней не имел дела все как-то руки не дойдут попробовать.
У меня лично стоит ArchLinux на VMware и в нем поднят сервер apache. Для работы очень удобно получилось. Один хост иногда открываю для доступа из интернет (для работы). Для Arch выделил 256Мб оперативной памяти, но реально он больше 15Мб не потребляет у меня. Конечно это не такой сервер на который приходят тысячи запросов, по сути только мои, для личного пользования удобно.
+ не нужно тратиться на дополнительное оборудование
все доступно с одной машины,
управление происходит так же как с любым хостингом в интернете.
— Если открыт хост для доступа из интернет, то это может являться уязвимостью не только сервера, но и хостовой ОС в которой запущен VMware

коля
FreeBSD рулит. Кстати, Arch Linux под неё заточен.

Avari
«FreeBSD рулит» — гениальный аргумент…
Лично я непосредственно с фрёй очень мало дела имел — только когда кто-то до меня сервер/роутер поднимал. Но по полученному впечатлению — она мне не нравится. Она неудобная. Конкретнее — очень раздражал по-идиотски сделанный packet filter, iptables гораздо логичнее и гибче, и идиотское обыкновение часть софта ставить не в /bin, /etc итд, а в /usr/local/bin, /usr/local/etc… Причины такого поведения я знаю, но тем не менее — оно мне так и не понравилось.
Долго работал с Gentoo Linux. Как «учебник», считаю, лучший выбор — в процессе инсталляции ты _должен_ разобраться с _основами_ работы системы — разбиением диска, настройкой grub, включением запуска установленной службы при загрузке системы… Другие дистрибутивы не дают сходу такого багажа знаний — «поставил — и работает», и в случае проблем приходится срочно изучать, скажем, grub =)
Система установки пакетов в Gentoo, кстати, очень похожа на FreeBSD — насколько я понял, автор Gentoo хотел сделать «FreeBSD с человеческим лицом» =) Можно очень гибко настраивать пакет, который при установке компилируется.
Но всё же… без дополнительных усилий (тестовый хостинг с аналогичной продакшну конфигурацией всех пакетов в системе, сборка бинарных пакетов на тестовом и апгрейд.откат при необходимости на продакшене с помощью бинарных пакетов, а не перекомпиляцией — это просто долго!) Gentoo IMHO плохо подходит и для десктопа (на котором работают, а не экспериментируют без ограничений по времени), и для хостинга. Такой вот грустный вывод…
Сейчас на ноутбуке — Lubuntu, на хостингах — Debian, и меня вполне устраивает то, что получилось. До сих пор ни разу не приходилось ничего перекомпилировать — вполне получалось обходиться в случае необходимости сторонними репозиториями. Впрочем, когда-нибудь и придётся — не вижу в этом ничего страшного. Apt-get умеет и ставить пакет исходников со всем, что нужно для сборки, и автоматически собирать из него .deb — мне больше ничего не нужно
Арч не пробовал и вообще в глаза не видел. Если там тоже все пакеты собираются из исходников (я так понял из здешних комментов) — вряд ли он подойдёт для хостинга. Если нет… Надо смотреть. Но особого желания смотреть нет — Debian меня вполне устраивает, и пока будет устраивать — смысла менять качественный рабочий инструмент не вижу.

Maisvendoo
Спасибо, это самый дельный мануал, позволивший решить 403-ю ошибку

Симон
Хотелось бы узнать, как установить нормально phpmyadmin
сервак поднят, phpmyadmin так же вроде установлен
однако по ссылке http://localhost/phpmyadmin нихрена нет… подскажите где уменя ошибка (кроме ДНК)

Андрей Морковин
Чуть позже запишу видеоурок по установке phpMyAdmin.

Алексей Кулагин
В самом конце /etc/apache2/apache2.conf допишите
Include /etc/phpmyadmin/apache.conf

Александр
Не стоит расшаривать phpmyadmin на весь хост.
У меня на VPS боты быстро пронюхали где он расположен )
И простая установка вроде aptitude install phpmyadmin не вариант, при конфигурации apache
DocumentRoot «/home/http/public_html/seoded.ru/»
ServerName «seoded.ru»
ServerAlias «www.seoded.ru»
ServerAdmin «info@seoded.ru»
ErrorLog /home/site/log/seoded.ru_error_log.log
CustomLog /home/site/seoded.ru_access_log.log combined
AssignUserId http http
Options -Indexes
php_admin_value open_basedir «/home/http/:.»
php_admin_value upload_tmp_dir «/home/http/tmp»
php_admin_value session.save_path «/home/http/tmp»

Руслан
установил phpmyadmin через терминал… работает на Ура…ошибок нету… правда нужно права доступа предоставить так как в убунту системный раздел только для чтения))

hookman
Отрадактируйте файл /etc/apache2/sites-enabled/000-default. Добавьте следующее:
Alias /phpmyadmin/ «/usr/share/phpmyadmin/».
Перезагрузите апач командой sudo /etc/init.d/apache2 restart.
Андрей, Вам отдельное спасибо за видео уроки по вёрстке! Изложено ясно, с юмором, и дикция на уровне. Особенно понравилось «особые магические вещи»

Андрей Морковин
Спасибо за спасибо

WrongLane
Вроде все по инструкции делал, а не получилось. Как запускается сервер? Автоматически? Вообще масса вопросов. Можно в личку, в джаббер например?

Андрей Морковин
Сервер запускается автоматически.

Назар
Огромное спасибо за качественный материал!!!
У меня первый день Ubuntu на виртуальной машине — хочу использовать как сервер вместо Denwer + получить навыки администрирования *nix серверов. Просмотрел кучу одинаковых! записей, но ни одна с инструкций не сработала кроме этой, ибо там были опущены две мелочи, которые для дилетантов в этом деле являются фатальными. Теперь поднял виртуальный сервер на Ubuntu Server, ещё раз спасибо за действительно хорошую статью!

Андрей Морковин
Рад помочь!

ivan
Здравствуйте! Я бы хотел попросить вас при возможности и желании сделать урок по созданию стр регистрации и входа. Заранье спасибо!

Антоша
anton@anton-virtual-machine:~$ sudo apt-get install apache2 libapache-mod-auth-mysql
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет libapache-mod-auth-mysql
Вот так вот с самого начала. Мож какой репозиторий надо добавить?

Антоша
Тьфу, мог бы сразу догадаться, что двойку надо…

Ihor
Андрію. у мене виникла ось така помилка. Я з дуру встановив спочатку lampp server, а потім і зв’язку Apache+MySQL. Тепер не можу видалити лампп. Не підскажете. як це зробии?

Alex
Хорошая статья. Кстати прошёл ваш видеокурс по вёрстке)

Дмитрий
Андрей, ждем ещё материала из рубрики ubuntu =)

b1rus
b1rus@b1rus:~$ sudo apt-get install apache2 libapache-mod-auth-mysql
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет libapache-mod-auth-mysql
Не пойму в чем проблема?

zep
Вместо sudo apt-get install apache2 libapache-mod-auth-mysql
пиши sudo apt-get install apache2 libapache2-mod-auth-mysql
глянь после libapahe добавь 2

Андрей
Доброго времени суток!
Хорошая статья, почитал, понравилось, у меня похожий сервер тоже не Ubuntu 10.04 (сервер файловый), проблема в том что не могу установить лимит выгрузки файлов, они вылетают со скоростью 10 000 Kb/s а хотелось бы 300 Kb/s, как поменять скорость, подскажите пожалуйста.
LAMP сервер (Apache+PHP+MySQL) на Linux Ubuntu

Андрей
Доброго времени суток!
Хорошая статья, почитал, понравилось, у меня похожий сервер тоже не Ubuntu 10.04 (сервер файловый), проблема в том что не могу установить лимит выгрузки файлов, они вылетают со скоростью 10 000 Kb/s а хотелось бы 300 Kb/s, как поменять скорость, подскажите пожалуйста (Общая скорость не важна, важно что бы на каждое подключение она была 300 KB/s, по каждому ip ограничение не подходит, так как есть еще провайдеры работающие с одного ip).
LAMP сервер (Apache+PHP+MySQL) на Linux Ubuntu

Сергей
Вчера поставил Ubintu 10.10
Компьютер: Ноутбук — 1,7 Проц. 1Гб ОЗУ 80Гб винт.
Как работал под Windows XP SP3 «Chip» — Я не могу сказать, что все летало, но ущербным я себя не чувствовал.
Как работает под Linux — мечтаю перейти на Windows, потому, что программы тормозят нереально, а если запустить центр приложений Ubuntu — то моно смело идти и вешаться, до Linux я не пил и не курил, с ним же думаю начать!!!

ЖекО
с 4 кедами не спорю поставил 7.10 то что посчитал нужным обновил, оставил 3 кеды работает на ура)) параметры компа : 1,1Ггц целерон 384мб оператива дим и 20гб хард пашет на ура)

изя
Целую руки создавшие эту статью. Про права апача — это божествено. У меня все вышло

SkoroDOOM
Как создать файл index.php в Midnight Commander-е?

ЖекО
touch /var/www/index.php
mcedit /var/www/index.php

oldleo46
Самое начало!
Поставил ubuntu server 10.10. Никаких оболочек нет. Настройку сети при установке пропустил. Пытаюсь установить mc. Для этого записал пакет mc-dbg_4.6.2-2ubuntu1_i386 на CD. Но не могу указать путь к диску. Запускаю из под рута apt-get install mc Далее:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет mc
Пытался разобраться в man apt-get как задать путь к ресурсу, не смог.
И еще, какой программой можно редактировать файлы в отсутствие mc.
Просьба помочь начинающему!!!

Gost
Что может быть если при вводе a2ensite test пишет
ERRoR: Site test does not exist!
хотя конфигурационный файлик с таким именем присутствует…

Павел
такая же беда , как решить проблему?

omg
Столкнулся с проблемой вроде все по ману,но при переходе в браузере по нужному адресу,получаю 403 ошибку,в эррор лог получаю вот что:
[Sat Mar 19 02:04:50 2011] [crit] [client 127.0.0.1] (13)Permission denied: /home/*****/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://kohana/

omg
Сам решил свою проблему))
Поправил права на home/username/

Иван
У меня ошибка почему то. Подскажите пожалуйста как исправить.
Reloading web server config apache2
httpd not running, trying to start
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action ‘graceful’ failed.
The Apache error log may have more information.

morhajlyk
sudo /etc/init.d/apache2 reload

Грачья
Я не подскажите где находятся настройки php mysql подключить?

Alex
Доброго времени суток!!! Очень благодарен За статью! Все подробно расписано, прям слов нет! Я сам в линуксе только начинаю осваиваться, и очень рад что есть люди которые помогают остальным))) Столько литературы перелопатил чтобы настроить Апач, но ничего не получалось. С этой статьей на ура!!!))) Большое спасибо. Только одна проблема, сайт только на самом серваке открывается))) Благо граф. интерфейс поставил… А то бы думал что не получилось))) На локальных компах под управлением ХР в глобальной сети сайт ищет… Подозреваю что проблема в /etc/hosts…
К стати был бы рад увидеть ваш материал по настройке Squid)))
Еще раз огромное спасибо!!!

snake
..cut…
ErrorLog /home//olga/sites/test/logs/error.log

snake
sudo apt-get install apache2 libapache-mod-auth-mysql
в Ubuntu 10.10 и 10.4.3 такого пакета нет
достаточно просто sudo apt-get install apache2

Filip Moris
Сделал все по написанному, не работает. с правами 750 сайт не отображается Apache выдает ошибку 403

Filip Moris
все работает

Юрий
у меня не получается установить плагины, идет закачка через ftp, который на локальном и не нужен по определению. еще с правами не получается, тоже на 750 нет доступа к папке и сайт не загружается…755 все нормально, 777 тоже все ок… как наладить загрузку плагинов, а то так и толку нет от такого хостинга?

kot488
День добрый, есть вин2003 на нем установил VWware в котором поднял ubuntu,в нем создал два сайта, имею статический реальный IP в роутере прописал прокидывать www на адрес который принадлежит Ubuntu, в хост прописал адреса, теперь вот такая проблема, на хостинге поменял в настройках ДНС А запись на свой реальный айпи, и при попытке зайти с интернета по одному из двух доменных имен мне просто показывает страницу It works, захожу в Ubuntu по имени сайта все ок, пытаюсь зайти с докальной сети на сайт пишет Не удается отобразить страницу
Объяснение: веб-сервер отказал в соединении, возможно, из-за неактивности одной из служб на вышестоящем сервере.

Шамиль
Здравствуйте! :(((( .У меня не все заработало.При наборе в браузере http://name_site выводиться not found 404. Хотя все делал в точности как у вас.И в командной строке тоже самое набирал.И никаких ошибок не было.Уже радовался что получиться, а не тут ту было.Помогите советом!

vital
подскажите, что значит такая ошибка:
Restarting web server apache2 ulimit: 88: error setting limit (Operation not permitted)
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
ulimit: 88: error setting limit (Operation not permitted)
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action ‘start’ failed.
The Apache error log may have more information.

kdvbpspr
Прочитал Вашу статью. Очень понравилось.
Подскажите, имеется доступ по FTP от имени пользователя www-data. www-data доступен ко всем папкам если для них установлены права 777.
Если это не так, то доступ (запись и т.д. не возможны).
Правильно решить эту проблему так?
sudo usermod -a -G root www-data
Заранее большое спасибо!
Заранее большое спасибо!!!

Adio_S
Unable to locate package libapache-mod-auth-mysql
Вот такая ошибка выдаётся после запуска команды установки Apache и веб-сервер не устанавливается.

Adio_S
Понятно, разобрался! В Убунту 11.10 достаточно sudo apt-get install apache2 и только так. Иначе Апчи:) не установится…

styv
Андрей, спасибо! Сегодня ваша статья помогла сэкономить кучу времени.

Павел Кошкарев
» Остается добавить пользователя www-data в группу olga. Сделать это можно командой:
sudo usermod -a -G olga www-data»
Опечатка? нужно пользователя olga в группу www-data

Vladimir
Ошибка в названии пакета libapache-mod-auth-mysql.
На самом деле пакет называется libapache2-mod-auth-mysql

Lary
Все сделал по статье. Но в браузере ничего не выдает, вообще ничего, где искать ошибку?!

Alexander
Для чего вы сделали конфигурационные файлы «template» и «test» исполняемыми???

Дима
Подскажите, пожалуйста. Установил убунту 12 и сделал все как описании выше. Выгрузил проект, настроил виртуальных хост, но в браузере пишет
«Internal Server Error» локалхост работает

Maisvendoo
Спасибо, это самый дельный мануал, позволивший решить 403-ю ошибку

артур
с каким расширением сохранять template файл?

артур
a2ensite test
ERROR: Site test does not exist!
и делал все по пунктам..(

Василий
В Linux Mint 17 Qiana делал всё точно также. При вводе в адресную строку «test» перенаправляет на «localhost». Ещё что-то нужно сделать помимо перечиленного?

Александр
Все сделал по Вашей инструкции, но при переходе по адресу http://test выдает ошибку. Подскажите что я делаю не так. Спасибо.
Forbidden
You don’t have permission to access /
on this server.
Apache/2.4.7 (Ubuntu) Server at test Port 80

Александр Тарасов
Ребята мне кажется эта статья актуальна для Apache 2.2! Для того чтобы всё заработало в Apache 2.4 нужно внести следующие изменения:
1. Переименовать в каталоге /etc/apache2/sites-available файл test в test.conf.
2. Изменить содержание файла test.conf:
ServerName test
# ServerAlias seoded.ru
ServerAdmin webmaster@seoded.ru
DocumentRoot /home/username/sites/test/www
Options -Indexes +FollowSymLinks +MultiViews # Здесь добавил два плюсика
AllowOverride All # Здесь помогла статья https://httpd.apache.org/docs/trunk/upgrading.html
Require all granted
ErrorLog /home/username/sites/test/logs/error.log
LogLevel warn
ServerSignature On
Кстати! Права доступа к error.log у меня сразу были rwxr—r—

Trisquel GNU/Linux 7.0

Максим
Options -Indexes FollowSymLinks MultiViews
замените на
Options -Indexes +FollowSymLinks +MultiViews
ругается

Сергей
Огромное спасибо! статья написана очень толково , и для меня , как начинающего — очень помогла.

 

⇓ 

Поделись ссылкой на Seoded.ru с друзьями, знакомыми и собеседниками в соцсетях и на форумах! А сам сайт добавь в закладки! Так победим.

Поделиться ссылкой на эту страницу в:

 

Полезные ссылки:

Как сделать PBN своими силами и подешевле Проверить на оригинальность текст онлайн, посмотреть уникальность и ошибки

 


основан в 2008 г. © Все права на материалы сайта Seoded.ru принадлежат Алексею Вострову.
Копирование (полное или частичное) любых материалов сайта возможно только с разрешения автора и при указании ссылки на источник.
Ослушавшихся находит и забирает Бабайка!