Это старая версия документа.
Содержание
Решил оформить наконец своё HOW-TO на форуме (http://forum.ubuntu.ru/index.php?topic=52552.0) в нашей вики, т.к. это правильнее и форматирование здесь удобнее. Я постарался изложить материал кратко, намеренно упустив подробности, которые не относятся напрямую к сути (вроде того, что конфиги сервера нужно править от рута). Считаем, что читатель имеет базовый уровень работы с линукс-системами.
Базовая установка и настройка веб-сервера
Установка
apt-get install apache2 php5 php5-mysql mysql-server phpmyadmin
php5 - интерпретатор языка php
php5-mysql - для работы с мускулем из php
mysql-server - СУБД MySQL
phpmyadmin - веб-интерфейс для управления БД MySQL.
Настройка Apache
Персональные настройки
## Файл персональных настроек веб-сервера 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 и host2.server1 в эти файлы пишем (здесь показано простейшее, подробнее можно заценить в файле default):
<VirtualHost *:80> ServerName host1.server1 DocumentRoot /home/thunder/www/host1.server1 <Directory /home/thunder/www/host1.server1> AllowOverride All </Directory> </VirtualHost>
<VirtualHost *:80> ServerName host2.server1 DocumentRoot /home/thunder/www/host2.server1 <Directory /home/thunder/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 интерпретатором путём кэширования их байткода.
APC
apt-get install php-apc
Файл настройки /etc/php5/apache2/conf.d/apc.ini. Установки по рекомендациям CMS 1C-Битрикс:
extension=apc.so realpath_cache_size=4096k apc.ttl=1 apc.max_file_size=4M
XCACHE
apt-get install php-xcache
Файл настройки /etc/php5/apache2/conf.d/xcache.ini. Установки по рекомендациям CMS 1C-Битрикс:
realpath_cache_size = 4096k xcache.size = 40M xcache.slots = 8K xcache.ttl = 1
Также можно указать число ядер вашего процессора:
xcache.count = 2
понятно, что это для 2-х голового.
Выключаем автозапуск 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;