Содержание
Решил оформить наконец своё HOW-TO на форуме в нашей вики, т.к. это правильнее и форматирование здесь удобнее. Я постарался изложить материал кратко, намеренно упустив подробности, которые не относятся напрямую к сути (вроде того, что конфиги сервера нужно править от рута). Считаем, что читатель имеет базовый уровень работы с линукс-системами.
Просьба к редакторам тоже там отписываться
Базовая установка и настройка веб-сервера
Установка
apt-get install lamp-server^ phpmyadmin
phpmyadmin - веб-интерфейс для управления БД MySQL.
Настройка Apache
Персональные настройки
Начиная с версии Ubuntu Saucy (13.10) свои настройки следует писать в /etc/apache2/conf-available, активировать настройки следует с помощью команды a2enconf.
## Файл персональных настроек веб-сервера Apache ## Чтобы устранить предупреждение при перезапуске Apache (хотя в целом на производительности это не отразится) ServerName localhost ## Для того, чтобы Apache интерпретировал php и не предлагал сохранить php-файл AddType application/x-httpd-php .php .phtml ## Установка кодировки UTF-8 по умолчанию AddDefaultCharset UTF-8
service apache2 restart
Настройка виртуальных хостов
Есть несколько способов, я же расскажу о том как повесить несколько виртуальных хостов на один IP c доступом к ним по имени сервера.
- В /etc/hosts прописываем наши хосты:
127.0.0.1 host2.server1 host1.server1
- Идём в /etc/apache2/sites-available
и создаём там файлы, названиями которых будут названия, создаваемых серверов, например host1.server1.conf и host2.server1.conf в эти файлы пишем (здесь показано простейшее, подробнее можно заценить в файле default):
<VirtualHost *:80> ServerName host1.server1 DocumentRoot /var/www/host1.server1 <Directory /var/www/host1.server1> AllowOverride All </Directory> </VirtualHost>
<VirtualHost *:80> ServerName host2.server1 DocumentRoot /var/www/host2.server1 <Directory /var/www/host2.server1> AllowOverride All </Directory> </VirtualHost>
- Далее создаём симлинки на эти файлы в директории /etc/apache2/sites-enabled с помощью команды a2ensite:
a2ensite host1.server1 host2.server1
- Перезапускаем Apache, пробуем в браузере открыть хосты
http://host1.server1 http://host2.server1
Твики и трюки
Ускоряем сервер (Opcode Cacher)
Акселератор PHP — программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.
http://ru.wikipedia.org/wiki/Акселератор_PHP
Выключаем автозапуск apache2 и mysql
Выключаем автозапуск 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;