Debian 6 — Nginx + PHP-FPM + MySQL + Eaccelerator + Memcached + IonCube

nginx_php

Шпаргалка по установке Nginx, PHP-FPM, MySQL, Eaccelerator, Memcached, IonCube для тех кто не любит Apache или для меньшего потребления системных ресурсов при больших нагрузках.


Сначала обновим репозитории:

root@computer:$ apt-get update

Установим файл менеджер MidnightCommander, редактор Nano и менеджер пакетов Aptitude:

root@computer:$ apt-get install nano mc aptitude

Удалим Apache если он установлен:

root@computer:$ apt-get purge apache*

Установим пакеты нужные для сборки и установки других пакетов, которые будем устанавливать в дальнейшем:

root@computer:$ apt-get install build-essential libpcre3-dev openssl libcurl4-openssl-dev
root@computer:$ aptitude install python-software-properties

Добавим репозиторий для установки nginx:

root@computer:$ add-apt-repository ppa:nginx/stable

Если не работает команда add-apt-repository то выполним следующие действия:

root@computer:$ cd /tmp
root@computer:$ wget http://pawned.ru/sites/default/files/files/add-apt-repository.sh.txt
root@computer:$ cp add-apt-repository.sh.txt /usr/sbin/add-apt-repository
root@computer:$ chmod o+x /usr/sbin/add-apt-repository
root@computer:$ chown root:root /usr/sbin/add-apt-repository

И снова выполняем

root@computer:$ add-apt-repository ppa:nginx/stable

Устанавливаем Nginx:

root@computer:$ apt-get update
root@computer:$ apt-get install nginx
root@computer:$ /etc/init.d/nginx start

Добавим репозиторий PHP 5.3

root@computer:$ add-apt-repository ppa:brianmercer/php
root@computer:$ aptitude update
root@computer:$ aptitude install php5-fpm php5-dev php5-mysql php5-curl php5-gd php5-mcrypt php5-xmlrpc php5-xsl php5-common php5-json php5-memcache php5-cli php5-suhosin php5-cgi php-pear php-apc
root@computer:$ /etc/init.d/php5-fpm restart

Настраиваем конфиг Nginx:

root@computer:$ nano /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 {
    server_names_hash_bucket_size 64;
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    access_log  /var/log/nginx/access.log;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;
 
gzip  on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
 
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Перезапускаем nginx.

root@computer:$ /etc/init.d/nginx restart

Отредактируем конфиг fastcgi:

root@computer:$ nano /etc/nginx/fastcgi_params

закомментируем строку

#fastcgi_param  HTTPS                   $https;

Перезапускаем nginx.

root@computer:$ /etc/init.d/nginx restart

Создаем конфиг для домена, заменяя в конфиге your-site.com на имя вашего домена:

root@computer:$ nano  /etc/nginx/sites-enabled/your-site.com
server {
	listen 80;
	charset utf-8;
 
        server_name your-site.com www.your-site.com;
 
        access_log  /var/log/nginx/your-site.com/access.log;
        root /var/www/your-site.com;
 
        location / {
                index  index.php index.html index.htm;
        }
 
        if ($host = 'www.your-site.com' ) {
                rewrite ^(.*)$ http://your-site.com$1 permanent;
        }
 
        if ($request_uri ~* (/cache/|uploads.+\.php)) {
                return 404;
        }
 
        if (!-e $request_filename) {
                rewrite ^(.+)$ /index.php?q=$1 last;
        }
 
		location ~ /\.ht { return 403; }
 
        location ~* ^.+\.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME /var/www/your-site.com$fastcgi_script_name;
                fastcgi_param DOCUMENT_ROOT /var/www/your-site.com;
                include fastcgi_params;
        }
 
}

Создадим директорию для домена и для логов, заменяя your-site.com на имя вашего домена:

root@computer:$ mkdir /var/log/nginx/your-site.com
root@computer:$ chmod 0755 /var/log/nginx/your-site.com
root@computer:$ mkdir /var/www/your-site.com
root@computer:$ chmod 0755 /var/www/your-site.com

Перезапускаем nginx.

root@computer:$ /etc/init.d/nginx restart

Ставим Eaccelerator:

root@computer:$ cd /tmp
root@computer:$ wget https://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
root@computer:$ tar xvfj eaccelerator-0.9.6.1.tar.bz2
root@computer:$ cd eaccelerator-0.9.6.1

Изменим версию PHP:

root@computer:$ nano /usr/include/php5/main/php_version.h

закомментируем следующие строки:

/* #define PHP_EXTRA_VERSION "-7+squeeze14" */
/* #define PHP_VERSION "5.3.3-7+squeeze14" */

и добавим

#define PHP_EXTRA_VERSION "-1ubuntu4.7ppa5~lucid1"
#define PHP_VERSION "5.3.2-1ubuntu4.7ppa5~lucid1"

Переходим к установке:

root@computer:$ phpize
root@computer:$ ./configure
root@computer:$ make
root@computer:$ make install

Создаем конфиг для eaccelerator:

root@computer:$ nano /etc/php5/conf.d/eaccelerator.ini
extension="eaccelerator.so"
eaccelerator.shm_size="32"
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="3600"
eaccelerator.shm_prune_period="1800"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
root@computer:$ mkdir -p /var/cache/eaccelerator
root@computer:$ chmod 0777 /var/cache/eaccelerator

Перезапускаем nginx.

root@computer:$ /etc/init.d/php5-fpm restart

Устанавливаем Memcached:

root@computer:$ apt-get install memcached

Перезапускаем nginx.

root@computer:$ /etc/init.d/php5-fpm restart

Устанавливаем IonCube:

root@computer:$ cd ..
root@computer:$ wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
root@computer:$ tar zxvf ioncube_loaders_lin_x86.tar.gz
root@computer:$ mv ioncube /usr/local/

Добавляем в конфиг путь до IonCube:

root@computer:$ nano /etc/php5/conf.d/eaccelerator.ini

в конец файла добавляем следующую строку:

zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so

Перезапускаем nginx:

root@computer:$ /etc/init.d/php5-fpm restart

Устанавливаем MySQL:

root@computer:$ apt-get install mysql-server

Во время установки указываем пароль для mysql

И после установки перезапускаем nginx:

root@computer:$ /etc/init.d/php5-fpm restart

Готово!

One Comments

  • ykpon

    18.01.2013

    «И после установки перезапускаем nginx:
    root@computer:$ /etc/init.d/php5-fpm restart »
    И так в нескольких строках 🙂

    Reply

Добавить комментарий