Тұрақты және жылдам серверден сайттың тағдырына байланысты. Оның баяу жұмысы мен жиі тамшылары келушілерді де, іздеу жүйелерін де қорқытады. Соңғысы тежегіш торабының рейтингін іздеу нәтижелерінде төмендетеді және ол бірінші ондықта болмайды, бірақ, айталық, барлық сұраулар үшін ең үздік 100-де.
Торапты күтіп ұстау үшін nginx және php-fpm шоғырсысын пайдалану олардың жұмыс жылдамдығын, сондай-ақ тұтастай алғанда жүйенің тұрақтылығын арттыруға мүмкіндік береді. Сонымен қатар, apache пайдаланудан бас тартқан кезде, біз жүйені біршама жеңілдетіп, тіпті оны қорғаймыз. Өйткені, егер апа болмаса, шабуылдаушы, мысалы, .htaccess файлын өз мақсаттары үшін пайдалана алмайды.
Nginx + php-fpm байламы конфигурациялауға өте оңай және оны көптеген танымал CMS: WordPress, MODX, DLE, әр түрлі шеңберлер қолдайды. Мұның бәрі өте үлкен апауссіз жұмыс істей алады.
Веб-серверді орнатқан кезде, пайдаланушыларды жасамай-ақ жасамаңыз. Ең дұрысы, әрбір сайт үшін бөлек пайдаланушы жасалуы керек. Сондықтан, егер біз қолданушылардың біреуі бұзылған болса, біз басқа сайттарды қорғауымыз мүмкін. Осы мақалада келтірілген мысалдар пайдаланушыларды нұсқауларға сәйкес жасаған фактісін ескере отырып жазылған.
Біріншіден, негізгі модульдерді орнатыңыз: php-fpm, mysql, curl, GD. Қалғандардың барлығы жеке қажеттілігі.
# aptitude орнату nginx php5-fpm php5-mysqlnd php5-curl php5-gd
Конфигурация файлдары / etc / php5 / fpm / каталогында орналасқан .
Мақала мазмұны:
- Настраиваем php-пул для обслуживания запросов 1 Қызмет сұрауларына php-пулын теңшеңіз
- Обработка php скриптов посредством nginx 2 nginx көмегімен php сценарийлерін өңдеу
Сұраныстарға қызмет көрсету үшін php-пулын конфигурациялаймыз
Бастапқыда, php-fpm тек қана www. Біз оны басқа бассейндер үшін негіз ретінде пайдаланамыз.
/Etc/php5/fpm/pool.d/www.conf конфигурациялық файлын ашыңыз , кейбір айнымалыларды қарастырыңыз және олар үшін мәндерді таңдаңыз.
Бірінші айнымалы - бассейннің атауы. Ол төртбұрышты жақшаға салынған және жүйеде бар кез-келген пайдаланушының атымен сәйкес келмеуі мүмкін.
[www]
Содан кейін біз өзіміздің үй каталогында орналасқан сайттың пайдаланушысының аты мен оның тобын көрсетеді.
user = username group = www-data
Пулдың unix-розеткасы ретінде жұмыс істеуі керек екенін көрсетіңіз. Айнымалы $ pool атымен ауыстырылады.
listen = /var/run/php-$pool.sock
Fpm іске қосу кезінде белгілі бір пул процестерінің пайда болатын статикалық режимін пайдалануды анықтаймыз. Олар кіретін барлық сұранымдарға қызмет көрсетеді.
pm = static
Неліктен осындай таңдау? :) Бұл ең үнемді нұсқа. Бассейннің әр процесі жады_имитінің айнымалы айнымалысына қосылатын ЖЖҚ көлемін және қосылған модуль, кэш және т.б. үшін бірнеше мегабайтты алады. Статикалық нұсқасында, барлық сұраулар тек жасалып жатқан процестер арқылы өңделеді, ал жаңалары жасалмайды (және құнды жадты алады). Нәтижесінде біз белгілі бір жадты тұтынамыз.
Талап етілетін сұраныстардың қажетті санын көрсетіңіз. Ол жұмыс жүктемесіне байланысты таңдалады.
pm.max_children = 3
Мен бассейн конфигурациясының файлының соңына келесі параметрлерді қосуды ұсынамын.
Уақытша файлдарды орналастыру үшін каталог:
php_admin_value [upload_tmp_dir] = «/ var / www / username / tmp»
Сеанстық файлдарды сақтауға арналған каталог:
php_admin_value [session.save_path] = «/ var / www / username / sessions»
Қауіпсіздік мақсатында, осы каталогтарға қатынау тек пайдаланушыға қол жетімді болуы керек, олардың рұқсаттары php-fpm pool басталған. Сондай-ақ, сеанс файлдарын және уақытша файлдарды сақтауға арналған бірдей каталогты пайдаланбаңыз.
Сценарийлерді іске қосу үшін жады шектеуі сайттың талаптарына сәйкес таңдалуы керек. Алдымен:
php_admin_value [memory_limit] = 50М
Осалдықты жоятын қажетті параметрді көрсетіңіз:
php_admin_value [cgi.fix_pathinfo] = 0
Sendmail_path және open_basedir айнымалылары нақты көрсетілмеген. Олар nginx конфигурациялық файлында жылдам-cgi параметрлері ретінде беріледі. Осылайша, әрбір нақты сайт үшін өзіңіздің параметрлеріңізді анықтай аласыз. :)
Барлық қажетті параметрлер көрсетілгеннен кейін, php-fpm конфигурациясын келесі пәрменмен қайта жүктеуіңіз керек:
# service php5-fpm қайта жүктеу
Nginx арқылы php сценарийлерін өңдеу
PHP-FPM-мен жұмыс істеу үшін nginx-ді конфигурациялау қалады. Дайын конфигурация
сервер { server_name example.com ; 80 тыңдаңыз; access_log / var / log / nginx / example.com .access.log; error_log / var / log / nginx / example.com .error.log; charset utf-8; индекс index.php; root / var / www орын / { try_files $ uri $ uri / /index.php$args; } орын ~ \ .php $ { try_files $ uri = 404; fastcgi_pass unix: /run/php-www.sock; fastcgi_index index.php; fastcgi_params; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_param PHP_VALUE «sendmail_path = / usr / sbin / sendmail -t -i -fmail@example.com»; fastcgi_param PHP_ADMIN_VALUE «open_basedir = / var / www / example.com /: / var / save_path /: / var / tmp_dir /»; } }
example.com доменіңізбен алмастырылады.
Параметрлердің сипаттамасы :
try_files $uri =404;
бұл қате орын алған жағдайда ешқандай кіріс файлы көрсетілген хабарламаның орнына пайдаланушы браузерінде 404 қатесі көрсетіледі .
fastcgi_pass
- php-fpm сокетіне өту жолы.
fastcgi_pass unix: /run/php-www.sock;
Келесі айнымалы мән sendmail параметрін және сайт әкімшісінің электрондық пошта мекенжайын көрсететін параметрді орнатады. Mail@example.com дегенді өзіңізбен алмастырыңыз.
fastcgi_param PHP_VALUE «sendmail_path = / usr / sbin / sendmail -t -i -fmail@example.com»;
Біз open_basedir каталогтарын: тораппен каталогты, уақытша файлдарды сақтау каталогын, сеанс файлдары каталогын тізімдейміз.
fastcgi_param PHP_ADMIN_VALUE «open_basedir = / var / www / example.com /: / var / save_path /: / var / tmp_dir /»;
Егер сізге бірнеше параметрлерді беру қажет болса, мұны келесідей етіп жасау керек:
fastcgi_param PHP_ADMIN_VALUE «sendmail_path = / usr / sbin / sendmail -t -i -fmail@example.com \ nopen_basedir = / var / www / example.com /: / var / save_path /: / var / tmp_dir /»;
Көріп отырғаныңыздай, параметрлер жол үзілімімен бөлінеді: \ n .
Біз жасаған барлық өзгерістерді сақтап, nginx қайта іске қосамыз.
# service nginx қайта жүктеу
zrastite мысал таба алмады
Қайырлы күн. Httpd конфигурациясының түбірлік директивасы нүктелі үтірмен жабық болуы керек және конфигурацияны сайттың атауымен / etc / nginx / сайттарына қосу керек.
Неге әрбір сайт үшін пайдаланушыларды жеке-жеке құруға болады?
Егер бір пайдаланушы бұзылған болса, онда басқа сайттар қауіпсіз болады ма?
Мен жүйеде бір ғана жұмыс істейтін болсам, әртүрлі пайдаланушыларды жасауым керек пе, сертификат арқылы SSH арқылы жүйеге кіру.
Сондай-ақ, DB Интернетке қарайды.
Рахмет.
«Php-fpm-мен жұмыс істеу үшін nginx-ті теңшеу қалады. Дайын конфигурациясы «
және оны қайда орналастыру керек?