РЕГИОНАЛЬНЫЙ ЦЕНТР ОБРАБОТКИ ИНФОРМАЦИИ

Амурский областной институт развития образования

Настройка apache 2 + nginx + php 5 + MySQL + memcached + eaccelerator + sphinx в Ubuntu

 Автор http://rubuntu.ru/blog/server/435/nastrojka-apache-2-nginx-php-5-mysql-memcached-eaccelerator-sphinx-v-ubuntu.html

rubuntu.ru/blog/server/435/nastrojka-apache-2-nginx-php-5-mysql-memcached-eaccelerator-sphinx-v-ubuntu.html

 

Итак сегодня я раскажу вам как поднять Веб сервер на маломощном компьютере или VDS / VPS

Мной был взят сервер VDS в конфигурации CPU 480 MHz, RAM 256 Mb, HDD 8 Gb (Ubuntu Server 9.04).

Делаем начальные действия необходимые нам для дальнейшей работы:

выставим пароль 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


Доставим 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> 


Делаем ссылку на наш файл в папке /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


Далее настраиваем виртуальный хост 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


Вуаля у нас супершустрый сервер который кушает 90мб оперативной памяти.

Для тех кому нужен sphinx (free open-source SQL full-text search engine)

wget http://www.sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz tar –xzvf sphinx-0.9.8.tar.gz cd sphinx-0.9.8 ./configure make make install mkdir -p /var/db/sphinx/log chmod -R 777 /var/db/ mkdir -p /usr/local/SphinxIndex chmod -R 777 /usr/local/SphinxIndex/

и правим конфиг под свои нужды:
nano /usr/local/etc/sphinx.conf


Вроде ничего незабыл…
13344 просмотра
Теги: ubuntu, ngnix, apache

Комментарии 1


Единый государственный экзамен в Амурской области. Сайт РЦОИ.
На нашем сайте Вы можете узнать результаты ЕГЭ в Амурской области. Просмотреть информацию о нормативно-правовой базе по ГИА, ОГЭ, наглядные материалы для пропаганды честного единого государственного экзамена. Если Вы являетесь выпускником образовательной организации Амурской области, то можете позвонить нам по телефону, указанному на странице "Контакты" и уточнить интересующую Вас информацию о государственной итоговой аттестации в 9 или 11 классах. На нашем сайте присутствуют ссылки для перехода на официальные сайты, посвящённые ЕГЭ и ГИА(ОГЭ). Демонстрационные варианты по ГИА-9 и ГИА-11 присутствуют на сайте ФИПИ, там же есть ссылки на экзаменационный банк заданий, в котором присутствуют ссылки на задания прошлых лет и даже текущего года. Изучайте, решайте и учитесь. Если Вас интересует что-либо, то можете задать вопрос в разделе "Вопросы и ответы". В данном разделе существует много ответов на заданные вопросы выпускников прошлых лет. Изучив раздел полностью, Вы с большей долей вероятности можете найти ответы на вопросы. Надеемся, что информация, размещённая на сайте, поможет Вам успешно сдать экзамены.
Яндекс.Метрика