Делаем начальные действия необходимые нам для дальнейшей работы:
выставим пароль root и зайдем под ним
sudo passwd root su
обновим информацию о пакетах, и обновим систему
aptitude update aptitude upgrade
доставим wget если ставились в минималке
aptitude install wget make поставим webmin дабы было удобнее приглядывать за сервером (после установки он доступен по адресу https://ваш адрес:10000)
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.490_all.deb (версию подставляйте свежую на момент своих действий) dpkg -i webmin_1.490_all.deb aptitude -f install
Поставим SSH если он ещё не установлен
aptitude install ssh openssh-server[/bash]
Доставим g++ он пригодится в дальнейшем:
aptitude install g++
С подготовительной частью закончили, ставим веб сервер.
Установка apache2 + phph5 + mysql + phpmyadmin одной строкой:
aptitude install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl phpmyadmin
По ходу установки вводим пароль пользователя сервера Mysql (root):
New password for the MySQL «root» user: < — yourrootsqlpassword ВАШ ПАРОЛЬ
Repeat password for the MySQL «root» user: < — yourrootsqlpassword ЕЩЕ РАЗ ВАШ ПАРОЛЬ
Разрешаем модули апача:
a2enmod ssl a2enmod rewrite a2enmod suexec a2enmod include
правим конфиг сайта по умолчанию, и далее от него и отталкиваемся при создании виртуалхостов:
nano /etc/apache2/sites-available/default (все стираем и делаем так, ну и всетки думаем что делаем, ибо под вашу задачу могут быть отличия)
(порт 81 это не ошибка, так и должно быть, ибо слушать 80й порт у нас будет nginx, и в апачь передавать только запросы на динамику(php и др)):
<VirtualHost *:81>
ServerAdmin webmaster@твой_сайт
DocumentRoot /var/www/твой_сайт
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
правим в двух местах nano /etc/apache2/apache2.conf
MaxClients 20
Ставим nginx + apache2-mod-rpaf
wget http://ftp.de.debian.org/debian/pool/main/n/nginx/nginx_0.7.62-1_i386.deb dpkg -i nginx_* aptitude install libapache2-mod-rpaf
nano /etc/apache2/ports.conf
NameVirtualHost *:81 Listen 81
Далее настраиваем виртуальный хост apache.
Копируем дефолтный конфиг: (и правим его под свой домен)
cd /etc/apache2/sites-available cp ./default /etc/apache2/sites-enabled/example.com
Настраиваем gzip сжатие для nginx. И сам nginx (worker_processes 1; ставим равному количеству ядер в процессоре). Открываем конфиг:
nano /usr/local/etc/nginx/nginx.conf
все стираем и делаем так:
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 64;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_proxied any;
gzip_min_length 1100;
gzip_http_version 1.0;
gzip_buffers 4 8k;
gzip_comp_level 9;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Для нашего виртуалхоста создаем новый конфиг:
nano /etc/nginx/sites-enabled/example.com
server {
listen 80;
server_name example.com;
access_log /var/log/nginx.access_log;
location ~* .(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /var/www/test.gigma.ru/;
index index.html index.php;
access_log off;
expires 30d;
}
location ~ /.ht {
deny all;
}
location / {
proxy_pass http://127.0.0.1:81/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
}
С такими настройками nginx у нас отдаёт всю статику (картинки, видиое, музыку, css, ява скрипты и др.), а апачь трудиться только над выполнением php.
Устанавливаем memcached:
aptitude install memcached
Устанавливаем eAccelerator.
Так же тянем php5-dev, т.к. нам понадобится утилита phpize.
aptitude install php5-dev aptitude install make cd /tmp/ wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2 tar xvjf eaccelerator-0.9.5.3.tar.bz2 cd eaccelerator-0.9.5.3 phpize ./configure --enable-eaccelerator=shared make make install
Создаем папку кеша:
mkdir -p /var/cache/eaccelerator chmod 0777 /var/cache/eaccelerator
Редактируем конфиг PHP:
nano /etc/php5/apache2/php.ini
Добавляем строки в самом верху:
[PHP] ; eAccelerator configuration ; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension ; If you are using a thread safe build of PHP you must use ; zend_extension_ts instead of zend_extension extension = "eaccelerator.so" eaccelerator.shm_size = "16" eaccelerator.cache_dir = "/var/cache/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.allowed_admin_path = "/var/www/eaccelerator"
Перезапускаем сервисы:
service apache2 restart service nginx restart service memcached restart
Dear Author bukashk0zzz.org.ua !
Matchless theme, it is very interesting to me
У меня заработало спасибо афтору!!!!
Я бы добавил:
nano /etc/apache2/ports.conf
1.NameVirtualHost 127.0.0.1:81
2.Listen 81
И соответственно в конфиге виртуального хоста:
Чтобы напрямую на 81 порт из мира не лазили…
Не делал так потому как Использую такую штуку как apache status. http://bukashk0zzz.org.ua/nix/server-status-for-apache2
А вобще правильно подмечено. Кому не нужен доступ с мира правильно делать так. Спасибо за заметку.
И не мешало бы в конфигурацию virtualhost Apache добавить директиву ServerName
Не понимаю