1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Установка и настройка nginx с php-fpm CentOS {MyWay}

Discussion in 'Хостинг' started by dream, Feb 23, 2011.

  1. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    Welcom dear user! :DКак известно, самый лучший способ экономии оперативной памяти на VPS для хостинга для своих сайтов - это установка nginx с php-fpm. Рассмотрим, как это можно сделать на VPS с CentOS 5 (5.5), используя общедоступные репозитории CentOS 5 для простого обновления софта.:cool:

    Используем для этого репозиторий centalt. Итак, приступим:

    1. Обновляем систему на сервере:
    Code:
    yum -y update
    2. Устанавливаем centalt репозиторий:
    Code:
    rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
     rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

    3. Устанавливаем nginx, php-fpm, vsftpd, phpMyAdmin, mysqld:
    Code:
     yum install nginx php-fpm php-gd php-mysql mysql-server vsftpd
    4. Создаем пользователя на vps, от которого будем заливать файлы по ftp на сервер:
    Добавляем в /etc/shells шелл /bin/date:

    Code:
    echo "/bin/date" >>/etc/shells
    Определим id пользователя nginx:

    Code:
    id nginx
    Получим:

    uid=103(nginx) gid=103(nginx) groups=103(nginx)

    Нас интересует uid. Таким образом, создаем пользователя:

    ftpuser - логин ftp-пользователя
    пароль - желаемый пароль

    5. Установим пароль root mysql-сервера, так как будем использовать phpMyAdmin с ограничением по паролю пользователя mysql:

    Code:
    chkconfig mysqld on
     service mysqld start
     mysql_secure_installation
    Там пишем два раза желаемый пароль root mysql, со всем соглашаемся.

    6. Настраиваем vsftpd:

    Code:
    chkconfig vsftpd on
    nano /etc/vsftpd/vsftpd.conf
    Редактируем там:

    anonymous_enable=YES на anonymous_enable=NO

    Это запретит анонимный ftp.

    Добавляем:

    Code:
    chroot_local_user=YES
    Это запретит ftp-пользователю заходить ниже домашней дирректории.

    Запускаем ftp сервер:

    Code:
    service vsftpd start
    7. Настраиваем php-fpm:

    Code:
    chkconfig php-fpm on
    nano /etc/php-fpm.conf
    Там заменяем 2 строки:
    Code:
     <value name=”user”>nobody</value> 
     <value name=”group”>nobody</value> 
    На:
    Code:
    <value name=”user”>nginx</value>
    <value name=”group”>nginx</value>
    Запускаем php-fpm:
    Code:
    service php-fpm start

    8. Настраиваем nginx:
    Code:
    chkconfig nginx on
    
    Code:
    nano /etc/nginx/nginx.conf
    Корректируем примерно так ( невкоем случае не копипастим отсюда!):

    Code:
    =======
    user nginx;
    worker_processes 1;
    
    events {
           worker_connections 1024;
    }
    
    http {
           include mime.types;
           default_type application/octet-stream;
    
           server {
                  listen 80;
                  server_name site.name www.site.name;
    
                  location / {
                             root /home/ftpuser/site.name;
                             index index.php index.html index.htm;
                  }
    
                  error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
                  root /usr/local/www/nginx-dist;
            }
    
            location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param script_FILENAME /home/ftpuser/site.name$fastcgi_script_name;
            include fastcgi_params;
    }
    ========
    Здесь в worker_processes пишем колличество cpu в системе(у нас 1), site.name - это имя сайта, который
    мы будем хостить на сервере, ftpuser - пользователь ftp.
    Запускаем nginx:
    Code:
    service nginx start
    9. Делаем так, чтоб phpMyAdmin был нам доступен по адресу [http://site.name/myadmin:]
    Code:
    ln -s /usr/share/phpMyAdmin /home/ftpuser/site.name/myadmin
    10. После этого заходим на созданный нами ftp, используя данные, которые мы прописали в пункте 4, делаем
    дирректорию site.name и заливаем в нее контент сайта. Также, используя данные доступа root к mysql,
    с помощью phpMyAdmin, создаем и заливаем базу данных ...

    AHTUNG!!! Ваши файлы могут отличатьса от моих - строчки могут быть в других местах но СТРОКИ есть! и настройки из статьи верны! :exclaim::coolface:
  2. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    Это как?
    и
    как бы разные вещи. Совсем разные. Зачем людей путать? :)
  3. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    а ёхти...точно простите писал на коленке ..поправлю шас :Д админ отредактируй название пожалуйста на php-fpm :)
  4. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    dream, у фпм какой конфиг страшный. Старый фпм поди. Ставь пхп 5.3. Он Идет с фпм новым. А нгинкс какой?
  5. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    всё обновил и поставоил ...nginx последний которий вообсе естй в епел репах pod Cent

    ---------- Сообщение добавлено в 00:19 ---------- Предыдущее сообщение было в 00:02 ----------

    [SPOILER="php-fpm"]<?xml version="1.0" ?>
    <configuration>

    All relative paths in this config are relative to php's install prefix

    <section name="global_options">

    Pid file
    <value name="pid_file">/var/run/php-fpm.pid</value>

    Error log file
    <value name="error_log">/var/log/php-fpm.log</value>

    Log level
    <value name="log_level">notice</value>

    When this amount of php processes exited with SIGSEGV or SIGBUS ...
    <value name="emergency_restart_threshold">10</value>

    ... in a less than this interval of time, a graceful restart will be initiated.
    Useful to work around accidental curruptions in accelerator's shared memory.
    <value name="emergency_restart_interval">1m</value>

    Time limit on waiting child's reaction on signals from master
    <value name="process_control_timeout">5s</value>

    Set to 'no' to debug fpm
    <value name="daemonize">yes</value>

    </section>


    <workers>

    <section name="pool">

    Name of pool. Used in logs and stats.
    <value name="name">default</value>

    Address to accept fastcgi requests on.
    Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
    <value name="listen_address">127.0.0.1:9000</value>

    <value name="listen_options">

    Set listen(2) backlog
    <value name="backlog">-1</value>

    Set permissions for unix socket, if one used.
    In Linux read/write permissions must be set in order to allow connections from web server.
    Many BSD-derrived systems allow connections regardless of permissions.
    <value name="owner"></value>
    <value name="group"></value>
    Additional php.ini defines, specific to this pool of workers.
    <value name="php_defines">
    <!-- <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> -->
    <!-- <value name="display_errors">0</value> $
    </value>

    Unix user of processes
    <value name="user">nginx</value>

    Unix group of processes
    <value name="group">nginx</value>

    Process manager settings
    <value name="pm">

    Sets style of controling worker process count.
    Valid values are 'static' and 'apache-like'
    <value name="style">static</value>

    Sets the limit on the number of simultaneous requests that will be served.
    Equivalent to Apache MaxClients directive.
    Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
    Used with any pm_style.
    <value name="max_children">5</value>

    Settings group for 'apache-like' pm style
    <value name="apache_like">

    Sets the number of server processes created on startup.
    Used only when 'apache-like' pm_style is selected
    <value name="StartServers">20</value>

    Sets the desired minimum number of idle server processes.
    Used only when 'apache-like' pm_style is selected
    <value name="MinSpareServers">5</value>

    Sets the desired maximum number of idle server processes.
    Used only when 'apache-like' pm_style is selected
    <value name="MaxSpareServers">35</value>

    </value>

    </value>

    The timeout (in seconds) for serving a single request after which the worker process will be termina$
    Should be used when 'max_execution_time' ini option does not stop script execution for some reason
    '0s' means 'off'
    <value name="request_terminate_timeout">0s</value>
    The log file for slow requests
    <value name="slowlog">logs/slow.log</value>

    Set open file desc rlimit
    <value name="rlimit_files">1024</value>

    Set max core size rlimit
    <value name="rlimit_core">0</value>

    Chroot to this directory at the start, absolute path
    <value name="chroot"></value>

    Chdir to this directory at the start, absolute path
    <value name="chdir"></value>

    Redirect workers' stdout and stderr into main error log.
    If not set, they will be redirected to /dev/null, according to FastCGI specs
    <value name="catch_workers_output">yes</value>

    How much requests each process should execute before respawn.
    Useful to work around memory leaks in 3rd party libraries.
    For endless request processing please specify 0
    For endless request processing please specify 0
    Equivalent to PHP_FCGI_MAX_REQUESTS
    <value name="max_requests">500</value>

    Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
    Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
    Makes sense only with AF_INET listening socket.
    <value name="allowed_clients">127.0.0.1</value>

    Pass environment variables like LD_LIBRARY_PATH
    All $VARIABLEs are taken from current environment
    <value name="environment">
    <value name="HOSTNAME">$HOSTNAME</value>
    <value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
    <value name="TMP">/tmp</value>
    <value name="TMPDIR">/tmp</value>
    <value name="TEMP">/tmp</value>
    <value name="OSTYPE">$OSTYPE</value>
    <value name="MACHTYPE">$MACHTYPE</value>
    <value name="MALLOC_CHECK_">2</value>
    </value>

    </section>

    </workers>

    </configuration>
    [/SPOILER] ет то что у меня сейчас:)

    ---------- Сообщение добавлено в 00:27 ---------- Предыдущее сообщение было в 00:19 ----------

    [SPOILER="nginx conf"]user nginx;
    worker_processes 4;
    worker_rlimit_nofile 100000;

    error_log /var/log/nginx/error.log;
    #error_log /var/log/nginx/error.log notice;
    #error_log /var/log/nginx/error.log info;

    pid /var/run/nginx.pid;


    events {
    worker_connections 1024;
    use epoll;
    }


    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    server_tokens off;
    gzip on;
    gzip_static on;
    gzip_comp_level 5;
    gzip_min_length 1024;
    keepalive_timeout 65;
    limit_zone myzone $binary_remote_addr 10m;

    # Load config files from the /etc/nginx/conf.d directory
    include /etc/nginx/conf.d/*.conf;

    server {
    limit_conn myzone 10;
    listen 80;
    server_name evenyes.com www.evenyes.com;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
    root /home/:p/evenyes.com;
    index index.html index.php index.htm;
    }

    error_page 404 /404.html;

    location = /404.html {
    root /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    # proxy_pass http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /home/:p/evenyes.com$fastcgi_script_name;
    include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    # deny all;
    #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    # listen 8000;
    # listen somename:8080;
    # server_name somename alias another.alias;

    # location / {
    # root html;
    # index index.html index.htm;
    # }
    #}
    # HTTPS server
    #
    #server {
    # listen 443;
    # server_name localhost;

    # ssl on;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;

    # ssl_session_timeout 5m;

    # ssl_protocols SSLv2 SSLv3 TLSv1;
    # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    # ssl_prefer_server_ciphers on;

    # location / {
    # root html;
    # index index.html index.htm;
    # }
    #}


    [/SPOILER]

    ---------- Сообщение добавлено в 00:36 ---------- Предыдущее сообщение было в 00:27 ----------

    0.9.5-1.el5 версия ng.

    ---------- Сообщение добавлено в 00:38 ---------- Предыдущее сообщение было в 00:36 ----------

    5.2.17-1.el5 - пыха новее нет под цент...точнее 5.3 есть но она плохо чего-то со всем етим дружит
  6. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    круто

    наверноя я правильно сделал, что выбрал дебиан.
  7. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    у меня какая-то хуета(простите) с cdbian/unbuntu....ставил nginx,lighttpd да и даже лампу ...при установке мускула- установки пароля вылазят ошыбки и он зависает...пото перегружаеш как оычно входиш ( -u и -p) i Access Denied use password :NO - WTF??? пароля нету мускул чист набираю роот и ентер жму (пароля ж нету) и выдаает.чо тока не делал...плюнул поставил цент.доволен я к ней ешё с хостагатера привык :).
    P.S нашол в репах CentALT нормалйную пиху...но обновлятьшя не буду ....надоело уже :)
  8. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    Сложно сказать что не так без текста этих самых ошибок. Странно, но на моей памяти такого не было, установка всегда проходила гладко. Либо что-то явно не так делается, либо локальная проблема, либо здесь явно вмешались высшие силы. =)

    [offtop]
    А на моем домашнем своеобразном железе нормально взлетела только сусе (пробовал - убунту 10, дебиан 5\6, центос 5, и вроде федору), к чему бы это? :) Хотя возможно я гоню, и насиловать абсолютно не мультимедийную платформу - не правильно, и нормальные люди так не делают. =)
    [/offtop]
  9. dream Thread starter User


    Offline
    Message Count:
    144
    Likes Received:
    32
    Установка и настройка nginx с php fastcgi CentOS {MyWay}

    да ну накуй...скоко ситем переставил на разних сервах и лампы ставил и другие связки...и на дебиан и на убунту ...всё вставало ..даже в етот раз в гоогле полез..с глупым вопросом :) установка LAMP debian .
    мне кажется скорее ето...п началу перл в дебиан матерился при установки ..но поправил ошибку- надо было "set default locale" сделать...:) на кoпейке и лампа встала и ета статья .

Share This Page

All rights reserved SocEngine.ru ©