рдПрдХ рдкреВрд░реНрдг DIY рд╡реАрдбрд┐рдпреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдмрдирд╛рдирд╛ (nginx + php5-fpm + ffmpeg + cumulusclub)

рд╢реБрдн рджреЛрдкрд╣рд░, Khabrovites!

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЛ рдЕрдкрдирд╛ рд╡реАрдбрд┐рдпреЛ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдмрдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЬреНрдЮрд╛рди рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред

рдХрд╛рд░реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:
рдПрдХ рд╡реЗрдм рдХреИрдорд░реЗ рд╕реЗ рдПрдХ-рддрд░рдлрд╝рд╛ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпрдХреНрд╖ рдбрд╛рдЙрдирд▓реЛрдб рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рд╕реЗ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдПрдВ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдФрд░ рдмрд┐рдЯрд░реЗрдЯ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓рд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдмреЙрд▓ рд╣реИред

рдЖрдзрд╛рд░ рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рд╕рд░реНрд╡рд░ рдерд╛! рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред

Intel┬о Xeon┬о CPU L5520 @ 2.27GHz
рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ 16
рд░реИрдо 16372 рдПрдордмреА

рд╡реАрдбрд┐рдпреЛ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рддреЗ рд╕рдордп рдереЛрдбрд╝рд╛ рдЖрдЧреЗ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб 500% (рд▓рдЧрднрдЧ 6 рдХреЛрд░) рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ;

рдЪрд▓реЛ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдУрдПрд╕ рд╕реЗ рдореИрдВрдиреЗ Ubuntu рд╕рд░реНрд╡рд░ 13.04 x64 рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рдЕрдиреНрдп рд▓рд┐рдирдХреНрд╕ рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рд╕рдордЭрддрд╛ рд╣реВрдВред

WEB рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ nginx + php5-fpm рдмрдВрдбрд▓ рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ nginx рдХрд╛рдлреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЛрдб рдХреЗ рд╕рд╛рде рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рднреАред

nginx рдХреЛ рдПрдХ рд╕реНрдЯреНрд░реАрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд┐рдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддреЗ рд╣реИрдВ

рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ:

apt-get install build-essential checkinstall subversion unzip yamdi imagemagick php5-curl libssl-dev zlib1g-dev libpcre3-dev rpl php5-fpm git 


рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрд░реЛрдд:

 cd /tmp wget http://nginx.org/download/nginx-1.5.2.zip unzip nginx-1.5.2.zip -d nginx/ rm -f nginx-1.5.2.zip cd nginx 


рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:

 mkdir modules git clone https://github.com/masterzen/nginx-upload-progress-module.git modules/nginx-upload-progress-module wget http://www.kernel-video-sharing.com/files/nginx_mod_h264_streaming-2.3.2.zip unzip nginx_mod_h264_streaming-2.3.2.zip -d modules/ rm -f nginx_mod_h264_streaming-2.3.2.zip git clone https://github.com/arut/nginx-rtmp-module.git modules/nginx-rtmp-module 


рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ:

 touch nginx.sh nano nginx.sh 

рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде
 ./configure \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --with-debug \ --with-http_stub_status_module \ --with-http_secure_link_module \ --with-http_gzip_static_module \ --with-http_realip_module \ --with-http_mp4_module \ --with-http_flv_module \ --with-http_ssl_module \ --with-http_dav_module \ --with-md5=/usr/lib \ --add-module=modules/nginx-upload-progress-module \ --add-module=modules/nginx-rtmp-module \ --add-module=modules/nginx_mod_h264_streaming-2.3.2 make -j16 (16 -  .   .    "grep -c processor /proc/cpuinfo") checkinstall 


рд╢рд╛рдпрдж рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдпрд╣ рдХрд░рддреЗ рд╣реИрдВ:

рдСрдЯреЛ / cc / gcc рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд╣рдо рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВ:

 #CFLAGS="$CFLAGS -Werror" 


рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:
 sh nginx.sh 


рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрд╡рд╢реНрдпрдХ рд╕реАрд▓рд┐рдВрдХ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ (рдпрджрд┐ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ):

 ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx mkdir -p /var/lib/nginx/body mkdir /var/lib/nginx/proxy mkdir /var/lib/nginx/fastcgi chown -R root /var/lib/nginx/ wget http://nginx-init-ubuntu.googlecode.com/files/nginx-init-ubuntu_v2.0.0-RC2.tar.bz2 tar -jxvf nginx-init-ubuntu_v2.0.0-RC2.tar.bz2 -C /etc/init.d/ chmod 715 /etc/init.d/nginx /usr/sbin/update-rc.d -f nginx defaults rm -f nginx-init-ubuntu_v2.0.0-RC2.tar.bz2 rpl 'DAEMON=/usr/local/sbin/nginx' 'DAEMON=/usr/local/nginx/sbin/nginx' /etc/init.d/nginx rpl 'NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"' 'NGINX_CONF_FILE="/etc/nginx/nginx.conf"' /etc/init.d/nginx 


рдпрд╣ nginx рдФрд░ php5-fpm рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдмрд╛рдж рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗред

рд▓рд╛рдЗрди рдореЗрдВ рдЕрдЧрд▓рд╛ ffmpeg рд╣реИред рдЙрдкрдпреБрдХреНрдд-рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрджрд╛рд╡рдирдд рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреА рд╣реИрдВред рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рдФрд░ рдЕрдзрд┐рдХ рд╣рд╛рд▓рд┐рдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 2 рд░рд╛рддреЗрдВ рдмрд┐рддрд╛рдИрдВред рдореИрдВ рдЫрд┐рдкрд╛рдКрдВрдЧрд╛ рдирд╣реАрдВ, рдореБрдЭреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдкреИрдХ рдорд┐рд▓рд╛ред

рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ www.ffmpeginstaller.com рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рднреА рдЗрдВрд╕реНрдЯреЙрд▓рд░реЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ 50 рд░реБрдкрдпреЗ рдореЗрдВ рдЕрдкрдиреА рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:

 cd /tmp wget http://mirror.ffmpeginstaller.com/old/scripts/ffmpeg7/ffmpeginstaller.7.4.tar.gz tar -xzf ffmpeginstaller.7.4.tar.gz ffmpeg cd ffmpeg 


рдкрд╣рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ ... рдкрд░реНрдпрд╛рдкреНрдд рдХреЛрдбреЗрдХ рдирд╣реАрдВ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдбреЗрдХ рдХреЛ рдЕрдирд╡рд┐рдВрдб рдХрд░реЗрдВ:

 apt-get install libvpx 


Ffmpeg.sh рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рдХреЛрдбреЗрдХ --enable-libvpx рдЬреЛрдбрд╝реЗрдВ:

 nano ffmpeg.sh ./configure --prefix=$INSTALL_DDIR --enable-shared --enable-nonfree \ --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-decoder=liba52 \ --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame \ --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libvpx \ --extra-cflags=-I/usr/local/cpffmpeg/include/ --extra-ldflags=-L/usr/local/cpffmpeg/lib \ --enable-version3 --extra-version=syslint 


рдпрд╣ рддреИрдпрд╛рд░реА рдкреВрд░реА рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: sh start.sh

рд▓реЛрд╣реЗ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 15-20 рдорд┐рдирдЯ рд▓рдЧреЗрдВрдЧреЗред рдЖрдк рдХреБрдЫ рдЪрд╛рдп (рдпрд╛ рдХреЙрдлреА) рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рд╣рдо рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ:

 hash x264 ffmpeg ffplay 


рдкреАрдПрд╕ рдореЗрдВ рдПрдХ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рджреЗрдЦреЗрдВ

рд╡рд╣ рд╕рдм рд╣реИред рдмрдзрд╛рдИ рд╣реЛ, рд╣рдордиреЗ рдпрд╣ рдХрд┐рдпрд╛!

рдЕрдм рд╣рдореЗрдВ рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрдордПрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рдереЗ, рдпрд╛ рдХреЗрд╡рд▓ 2 (рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдореЗрд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ - рдХреНрдпреВрдореНрдпрд▓рдХреНрд▓рд┐рдкреНрд╕)ред
рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдмрд┐рдирд╛ рдореИрдВрдиреЗ рдШрдЯрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред рдореБрдЭреЗ рд╕рд┐рд░реНрдл mysql рд╕реЗ mysqli рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдерд╛ред рд╕рднреА рд╕реАрдПрдордПрд╕ рдХреЛрдб рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдФрд░ рд▓рдЪреАрд▓реЗ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдореИрдВрдиреЗ рдЫрджреНрдо YouTube рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ред

рдореБрдЭреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЛрдбрд╝рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ jwplayer рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред рдЧрд┐рдердм рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЪрдврд╝рддреЗ рд╣реБрдП, рдореБрдЭреЗ рд╕рд░рд▓ рдирд╛рдо jQplayer рдХреЗ рддрд╣рдд рдПрдХ рд╕реАрдзреА рдЦрд┐рд▓рд╛рдбрд╝реА рдорд┐рд▓реАред
рдпрд╣ рдЦрд┐рд▓рд╛рдбрд╝реА рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдЯреНрд░реАрдо рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рд╕рдЪ рд╣реИ, рдПрдХ рдорд╛рдЗрдирд╕ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдкреНрд▓реЗрдмреИрдХ рд╢реБрд░реВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА - рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ nginx рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реВрдВред ред Htaccess рдХреЛ CMS рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдФрд░ nginx рдЗрд╕реЗ рд╕рдордЭрдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ред
рдореЗрд░реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрджрд╛рд╣рд░рдг
 #!/bin/bash echo -n "   : " read host echo -n "   nginx: " read users sap=/etc/nginx/sites-available/$host.conf mkdir -p /var/hosting/ touch $sap chmod 777 $sap directives="upstream backend-${host} {server unix:/var/run/php5-${host}.sock;} server { listen 80; server_name ${host} www.${host}; root /var/hosting/${host}/www; access_log /var/log/nginx/${host}-access.log; error_log /var/log/nginx/${host}-error.log; index index.php; rewrite_log on; if ($host = '${host}' ) { rewrite ^/(.*)$ http://www.${host}/$1 permanent; } location /im { rewrite ^/im/(.*)$ /cc-core/controllers/thumbs.php?$1 last; } location /videos { rewrite ^/videos/([0-9]+)/(.*)$ /cc-core/controllers/play.php?vid=$1 last; rewrite ^/videos/page/([0-9]+)/$ /cc-core/controllers/videos.php?page=$1 last; rewrite ^/videos/(most-recent|most-viewed|most-discussed|most-rated)/$ /cc-core/controllers/videos.php?load=$1 last; rewrite ^/videos/(most-recent|most-viewed|most-discussed|most-rated)/page/([0-9]+)/$ /cc-core/controllers/videos.php?load=$1&page=$2 last; rewrite ^/videos/([a-zA-Z0-9\-]+)/$ /cc-core/controllers/videos.php?category=$1 last; rewrite ^/videos/([a-zA-Z-]+)/page/([0-9]+)/$ /cc-core/controllers/videos.php?category=$1&page=$2 last; rewrite ^/videos/([0-9]+)/comments/$ /cc-core/controllers/comments.php?vid=$1 last; rewrite ^/videos/([0-9]+)/comments/page/([0-9]+)/$ /cc-core/controllers/comments.php?vid=$1&page=$2 last; rewrite ^/videos/$ /cc-core/controllers/videos.php last; } location /private { rewrite ^/private/get/$ /cc-core/controllers/play.php?get_private=true last; rewrite ^/private/videos/([a-zA-Z0-9]+)/$ /cc-core/controllers/play.php?private=$1 last; rewrite ^/private/comments/([a-zA-Z0-9]+)/$ /cc-core/controllers/comments.php?private=$1 last; rewrite ^/private/comments/([a-zA-Z0-9]+)/page/([a-z0-9]+)/$ /cc-core/controllers/comments.php?private=$1&page=$2 last; } location /members { rewrite ^/members/page/([0-9]+)/$ /cc-core/controllers/members.php?page=$1 last; rewrite ^/members/([a-zA-Z0-9]+)/$ /cc-core/controllers/profile.php?username=$1 last; rewrite ^/members/([a-zA-Z0-9]+)/videos/$ /cc-core/controllers/member_videos.php?username=$1 last; rewrite ^/members/([a-zA-Z0-9]+)/videos/page/([0-9]+)/$ /cc-core/controllers/member_videos.php?username=$1&page=$2 last; rewrite ^/members/$ /cc-core/controllers/members.php last; } location /search { rewrite ^/search(/page/([0-9]+))?/$ /cc-core/controllers/search.php?page=$2 last; } location /login { rewrite ^(.*)$ /cc-core/controllers/login.php last; } location /login/forgot { rewrite ^(.*)$ /cc-core/controllers/login.php?action=forgot last; } location /logout { rewrite ^(.*)$ /cc-core/system/logout.php last; } location /register { rewrite ^(.*)$ /cc-core/controllers/register.php last; } location /activate { rewrite ^(.*)$ /cc-core/controllers/activate.php last; } location /opt { rewrite ^/opt-out/$ /cc-core/controllers/opt_out.php last; } location /contact { rewrite ^(.*)$ /cc-core/controllers/contact.php last; } location /embed { rewrite ^/embed/([0-9]+)/$ /cc-core/system/embed.php?vid=$1 last; } location /page { rewrite ^(.*)$ /cc-core/system/page.php last; } location /translation { rewrite ^(.*)$ /cc-core/system/translation.php last; } location /notify { rewrite ^(.*)$ /cc-core/system/notify.php last; } location /language/get { rewrite ^(.*)$ /cc-core/system/language.php?get last; } location /language { rewrite ^/language/set/(.*)/$ /cc-core/system/language.php?set&language=$1 last; } location /feed { rewrite ^/feed(/([a-zA-Z0-9]+))?/$ /cc-core/system/feed.php?username=$2 last; } location /video { rewrite ^/video-sitemap(-([0-9]+))?\.xml$ /cc-core/system/video_sitemap.php?page=$2 last; } location /myaccount/upload/avatar { rewrite ^(.*)$ /cc-core/system/avatar.ajax.php last; } location /myaccount/upload/validate { rewrite ^(.*)$ /cc-core/system/upload.ajax.php last; } location /myaccount/grab/validate { rewrite ^(.*)$ /cc-core/system/grab.ajax.php last; } location /actions/username { rewrite ^(.*)$ /cc-core/system/username.ajax.php last; } location /actions/flag { rewrite ^(.*)$ /cc-core/system/flag.ajax.php last; } location /actions/favorite { rewrite ^(.*)$ /cc-core/system/favorite.ajax.php last; } location /actions/subscribe { rewrite ^(.*)$ /cc-core/system/subscribe.ajax.php last; } location /actions/rate { rewrite ^(.*)$ /cc-core/system/rate.ajax.php last; } location /actions/comment { rewrite ^(.*)$ /cc-core/system/comment.ajax.php last; } location /actions/post { rewrite ^(.*)$ /cc-core/system/post.ajax.php last; } location /actions/stream { rewrite ^(.*)$ /cc-core/system/stream.ajax.php last; } location /actions { rewrite ^/actions/mobile-(videos|search)/$ /cc-core/system/mobile_$1.ajax.php?mobile last; } location /myaccount { rewrite ^/myaccount/upload/complete/$ /cc-core/controllers/myaccount/upload_complete.php last; rewrite ^/myaccount/upload/video/$ /cc-core/controllers/myaccount/upload_video.php last; rewrite ^/myaccount/upload/$ /cc-core/controllers/myaccount/upload.php last; rewrite ^/myaccount/myvideos(/page/([0-9]+))?/$ /cc-core/controllers/myaccount/myvideos.php?page=$2 last; rewrite ^/myaccount/myvideos/([0-9]+)/$ /cc-core/controllers/myaccount/myvideos.php?vid=$1 last; rewrite ^/myaccount/editvideo/([0-9]+)/$ /cc-core/controllers/myaccount/edit_video.php?vid=$1 last; rewrite ^/myaccount/myfavorites(/page/([0-9]+))?/$ /cc-core/controllers/myaccount/myfavorites.php?page=$2 last; rewrite ^/myaccount/myfavorites/([0-9]+)/$ /cc-core/controllers/myaccount/myfavorites.php?vid=$1 last; rewrite ^/myaccount/privacy-settings/$ /cc-core/controllers/myaccount/privacy_settings.php last; rewrite ^/myaccount/change-password/$ /cc-core/controllers/myaccount/change_password.php last; rewrite ^/myaccount/subscriptions(/([0-9]+))?/$ /cc-core/controllers/myaccount/subscriptions.php?id=$2 last; rewrite ^/myaccount/subscriptions(/page/([0-9]+))?/$ /cc-core/controllers/myaccount/subscriptions.php?page=$2 last; rewrite ^/myaccount/subscribers(/page/([0-9]+))?/$ /cc-core/controllers/myaccount/subscribers.php?page=$2 last; rewrite ^/myaccount/message/inbox(/page/([0-9]+))?/$ /cc-core/controllers/myaccount/message_inbox.php?page=$2 last; rewrite ^/myaccount/message/inbox/([0-9]+)/$ /cc-core/controllers/myaccount/message_inbox.php?delete=$1 last; rewrite ^/myaccount/message/read/([0-9]+)/$ /cc-core/controllers/myaccount/message_read.php?msg=$1 last; rewrite ^/myaccount/message/send/([a-zA-Z0-9]+)/$ /cc-core/controllers/myaccount/message_send.php?username=$1 last; rewrite ^/myaccount/message/reply/([0-9]+)/$ /cc-core/controllers/myaccount/message_send.php?msg=$1 last; rewrite ^/myaccount/$ /cc-core/controllers/myaccount/myaccount.php last; } location /myaccount/profile { rewrite ^(.*)$ /cc-core/controllers/myaccount/update_profile.php last; } location /myaccount/profile/reset { rewrite ^(.*)$ /cc-core/controllers/myaccount/update_profile.php?action=reset last; } location /myaccount/message/send { rewrite ^(.*)$ /cc-core/controllers/myaccount/message_send.php last; } location /m { rewrite ^/m/v/([0-9]+)/$ /cc-core/controllers/mobile/play.php?mobile&vid=$1 last; rewrite ^/m/v/$ /cc-core/controllers/mobile/videos.php?mobile last; rewrite ^/m/s/$ /cc-core/controllers/mobile/search.php?mobile last; rewrite ^/m/$ /cc-core/controllers/mobile/index.php?mobile last; } location /system { rewrite ^/system-error/$ /cc-core/controllers/system_error.php last; } location /t { rewrite ^/t/(.*)$ /cc-core/system/translation.php last; } location / { if (!-e $request_filename){ #rewrite ^/(.*)$ /$request_uri/ permanent; rewrite ^/(.*)$ /cc-core/system/page.php last; } } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-${host}; } location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ { access_log off; expires 10d; break; } location ~ \.(flv|mp4|webm|ogg|ogv|mp3)$ { mp4; mp4_buffer_size 1m; mp4_max_buffer_size 5m; } location ~ /\. { deny all; } } " echo "$directives">$sap sap_poll=/etc/php5/fpm/pool.d/$host.conf touch $sap_poll chmod 777 $sap_poll directives_poll="[${host}] listen = /var/run/php5-${host}.sock listen.mode = 0666 user = ${users} group = ${users} chdir = /var/hosting/${host} php_admin_value[upload_tmp_dir] = /var/hosting/${host}/tmp php_admin_value[soap.wsdl_cache_dir] = /var/hosting/${host}/tmp php_admin_value[date.timezone] = Asia/Yekaterinburg pm = dynamic pm.min_spare_servers = 10 pm.max_spare_servers = 20 pm.start_servers = 10 pm.max_children = 40" echo "$directives_poll">$sap_poll ln -s /etc/nginx/sites-available/$host.conf /etc/nginx/sites-enabled/$host.conf mkdir -p /var/hosting/$host/www/ mkdir -p /var/hosting/$host/tmp/ dir=/var/hosting/$host/www chown -R $users:$users "$dir"; find "$dir" -type d -exec chmod 0755 '{}' \; find "$dir" -type f -exec chmod 0644 '{}' \; /etc/init.d/nginx restart /etc/init.d/php5-fpm restart 


рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕реНрдЯреНрд░реАрдо рд╕реНрдЯреНрд░реАрдо рднреАред рдпрджрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдкреА рдХрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЦрд╝реБрд╢реА рд╕реЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд╛ рд▓рд╛рдЗрд╡ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдкреВрд░реА рдлрд┐рд▓рд┐рдВрдЧ рдирд╣реАрдВ рджрд┐рдЦрд╛ рдкрд╛ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ stream.etagi.com

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

PS1 рдХреЛ ffmpeg рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдВрдд рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ред рдиреАрдЪреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

1. рдЧреВрдВрдЬ " рдбрд┐рдмреЗрдЯ www.deb-multimedia.org рдирд┐рдЪреЛрдбрд╝ рдореБрдЦреНрдп рдЧреИрд░-рдореБрдХреНрдд" ┬╗/etc/apt/source.list
2. рдЙрдкрдпреБрдХреНрдд-рдЕрджреНрдпрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
3. apt-get install рдбреЗрдм-рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛-рдХреАрд░рд┐рдВрдЧ
4. рдЙрдкрдпреБрдХреНрдд-рдЕрджреНрдпрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
5. apt-get remove ffmpeg
6. apt-get purge ffmpeg
7. apt-get autoremove
8. рдЙрдкрдпреБрдХреНрдд-рд╕реНрдерд╛рдкрд┐рдд рд╕реНрдерд╛рдкрд┐рдд ffmpeg x264 (рд╕реНрдерд╛рдкрдирд╛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдКрдкрд░ рдЦреАрдВрдЪ рд▓реЗрдЧрд╛)
9. ffmpeg -version
(рдпрджрд┐ рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдВрджреБ 5 рд╕реЗ 9 рддрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)

PS2 рдореБрдЦреНрдп рдбрд┐рдЬрд╛рдЗрди рд╕реБрд╡рд┐рдзрд╛
рдХреЗрд╡рд▓ dotdeb рд╕реЗ PHP 5.3 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

Source: https://habr.com/ru/post/In188380/


All Articles