https://blog.superhosting.bg/cgi-vs-fastcgi.html

Натиснете ENTER, за да видите резултатите или ESC за изход.

CGI vs FastCGI или защо правим миграцията?

2016-10-31
Съвети от support-a
CGI, CGI протокол, FastCGI, FastCGI протокол, php, уеб сайтове, динамични уеб сайтове, PHP директиви, PHP заявки, протокол за обработка на PHP заявки, хостинг акаунт

CGI vs FastCGIНа какъв език са разработени вашите сайтове? А защо избрахте точно него? 🙂

Според една от последните статистики, обявена в php.net, към януари 2013 г. PHP се ползва от близо 244 милиона сайта по цял свят. PHP се наложи и е един от предпочитаните за разработка на динамични уеб сайтове програмни езици заради своята гъвкавост, лесна интеграция и използваемост. При всички Linux хостинг планове предлагани от СуперХостинг.БГ се поддържат няколко различни версии на PHP, а в тази публикация от рубриката “Съвети от support- a” ще ви разкажем повече за поддържаните протоколи за обработка на PHP на нашите сървъри. Ще дадем и полезни насоки как да правите промени по настройките на PHP, в случай че е необходимо и как това да повлияе върху използваното от акаунта процесорно време (CPU).

Основните протоколи за обработка на PHP заявките са CGI, FastCGI и като модул на уеб сървъра.

За обработка на PHP заявките при сървърите ни за споделен хостинг се ползват протоколите CGI и FastCGI. Решението ни да се ползват тези протоколи е продиктувано от различни фактори (стартирането на отделни процеси да се извършва от съответния UNIX потребител (хостинг акаунт), например). В нашата помощна страница в статията CGI vs FastCGI сме описали основните характеристики на двата протокола, а в следващите редове ще представим и най-важната разлика.

CGI протоколът стартира отделен процес в началото на всяка заявка и приключва след изпълнението. Този модел на “нов процес за всяка нова заявка” е много опростен за имплементация и начин на работа. За разлика от него, при FastCGI протокола процесите са устойчиви. Те се използват повторно, за да се справят с множество заявки. Именно това дава много по-висока производителност, особено необходима при развитието на уеб приложенията.

С активирането на FastCGI протокола по подразбиране се активира от нас и допълнителен кеширащ модул към PHP – eAccelerator или APC. Тези модули представляват opcode кеш, т.е. компилираният PHP код се съхранява по подразбиране в паметта, след което при извикване директно се изпълнява.

Резултатът – с FastCGI протокола използваното процесорно време (CPU) намалява!

Забележка: Това се отразява положително в над 99,9% от скриптовете.

За това какво е процесорно време (CPU), как се отчита, кои са честите причини за повишеното му потребление и как да оптимизирате приложенията си, може да прочетете в нашата блог публикация “Процесорно време?! Статистика и оптимизация!”

Изхождайки от предимството на FastCGI при обработка на заявките, ние мигрираме хостинг акаунтите към ползването на FastCGI протокола за обработка на PHP. Процесът по миграция се извършва поетапно, като близо 50% от хостинг акаунтите вече ползват протокол FastCGI.

С промяната на протокола се променя и начина, по който се извършват настройки по PHP директивите в хостинг акаунтите. Направените от нас настройките по подразбиране на PHP директивите са съобразени така, че в 99% от случаите да не се налагат промени. Разбира се, за конкретно приложение, е възможно да е необходима различна стойност за някоя от настройките зададената по подразбиране. Тези промени могат да се извършват и се правят чрез php.ini файл за конкретния хостинг акаунт.

С предлагането на двата протокола промените по PHP директивите се извършват по различен начин. Преди да правите промени е необходимо първо да се провери кой протокол обработва PHP заявките за хостинг акаунта.

Помощ от съпорта:

За определянето на протокола за обработка на PHP скриптовете, от нашият технически екип разработихме скрипт, който предоставя както информация дали се ползва CGI или FastCGI, така и дава насоки за промяната на някои директиви и активирането на допълнителни модули. Скриптът можете да свалите от тук >>. Необходимо е да го разположите в акаунта, след което да го стартирате. В скрипта са описани и насоки за промени по някои директиви и активирането на допълнителни модули към PHP.

В помощната ни страница също е налична информация за различни настройки на PHP. Повече може да прочетете в категорията PHP.

Разбира се, нашият технически екип винаги е на разположение за съдействие и да отговори на вашите въпроси. А те са? 🙂

СуперХостинг.БГ

СуперХостинг.БГ е СуперЕкипът! Ежедневно всеки дава най-доброто от себе си, за да можете вие, клиентите на СуперХостинг.БГ, да сте номер едно. СуперСилата на СуперЕкипа е, че винаги е готов да ви даде точната информация, тази от която се нуждаете и за която питате.

500px270px
SuperHosting.BG

Препоръчани статии

Оставете коментар

10 Коментара към "CGI vs FastCGI или защо правим миграцията?"

Уведоми ме при
avatar
Radoslav
Гост

Как можем да проверим дали APC e инсталирано, защото май имам проблем с него?

Силвена Ралинова
Editor

Здравейте,

APC е инсталиран на всички Linux сървъри за споделен хостинг. Необходимо е да се активира допълнително чрез php.ini файл в конкретен хостинг акаунт. След това информация за него може да се види като се извика phpinfo().

В случай, че желаете да го ползвате, ще очакваме да ни пишете на support[a]superhosting.bg с данни за хостинг акаунта, за да можем да ви съдействаме с активирането му.

Веселин Георгиев
Гост

Здравейте и поздравления за подобренията и особено за eAccelerator-а. Активирането по подразбиране означава ли, че ще бъде активен за вече съществуващи акаунти или само за новосъзадени и трябва допълнително да го пуснем за старите.
Благодаря предварително!

Силвена Ралинова
Editor

Здравейте,

Смяната на протокола от CGI на FastCGI се извършва поетапно и за всички съществуващи акаунти. След като за акаунт се активира FastCGI, по подразбиране се активира и модула eAccelerator и/или APC.

Йордан
Гост

Моля, коментирайте сигурността на данните при използването на fastcgi? Пояснение: shm и opcode

Силвена Ралинова
Editor

Здравейте,

При използване на кеширащи модули като eAccelerator или APC, компилираният код се съхранява в паметта или във файлове. Всеки стартиран FastCGI процес се стартира като съответния UNIX потребител и ползва памет или файлове, които са достъпни само от самия него.

ЕМ БИ Вижън
Гост
Здравейте, всичко в статията е чудесно и полезно, само не става ясно едно – след като вече тече миграция и след всички изредени ползи от този протокол, значи ли, че може да се очакват спадове в PHP CPU time ползването благодарение на тази миграция? Въпросът ми е продуктуван от факта, че в общият случай щастливият клиент прави щастлив и хостинг провайдъра, но клиент на споделен хостинг притежаващ малък и не толкова посещаван сайт прави хостинг провайдъра още по-щастлив поради по-малко ползваните ресурси. Вторият ми въпрос е: Какво може да се… още »
Силвена Ралинова
Editor

Здравейте,

Както и вие сте уточнили, уеб сайтовете се различават и всеки случай е индивидуален, но да – в общия случай изразходваното процесорно време от PHP заявките намалява с промяната на протокола. Включително и при CMS системите може да се наблюдава както намаляване на PHP CPU времето, така и ускоряване на зареждането. Необходимо е обаче да се има предвид, че скоростта на зареждане на сайт зависи и от други фактори.

ЕМ БИ ВИЖЪН
Гост

Здравейте,
без да се обиждате, но отговора е толкова общ, че по-малко информация няма как да носи. Явно се налага да питам конкретно:
Интересува ме можете ли да предоставите по-конкретна информация (от “да, по принцип PHP CPU би трябвало да намалее”) що се касае WP?
Надявам се е излишно да уточнявам, че имам конкретна причина да се интересувам.
Поздрави

wpDiscuz