В данной записи я расскажу как поставить веб-сервер на абсолютно чистую 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 конкретного сайта. Это значит что для каждого сайта это необходимо проделывать отдельно.
Спасибо за совет.