Установка веб-сервера на Ubuntu 12.x

Подготавливаем локальный веб-сервер для разработки на Ubuntu 12.x.

31.12.2012
4 комментария
4 мин.

В данной записи я расскажу как поставить веб-сервер на абсолютно чистую Ubuntu.

I. Устанавливаем веб-сервер

Для начала нам нужно установить Apache, PHP, MySQL, phpMyAdmin. Открываем терминал (CTRL+ALT+T) и пишем:

sudo apt-get install apache2 php5 phpmyadmin mysql-server

После небольшого ожидания, выйдет вопрос: «Продолжать установку или нет?», а также количество необходимого места на жестком диске. Если Вы еще не передумали, пишем либо «Д», либо «Y» и жмем Enter. После того как все будет загружено и установлено, откроется настройка MySQL в котором предложат установить пароль. Если сервер будет для локального использования, то просто ставьте root и в логине и пароле. Такое точно не забыть. После ввода пароля, нам предложат настроить phpMyAdmin, а именно, предложат выбрать тип веб-сервера для автоматической настройки. Нас интересует «apache». Если он выделен красной точкой, то просто жмем Enter и идем дальше. Далее пойдут вопросы на разрешение автоматической настройки. Если не хотите настраивать руками, и нет в этом острой необходимости, то просто жмем «ДА». И последней настройкой будет пароль для phpMyAdmin. Вводим, жмем Enter. Всё, на этом веб-сервер установлен. Далее надо проделать некоторые настройки для корректной работы.

II. Настраиваем веб-сервер

Первое что мы сделаем — это укажем что наш сервер будет доступен по адресу http://localhost/. Для этого открываем терминал и вводим следующую команду:

sudo gedit /etc/apache2/httpd.conf

У нас откроется текстовый редактор, в котором ничего не будет, поэтому пишем в него: ServerName localhost .

Далее сохраняем и закрываем редактор. Теперь делаем ярлык на phpMyAdmin, чтобы он был доступен по адресу http://localhost/phpMyAdmin/. Для этого в терминале пишем:

sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

После чего, нам необходимо включить modRewrite, чтобы в Drupal работали «чистые ссылки» (ЧПУ). В терминале пишем:

sudo a2enmod rewrite

Завершающим этапом будет рестарт apache командой в терминале:

sudo /etc/init.d/apache2 restart

На этом все. Ваш веб-сервер доступен по адресу http://localhost/, зайдя по данному адресу вы должны увидеть сообщение «It works!», а зайдя по адресу http://localhost/phpMyAdmin увидеть интерфейс phpMyAdmin. В принципе, с ним уже можно работать. Все файлы лежат в /var/www/. Там уже должен быть файл index.html (It works!) и ссылка на phpMyAdmin.

III. Создание адресов для сайтов (алиасов)

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

sudo mkdir /var/www/public_html

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

#!/bin/bash

echo -n "Введите имя создаваемого хоста: " 
read newHost 

newPath="/var/www/public_html/$newHost" 
mkdir $newPath 

# Производим запись в hosts.
file="/etc/hosts" 
b=$(cat $file) 
newContent="127.0.0.1   ${newHost}"$'\n'"127.0.0.1  www.${newHost}"$'\n'$b 
sudo bash -c "echo '${newContent}' > $file" 

# Добавляем сайт в sites-available и прописываем в него нужные директивы.
sap=/etc/apache2/sites-available/$newHost 
sudo touch $sap 
sudo chmod 777 $sap 
directives="<virtualhost> 
ServerName ${newHost} 
ServerAlias ${newHost} www.${newHost} 
DocumentRoot ${newPath} 
<directory></directory> 
AllowOverride All 

</virtualhost>" 
echo "$directives">$sap 

# Включаем виртуальный хост.
sudo a2ensite $newHost 

# Перезапускаем сервер. 
sudo /etc/init.d/apache2 restart

Запускаем скрипт как приложение через терминал, вводим адрес, например drupal.dev (без HTTP и WWW). Теперь зайдя на http://drupal.dev/ (или http://www.drupal.dev/) вы увидите то что хранится в папке по адресу /var/www/public_html/drupal.dev. К примеру можно кинуть туда файл index.html. P.s. Можно, и нужно (в случае работы с Drupal) установить curl. В терминале пишем:

sudo apt-get install php5-curl
sudo /etc/init.d/apache2 restart

На данную конфигурацию, Drupal устанавливается и работает успешно. Единственное на что стоит обращать внимание, это на скрытые файлы (.htaccess) и права доступа.

Для Drupal 7

Для того чтобы можно было загружать файлы на сайт нужно прописать:

sudo chown www-data:www-data -R /var/www/drupal/sites

Где адрес - адрес до папки sites конкретного сайта. Это значит что для каждого сайта это необходимо проделывать отдельно.

Прикрепленные файлы
Скрипт добавления алиасов — add_alias.sh.zip, 728 байт
Скрипт добавления алиасов Ubuntu 13.10 — add_alias_indomain13-10.sh.zip, 730 байт
Linux
Ubuntu
Веб-сервер

Комментарии

Илья   пн, 29/04/2013 - 04:36

Добрый день.

Советую включить модуль для Apache vhost_alias. Он нужен для динамического добавления виртуальных хостов без перезапуска Apache. Это гораздо удобнее, чем каждый раз прописывать настройки для каждого хоста отдельно.

Пример конфигурационного файла /etc/apache2/mods-enabled/vhost_alias.conf:

<IfModule vhost_alias_module>

  # UseCanonicalName: Определяет как Apache строит внутренние URL-ссылки и
  # значения переменных SERVER_NAME и SERVER_PORT. Когда задано "Off", Apache
  # использует имя и порт, данные клиентом. Если же задано "On", то Apache
  # использует значение директивы ServerName.
  UseCanonicalName Off

  # Создаем лог-файл доступа в котором будет не только ip-адрес,
  # но и хост, к которому пытались обратится
  #<IfModule log_config_module>
  #  LogFormat "%V %h %l %u %t "%r" %s %b" vcommon
  #  CustomLog logs/access_log.log vcommon
  #</IfModule>

  # Разрешим доступ к содержимому виртуальных хостов
  # если этого е сделать, то получим access forbidden
  # поскольку по умолчанию работает правило
  # order deny,allow
  # deny from all
  <Directory /var/www/*>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  VirtualDocumentRoot /var/www/%0
  #VirtualScriptAlias /var/www/%2+

</IfModule>

 

 

Илья   пн, 29/04/2013 - 04:43

Ещё один момент:  чтобы при включённом vhost_alias работал модуль mod_rewrite, в .htaccess сайта, лежащего в каталоге виртуального хоста, нужно раскомментировать (для Drupal) или вписать строку RewriteBase /

Sizgan   чт, 06/08/2015 - 20:36

Не знаю, в тему будет или нет, но все же подчеркну один момент, который часто возникает на форумах Ubuntu.
Вопрос выглядит примерно так обычно: "Святые хомячки, установил все как в гайде, но папок и файлов не видит, а если видит, то не устанавливается..." и в таком же духу...
Ответ примерно одинаков: "Не всегда, но в большинстве случаев топорной установки сервера на Ubuntu, автоматом права на папки и файлы ставятся без учета возможности записи. Берем любой ftp клиент (это проще всего) и на директории пеняем права, чтобы запись была доступна, к примеру 777. Но это если выделаете у себя на компе, если выходите в глобальную сеть с провами осторожней быть надо. А то откроете то, что не стоит открывать и все, дыра с размером Техас".