Серверлер мен Жеткізу

PHP қолданбалары өздерінің өнімін жасау мен жеткізу үшін көптеген жолдармен жұмыс істейді.

Платформа қызметі ретінде (PaaS)

PaaS веб-даму үшін PHP қолданбаларын іске қосу үшін келісім мен желі жасау менеджментін ұсынатады. Бұл PHP қолданбалары немесе PHP фреймворттарын іске қосу немесе құралдарды көру үшін көмек көрсету үшін көмекші болады.

Соңғы уақытта PaaS, барлық өлшемдердің PHP қолданбаларын іске қосу, ұстау және масштабтау үшін популярлықты қазануда. Біздің ресурстар бөлімімізде PHP PaaS “Платформа қызметі ретінде” ұсынатқыштардың тізімін таба аласыз.

Виртуалды немесе Арнайы Серверлер

Егер сіз жүйе басқарумен таныс болсаңыз немесе оны оқуға қызықты болсаңыз, виртуалды немесе арнайы серверлер сізге өз өніміңіздің әділдік көрсету көмек етеді.

nginx және PHP-FPM

PHP, PHP-нің қолданбалы FastCGI Процесс менеджері (FPM) арқылы, nginx арқылы тамашалау жасайды. Бұл жүктелген, жоғары бағдарламалы веб-сервер, Apache-ден кемінді дайын болады мен де көбірек сондай көп параллельді сұраулармен талдау жасауға болады. Бұл арнайы серверлер үшін мейірімді болып табылады.

Apache және PHP

PHP және Apache үйлесімі бірдей тарихқа ие. Apache жоғары көрінетінді және функционалдылығын кеңейту үшін көптеген модульдер бар. Бұл өзге жолды көздейді және WordPress сияқты ашық кодты қолданушы серверлер үшін популярлық таңдау болып табылады. Сондықтан Apache бастапқы көзге алары үшін көбірек ресурстарды қолдамайды және бір уақытта көптеген келушілерді өткізе алмайды.

Apache-де PHP іске қосу үшін көптеген баптаулар бар. Ең көп пайдаланушы және орны жасауы оңай болатыні prefork MPM мен mod_php пайдалану. Бұл ең тиімділікке ие емес, бірақ жұмыс істеу мен пайдалануы оңай. Өйткені, егер сіз серверді басқаруды көбірек талдау істеп жатсаңыз, бұл дайындай Apache-де басқару үшін дайындай тәжірибе болары жатсауыңызды ұмытпайтын көлемінде бар көптеген келушілерді сақтау үшін mod_fastcgi немесе mod_fcgid мен де worker MPM немесе event MPM мені ажырату үшін Apache-де тең FPM жүйесінден пайдалана аласыз. Бұл көлемді жоғары болары жатқыздан, сондай-ақ бұл жасау жатсау үшін көмек көрсететін іс қауіпті болады.

Егер сіз Apache 2.4 немесе оған жақын болсаңыз, mod_proxy_fcgi пайдалану арқылы көмекті жүзеге асыруды жасау үшін пайдалана аласыз.

Жалтырғыш Серверлер

PHP жалтырғыш серверлерге танымалы екеніне ену жасайды. PHP орнатылмаған хостты табу мүмкін емес, бірақ сондай-ақ соңғы нұсқасы болатындай болуын тексеріңіз. Жалтырғыш серверлер сізге және басқа дайындайларға веб-сайттарды бір машинаға дайындау мүмкіндігін береді. Бұл үшін басқа дайындайлармен қосымша келгенінің барлығы болмаса да, бұл ұсыныс етілгенді. Маңыздылығы, бұл сапа тарапынан арзан болғандықтан, бұлымды біле алмасаңыз, сіздің жақын жаттығушыларыңыздың не жасауымен айырмашылықтарын неше болатынын білмесеңіз. Жасауымның бюджеті жалтырғыш серверлерден сақталмаса да, бұлардан көмек алуға болады.

Жалтырғыш серверлеріңіздің PHP-ның соңғы нұсқасын ұсынатындығын тексеріңіз.

Өндіру және Қолданбаны Қосу

Егер сіз кестенің құрылымынан немесе файлдарыңызды жаңартқаннан бұрын (ауыр сапалы) тесттерінің нөмірін сынап шаруашылансаңыз, екі рет ойлаңыз! Өз қолыңызмен жаңа нұсқаны қолданбаны жарату үшін қажет болатын өзге өндіруді қолдану кезінде өлімге алысу мүмкіндіктері артуады. Сіз қарап тұрған жаңа жаңартуды, жалпы жасау процесін немесе дайындай интеграция стратегиясын көздеуіп, жасау автоматтығы сіздің достарыңыз болады.

Автоматты жасауға ықпал еткізу көмек көрсету мүмкін болатын бірнеше қызметтерді:

Дайындау Құралдары

Дайындау құралдары, сіздің программалауының өйгеріс тапсыру үшін үйлестірілген сценарийлерді басқару кезеңідегі скрипттер топы ретінде сипатталатын. Дайындау құралы сіздің программалауының бөлігі емес, ол сіздің программалауыңызды «сырттағы» жасау үшін өтіп жұмыс істейді.

Сізге жақсы көмек көрсету үшін көмекше PHP жазылған бірнеше ашық көмектер бар, кейбірі PHP жазылмаса да. Бұл сізді бұзушын іске қоспаған болса, егер олар маған танымал болса, бірақ олар белгілі жұмыс істеу үшін жақсы болса, оларды қолдану мүмкін. Мысалы:

Phing XML орналасу файлынан пакеттеу, дайындау немесе тексеру процесін басқару үшін пайдаланылуы мүмкін. Phing (жасалғаны Apache Ant-ға асасланған) көмекші бірнеше рет тиісінше көрсетілетін міндеттер тізімін ұсынады. сайтты орнату немесе жаңарту үшін көмекші бірнеше қосымша міндеттермен жетілдіру үшін PHP-де жазылған қосымша міндеттермен кеңейтіледі. Бұл сауыт жасау ісімен ұйымдастырылған, ереже бойынша жақсы жабдыға ауысатылады және молданатын заттарды дайындау үшін мазмұнды кеңейтілдіру үшін кеңейтіле алады.

Capistrano бір немесе бірнеше аралық-аймақтылық программалаушыларға командаларды біріктіріп жазу жолымен жасау үшін жүргізілетін жүйе. Ол қарауларды дайындау үшін алданымдалган тұрларды ұсынады, бірақ сіз біздің пайдаланушыларымыздың төменгі біліктілігіне негізделгендерін жасауға мүмкіндік беретіндей көмекші. Капистраноны успеш қолдану қажеттілігі Руби мен Рейк туралы білімінің болуына байланған.

Ansistrano PHP, Python және Ruby кезінде скрипттелуші бағдарламаларды дайындау процесін (дайындау және бас тарту) оңай басқару үшін Ansible рөлдерін қамтиды. Бұл Capistrano-ның Ansible порттік, оның арқасында өтіп, ол бірнеше PHP компаниялары өткізді.

Deployer PHP жазылған дайындау құралы. Ол сымпай және функционалды. Өзгерістерді параллельді іске қосу, атомды дайындау және серверлер арасында сақталу тексерістерінің бірден те болуын қамтиды. Symfony, Laravel, Zend Framework және Yii үшін көмекші адамдар үшін өзара көмекшілікті тасымалдау бар. Younes Rafie-нің мақаласы [Deployer ар

қылы PHP қолданбаларын жатты арнау жасау](https://www.sitepoint.com/deploying-php-applications-with-deployer/) - оларды қолдану жолында қандайды пайдаланатындығын сипаттайды.

Magallanes PHP жазылған басқа бір құрал, сізге ауыр мазмұнды YAML файлдарында орналастыру үшін қолдау көрсетеді. Олда бірнеше сервер мен ортам, атомды дайындау және өтініштер мен қоштасыз ауыр құралдарды пайдалануға арналған жатты атандырылған міндеттері бар.

Қосымша оқу материалдары:

Серверді орнату

Бірнеше серверлермен өзінің жатты іске қосу және конфигурациялау істегіне қатты қарамастануы мүмкін бола алады. Сіздің деректерлік құрылғыларыңызды автоматтау арқылы деректерлік құрылғылардың деңгейі мен оларды дұрыс конфигурациялауыңызды көмек көрсету үшін олармен бас тарту үшін қолдау көрсетілетін құралдар бар. Олар өзіндікті көмек көрсету үшін қайталанатын көмек көрсетуші серверлерімен интеграция жасайтында, олармен төменгі облакты жасаушылармен (Amazon Web Services, Heroku, DigitalOcean т.б.) интеграциялау мүмкін болар.

Ansible - сіздің инфраструктурасын YAML файлдары арқылы басқаратын құрал. Басқаруы жатты бастауы мүмкін және сізге сауатты жатты мен үлкен масштабты қолданбаларды басқаруы мүмкін. Ол облактық қосауларды басқару үшін API-ге ие, кейде алган құралдарды пайдалана отырып, оларды динамикалық інвентаризация арқылы басқаруы мүмкін.

Puppet - серверлер мен конфигурацияларды басқару үшін өз тілі мен файл түрлері бар құрал. Ол мастер/клиент орнату жасауында немесе «мастер-жоқ» режимінде пайдалануға болады. Мастер/клиент режимінде клиенттер орташа мастер(д)дан жаңа конфигурацияны есептеу үшін белгіленген интервалда опрос жасауында жатты жүктеуі мен жаңартуы мүмкін. Мастер-жоқ режимінде сіз өзіңіздің бұларды ноделерге жіберу мүмкін.

Chef - бұл сізге бұл сервердік ортаны немесе виртуалды таспа басу үшін пайдалануға болатын қуатты Ruby-ден жасалған жүйелі интеграция каркасы. Ол жанында, Amazon Web Services қызметінін жүзеге асырады.

Көмектегі оқу:

Жаттамасыз жүйелік

Жаттамасыз жүйелік — бүйрек көмекшілерінің ішінде кездестірілген жұмыстарын жиі жаттамасыздату тәсілі, әдетте, күнделікті көп жеке көмекшілерге көмек көрсету арқылы жүргізіледі, себебі бұл көмекшілер күдікті жаттамасыздату саласынан өтетіндері әр күнге бір рет өтеді — күнделікті көп жаттамасыздатуға себеп болады. Көптеген командалар бұл әдісін қолдайтындарын талдап алу мен тізімді бағдарлама жасау арқылы бұл әдісді қолдануды анықтама жаттамасыздату мен командаларды терезе болмасы кездестіретін софтты жасауға мүмкіндік береді.

– Мартин Фаулер

PHP үшін жаттамасыз жүйелік қолдану әдістерін реализациялау үшін көптеген тәсілдер бар. Travis CI малдарды да салу үшін жаттамасыз жүйелікті орындау адамдардың жұмысында жаттығушы ретінде өте мақсатты іс жасауда жақсы істеген. Travis CI — берілген жаттамасыз жүйелік қызметі. Ол GitHub және PHP т.б. көмекшілігіне кіруге болады. GitHub GitHub Actions бойынша жаттамасыз жүйелік жұмыстары бар.

Көмектегі оқу: