स्थापना और सेटअप: Nginx + php5-fpm

इस आलेख में, हम प्रदर्शित करेंगे कि डेबियन लेन पर Nginx + php5-fpm (php5.3) बंडल कैसे स्थापित करें और एक सुरक्षित कॉन्फ़िगरेशन कॉन्फ़िगर करें।

स्थापना और सेटअप

महत्वपूर्ण: सभी कमांड रूट से हैं।



रिपॉजिटरी जोड़ें और कुंजी उत्पन्न करें:
 इको "डिबेट http://backports.debian.org/debian-backports lenn-backports main" >> /etc/apt/source.list इको "deb http://php53.dotdeb.org स्थिर सभी" >> / etc /apt/sources.list gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 |  उपयुक्त कुंजी जोड़ - 
अद्यतन:
  एप्टीट्यूड अपडेट 
Nginx और php5-fpm स्थापित करें:
  एप्टीट्यूड स्थापित -t लेनी-बैकपोर्ट्स "निग्नेक्स"
 apt-get install php5-cli php5-common php5-suhosin 
 apt-get install php5-fpm php5-cgi 
हम फॉर्म में config /etc/nginx/nginx.conf लाते हैं:
  उपयोगकर्ता www-डेटा;
 कार्यकर्ता_प्रोसेस 1;  # हमने संख्या को कोर की संख्या से रखा

 टाइमर_ समाधान 100ms;
 worker_rlimit_nofile 8192;
 कार्यकर्ता_परायणता -5;  # प्राथमिकता बढ़ाएं

 error_log /var/log/nginx/error.log;
 pid /var/run/nginx.pid;
 घटनाएँ {
     worker_connections 1024;
 }
 http {
     /etc/nginx/mime.types शामिल करें;
     access_log /var/log/nginx/access.log;

     पर भेज देना;
     Keepalive_timeout 65;
     tcp_nodelay on;

     पर gzip;
     gzip_min_length 1100;
     #gzip_disable "msie6";  # तेज़, लेकिन केवल नगनेक्स के नए संस्करणों पर काम करता है
     gzip_disable "MSIE [1-6] \ _? (?!? * SV1)";
     gzip_proxied कोई भी;
     gzip_comp_level 4;
     gzip_types text / plain text / css application / x-javascript text / xml application / xml application / xml + rss text / javascript;
     gzip_vary पर;

     /etc/nginx/conf.d/*.conf शामिल करें;
     / etc / nginx / साइट्स-सक्षम / * शामिल करें;
 }


हटाएं /etc/nginx/sites-available/default





विन्यास उदाहरण

वर्डप्रेस सीएमएस के साथ उपयोग के लिए विन्यास, /etc/nginx/sites-enabled/example.ru



के उपयोग को ध्यान में रखते हुए:
 सर्वर {
	 80 सुनो;
	 server_name www.example.ru;
	 rewrite ^ http: //example.ru$request_uri?  स्थायी;  # 301 पुनर्निर्देशित
 }
 सर्वर {
     80 सुनो;
	 server_name example.ru; 
	 root /var/www/example.ru;
	 index index.php;

	 स्थान / {
		 try_files $ uri $ uri / /index.php?q=$uri&osargs;
	 }
	 स्थान ~ * ^। + (js | css | png | jpg | jpeg | gif | ico) $ {
		 access_log बंद;
		 अधिकतम समाप्त;
	 }
	 स्थान ~ \ .php $ {
		 # fastcgi_split_path_info ^ (। + \ _ php) (। *।) $;
		 fastcgi_pass 127.0.0.1:9000;
		 fastcgi_index index.php;

		 fastcgi_param DOCUMENT_ROOT /example.ru;
		 fastcgi_param SCRIPT_FILENAME /example.ru>fastcgi_script_name;
		 fastcgi_param PATH_TRANSLATED /example.ru>fastcgi_script_name;

		 fastcgi_params शामिल करें;
		 fastcgi_param QUERY_STRING $ query_string;
		 fastcgi_param REQUEST_METHOD $ request_method;
		 fastcgi_param CONTENT_TYPE $ content_type;
		 fastcgi_param CONTENT_LENGTH $ content_length;
		 fastcgi_intercept_errors पर;
		 fastcgi_ignore_client_abort बंद;
		 fastcgi_connect_timeout 60;
		 fastcgi_send_timeout 180;
		 fastcgi_read_timeout 180;
		 fastcgi_buffer_size 128k;
		 fastcgi_buffers 4 256k;
		 fastcgi_busy_buffers_size 256k;
		 fastcgi_temp_file_write_size 256k;
	 }
	
	 स्थान = /favicon.ico {
		 log_not_found बंद;
		 access_log बंद;
	 }
	 स्थान = /robots.txt {
		 सभी की अनुमति दें;
		 log_not_found बंद;
		 access_log बंद;
	 }
	 ## देखने को अक्षम करें .htaccess और .htpassword 
	 स्थान ~ /\.ht {
		 सभी को अस्वीकार;
	 }
 }
Mysql स्थापित करें:
  apt-get mysql-server mysql-client php5-mysql स्थापित करें
 mkdir -p / var / www / var / run / mysqld
 आरोह - bind / var / run / mysqld / / var / www / var / run / mysqld / 
निर्देशिका और index.php फ़ाइल बनाएँ:
  mkdir -p /var/www/example.ru
 इको "<? php phpinfo ();?>"> /var/www/example.ru/index.php 
Nginx और php5-fpm को पुनरारंभ करें:
  /etc/init.d/nginx पुनरारंभ करें
 /etc/init.d/php5-fpm पुनः आरंभ करें 

सुरक्षा

निर्देशिकाओं पर सही अनुमति दें:
  chown -R www-data /var/www/example.ru && chmod -R 750 /var/www/example.ru 
हम इससे जुड़ी भेद्यता को ठीक करते हैं
  स्थान ~ .php $ { 
, इसके लिए हम /etc/php5/fpm/php.ini में लिखते हैं
  cgi.fix_pathinfo = 0 
हम chroot को सिस्टम में PHP एक्सेस को प्रतिबंधित करने में सक्षम करते हैं। ऐसा करने के लिए, फ़ाइल /etc/php5/fpm/php5-fpm.conf संपादित करें, लिखें:
 चुरोट = / var / www
 चदिर = /
अगला, हम इस समस्या का सामना करेंगे कि PHP पते को हल करने में सक्षम नहीं होगी, हम इसे ठीक करते हैं:
 mkdir / var / www / {etc, lib};
 cp / etc / मेजबान / var / www / etc / मेजबान;
 cp /etc/resolv.conf /var/www/etc/resolv.conf;
 cp /lib/libnss_dns.so.2 /var/www/lib/libnss_dns.so.2 // आपकी प्रणाली 32 बिट है
 cp /lib64/libnss_dns.so.2 /var/www/lib64/libnss_dns.so.2 // आपका सिस्टम 64 बिट है 
Php5-fpm को पुनरारंभ करें:
  /etc/init.d/php5-fpm पुनः आरंभ करें 


हम अपनी साइट example.ru के पेज पर जाते हैं और हमारी साइट के phpinfo () इनपुट की प्रशंसा करते हैं।

पीएस ब्लॉग के लेखक डेबियन.प्रो ने मुझे इंकविज़िटर 68 एसएल के साथ सेटिंग्स का पता लगाने में मदद की।

नई:

Nginx 0.8.54 स्थापित करें

 apt-get update
 apt-get install libxml2-dev libbz2-dev libcurl4-opensl-dev libmcrypt-dev libmhash2 libmhash-dev libpcre3 libpcre3-dev बनाना

 wget http://sysoev.ru/nginx/nginx-0.8.54.tar.gz
 टर zxf नगनेक्स-0.8.54.tar.gz
 सीडी नग्नेक्स-0.8.54
 
 ./configure \
 --conf- पथ = / etc / nginx / nginx.conf \
 --err-log-path = / var / log / nginx / error.log \
 --http-client-body-temp-path = / var / lib / nginx / body \
 --http-fastcgi-temp-path = / var / lib / nginx / fastcgi \
 --http-log-path = / var / log / nginx / access.log \
 --http -xy-temp-path = / var / lib / nginx /xy \ n
 --लॉक-पथ = / var / लॉक / nginx.lock \
 --पिड-पथ = / var / run / nginx.pid \
 - साथ-डिबग - साथ-http_dav_module \
 - साथ-http_gzip_static_module \
 - साथ-http_realip_module \
 - साथ-http_stub_status_module \
 --with-http_sub_module

 && मेक इनस्टॉल करें 


डेबियन "निचोड़"

Php-fpm पैकेज को स्थापित करने के लिए आपको आवश्यकता होगी:
 इको "deb http://packages.dotdeb.org सभी निचोड़ें" >> /etc/apt/source.list
 wget http://www.dotdeb.org/dotdeb.gpg && cat dotdeb.gpg |  apt- कुंजी जोड़ें - & aptitude अद्यतन
UPD: mysql इंस्टालेशन में कुछ पंक्तियों को जोड़ा गया, अब जो सेटिंग काम करती है उसमें लोकलहोस्ट को निर्दिष्ट करता है। धन्यवाद इंकविज़िटर 68 एसएल



All Articles