- Русский
- English
Настройка WEB сервера
Собственно весь путь тут по порядку, потом может напишу подробнее
Все ставилось на Debian 5 minimal
apt-get install apache2 libapache2-mod-php5 mysql-server php5 php5-tidy php5-xsl phpmyadmin mc
по желанию можно еще чего добавить, например:
php5-gd php5-imagick php5-pspell php5-recode php5-xmlrpc php5-mcrypt php5-memcache php5-curl php-pear php5-imap php5-snmp
в конфигурационном файле /etc/my.cnf для того,
чтобы настроить mysql стандартной сборки на работу
с кодировкой utf8 по умолчанию без всякой перекомпиляции.
В раздел [mysqld] необходимо добавить следующее:
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect=«SET NAMES utf8»
skip-character-set-client-handshake
Две последние строки принудительно устанавливают кодировку utf8 для всех запросов.
В раздел [mysqldump] достаточно добавить только
default-character-set=utf8
//chown -hR www-data /var/www это не надо, это так для памяти :)
cd /
mkdir -m 755 web
Далее заменяем «site1» на, например, доменное имя сайта
useradd site1 -b /web/ -m -U -s /bin/false
passwd site1
chmod 754 /web/site1
mkdir -p -m 754 /web/site1/public_html/www
mkdir -p -m 777 /web/site1/tmp
chmod +t /web/site1/tmp
chown -R site1:site1 /web/site1/
Заменим индейца на модифицированого, чтоб у каждого сайта свой пользователь был и апач под этим пользователем работал, чтоб не повадно было лазить другим сайтам в чужие папки.
apt-get install apache2-mpm-itk
Он хочет удалить апачу! Ничо страшного, он поставит другую, соглашаемся.
usermod -s /bin/false www-data
в /etc/apache/site-available
создаем файл site1 со следующим содержанием
Код - пример #1 | |
1 |
<VirtualHost *:80> DocumentRoot "/web/site1/public_html/www/" ServerName "site1" ServerAlias "www.site1" ErrorLog /web/site1/error_log CustomLog /web/site1/access_log combined AssignUserId www-data site1 php_admin_value open_basedir "/web/site1/:." php_admin_value upload_tmp_dir "/web/site1/tmp" php_admin_value session.save_path "/web/site1/tmp" </VirtualHost> |
Далее команда «включения сайта»
a2ensite site1
и релоад апача
/etc/init.d/apache2 reload
Ох, забыли добавить модули :)
a2enmod headers.load
a2enmod rewrite.load
Ну и опять релоад, хотите рестарт или стоп-старт, но так грубее.
Теперь победим беду с отправкой почты
/etc/php5/apace2/php.ini [раскомментируем и изменим строку]
++ sendmail_path = /usr/sbin/exim4 -t
dpkg-reconfigure exim4-config
Теперь поставим "очень секретный" фтп сервер, а то как мы будем заливать файлы на наш сайт?
apt-get install vsftpd
Отредактируем /etc/vsftpd.conf сделаем его примерно таким, ну или оригинал отредактируем. Оригиналы конечно лучше сохранять, переименовав, например /etc/vsftpd.conf в /etc/vsftpd.conf.orig
/etc/vsftpd.conf | |
1 |
listen=YES # Запрещаем анонимный доступ anonymous_enable=NO # Открываем локальным пользователям доступ к домашним директориям по FTP local_enable=YES # Разрешаем команды на запись write_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to our FTP service. # "Запираем" пользователей в домашних папках chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem |
Релоадим сервис
/etc/init.d/vsftpd reload
Добавим в /etc/shells строку если ее нет, а то фиг а не ftp будет, мы же назначили у пользователей такой, никакой, шел.
/bin/false
Вродивсе...
А нет!
Добавлю:
уменьшаем занимаемую процессами память, для этого уменьшаем стек
ulimit -s делаем ulimit -s 128 (в килобайтах, может этого мало, по умолчанию вроде 8 мегабайт)
так у меня упала загрузка памяти (100Мб) с 54-61% до 36%