Налаштування apache 2 + nginx + php 5 + MySQL + memcached + eaccelerator в Debian
Отже, сьогодні я розкажу вам як підняти Веб сервер на слабенькому комп'ютері або VDS / VPS. Для того, щоб приступити до налаштування серверу ознайомтесь з LAMP.
Для роботи з сервером використовую VDS від infiumhost.com такої конфігурації.
VDS-Mini: 900 Мгц, 256 Мб, 12 Гб, Debian 5.0
Ну що для початку оновим нашу систему.
aptitude update
aptitude upgrade
Встановлюєм функцію WGET, якщо вона відсутня
aptitude install wget make
Встановлюєм WebMin для зручнішої навігації по серверу (після установки він доступний за адресою https://ваш адреса:10000)
dpkg --install webmin_1.550_all.deb
Встановлюєм SHH
aptitude install ssh openssh-server
Встановлюэм g++
aptitude install g++
Тепер нам потрібно встановити LAMP
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):
Редагуєм конфіг по замовчуванню, і далі від нього і відштовхуємося при створенні віртуалхостів:
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>
Робимо посилання на наш файл в папці /etc/apache2/sites-enabled/
Редагуєм файл 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
Далі налаштовуємо віртуальний хост Апачу:
Копіюєм дефолтновий конфіг і редагуєм під себе
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.
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"
Перезапускаєм наш сервер:
/etc/init.d/apache2 restart
/etc/init.d/nginx restart
/etc/init.d/memcached restart
Ось і наш севре готовий, надіюсь дана стаття допомогла вам.