-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservers_and_deployment.html
116 lines (110 loc) · 21.5 KB
/
servers_and_deployment.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome file</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__left">
<div class="stackedit__toc">
<ul>
<li><a href="#серверлер-мен-жеткізу">Серверлер мен Жеткізу</a>
<ul>
<li><a href="#платформа-қызметі-ретінде-paas">Платформа қызметі ретінде (PaaS)</a></li>
<li><a href="#виртуалды-немесе-арнайы-серверлер">Виртуалды немесе Арнайы Серверлер</a></li>
<li><a href="#жалтырғыш-серверлер">Жалтырғыш Серверлер</a></li>
<li><a href="#өндіру-және-қолданбаны-қосу">Өндіру және Қолданбаны Қосу</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="stackedit__right">
<div class="stackedit__html">
<h1 id="серверлер-мен-жеткізу">Серверлер мен Жеткізу</h1>
<p>PHP қолданбалары өздерінің өнімін жасау мен жеткізу үшін көптеген жолдармен жұмыс істейді.</p>
<h2 id="платформа-қызметі-ретінде-paas">Платформа қызметі ретінде (PaaS)</h2>
<p>PaaS веб-даму үшін PHP қолданбаларын іске қосу үшін келісім мен желі жасау менеджментін ұсынатады. Бұл PHP қолданбалары немесе PHP фреймворттарын іске қосу немесе құралдарды көру үшін көмек көрсету үшін көмекші болады.</p>
<p>Соңғы уақытта PaaS, барлық өлшемдердің PHP қолданбаларын іске қосу, ұстау және масштабтау үшін популярлықты қазануда. Біздің <a href="https://phptherightway.com/#resources">ресурстар бөлімімізде</a> PHP PaaS “Платформа қызметі ретінде” ұсынатқыштардың тізімін таба аласыз.</p>
<h2 id="виртуалды-немесе-арнайы-серверлер">Виртуалды немесе Арнайы Серверлер</h2>
<p>Егер сіз жүйе басқарумен таныс болсаңыз немесе оны оқуға қызықты болсаңыз, виртуалды немесе арнайы серверлер сізге өз өніміңіздің әділдік көрсету көмек етеді.</p>
<h3 id="nginx-және-php-fpm">nginx және PHP-FPM</h3>
<p>PHP, PHP-нің қолданбалы FastCGI Процесс менеджері (FPM) арқылы, <a href="https://nginx.org/">nginx</a> арқылы тамашалау жасайды. Бұл жүктелген, жоғары бағдарламалы веб-сервер, Apache-ден кемінді дайын болады мен де көбірек сондай көп параллельді сұраулармен талдау жасауға болады. Бұл арнайы серверлер үшін мейірімді болып табылады.</p>
<ul>
<li><a href="https://nginx.org/">nginx туралы толығырақ оқу</a></li>
<li><a href="https://www.php.net/install.fpm">PHP-FPM туралы толығырақ оқу</a></li>
<li><a href="https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-trust-the-tutorials-check-your-configuration/">nginx және PHP-FPM-ді қауіпсіз жасау туралы толығырақ оқу</a></li>
</ul>
<h3 id="apache-және-php">Apache және PHP</h3>
<p>PHP және Apache үйлесімі бірдей тарихқа ие. Apache жоғары көрінетінді және функционалдылығын кеңейту үшін көптеген <a href="https://httpd.apache.org/docs/2.4/mod/">модульдер</a> бар. Бұл өзге жолды көздейді және WordPress сияқты ашық кодты қолданушы серверлер үшін популярлық таңдау болып табылады. Сондықтан Apache бастапқы көзге алары үшін көбірек ресурстарды қолдамайды және бір уақытта көптеген келушілерді өткізе алмайды.</p>
<p>Apache-де PHP іске қосу үшін көптеген баптаулар бар. Ең көп пайдаланушы және орны жасауы оңай болатыні <a href="https://httpd.apache.org/docs/2.4/mod/prefork.html">prefork MPM</a> мен <code>mod_php</code> пайдалану. Бұл ең тиімділікке ие емес, бірақ жұмыс істеу мен пайдалануы оңай. Өйткені, егер сіз серверді басқаруды көбірек талдау істеп жатсаңыз, бұл дайындай Apache-де басқару үшін дайындай тәжірибе болары жатсауыңызды ұмытпайтын көлемінде бар көптеген келушілерді сақтау үшін <a href="https://blogs.oracle.com/opal/post/php-fpm-fastcgi-process-manager-with-apache-2">mod_fastcgi</a> немесе <a href="https://httpd.apache.org/mod_fcgid/">mod_fcgid</a> мен де <a href="https://httpd.apache.org/docs/2.4/mod/worker.html">worker MPM</a> немесе <a href="https://httpd.apache.org/docs/2.4/mod/event.html">event MPM</a> мені ажырату үшін Apache-де тең FPM жүйесінден пайдалана аласыз. Бұл көлемді жоғары болары жатқыздан, сондай-ақ бұл жасау жатсау үшін көмек көрсететін іс қауіпті болады.</p>
<p>Егер сіз Apache 2.4 немесе оған жақын болсаңыз, <a href="https://httpd.apache.org/docs/current/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a> пайдалану арқылы көмекті жүзеге асыруды жасау үшін пайдалана аласыз.</p>
<ul>
<li><a href="https://httpd.apache.org/">Apache туралы толығырақ оқу</a></li>
<li><a href="https://httpd.apache.org/docs/2.4/mod/mpm_common.html">Көптеген өңдеу модулілері туралы толығырақ оқу</a></li>
<li><a href="https://blogs.oracle.com/opal/post/php-fpm-fastcgi-process-manager-with-apache-2">mod_fastcgi туралы толығырақ оқу</a></li>
<li><a href="https://httpd.apache.org/mod_fcgid/">mod_fcgid туралы толығырақ оқу</a></li>
<li><a href="https://httpd.apache.org/docs/current/mod/mod_proxy_fcgi.html">mod_proxy_fcgi туралы толығырақ оқу</a></li>
<li><a href="https://serversforhackers.com/video/apache-and-php-fpm">Apache мен PHP-FPM-ді mod_proxy_fcgi арқылы орнату туралы толығырақ оқу</a></li>
</ul>
<h2 id="жалтырғыш-серверлер">Жалтырғыш Серверлер</h2>
<p>PHP жалтырғыш серверлерге танымалы екеніне ену жасайды. PHP орнатылмаған хостты табу мүмкін емес, бірақ сондай-ақ соңғы нұсқасы болатындай болуын тексеріңіз. Жалтырғыш серверлер сізге және басқа дайындайларға веб-сайттарды бір машинаға дайындау мүмкіндігін береді. Бұл үшін басқа дайындайлармен қосымша келгенінің барлығы болмаса да, бұл ұсыныс етілгенді. Маңыздылығы, бұл сапа тарапынан арзан болғандықтан, бұлымды біле алмасаңыз, сіздің жақын жаттығушыларыңыздың не жасауымен айырмашылықтарын неше болатынын білмесеңіз. Жасауымның бюджеті жалтырғыш серверлерден сақталмаса да, бұлардан көмек алуға болады.</p>
<p>Жалтырғыш серверлеріңіздің PHP-ның соңғы нұсқасын ұсынатындығын тексеріңіз.</p>
<h2 id="өндіру-және-қолданбаны-қосу">Өндіру және Қолданбаны Қосу</h2>
<p>Егер сіз кестенің құрылымынан немесе файлдарыңызды жаңартқаннан бұрын (ауыр сапалы) тесттерінің нөмірін сынап шаруашылансаңыз, екі рет ойлаңыз! Өз қолыңызмен жаңа нұсқаны қолданбаны жарату үшін қажет болатын өзге өндіруді қолдану кезінде өлімге алысу мүмкіндіктері артуады. Сіз қарап тұрған жаңа жаңартуды, жалпы жасау процесін немесе дайындай интеграция стратегиясын көздеуіп, <a href="https://wikipedia.org/wiki/Build_automation">жасау автоматтығы</a> сіздің достарыңыз болады.</p>
<p>Автоматты жасауға ықпал еткізу көмек көрсету мүмкін болатын бірнеше қызметтерді:</p>
<ul>
<li>Қолданбаны басқару</li>
<li>Мақсатты жасау, жасауларды кеміту</li>
<li>Тесттерді іске қосу</li>
<li>Документацияны жасау</li>
<li>Тауарлау</li>
<li>Қосу</li>
</ul>
<h3 id="дайындау-құралдары">Дайындау Құралдары</h3>
<p>Дайындау құралдары, сіздің программалауының өйгеріс тапсыру үшін үйлестірілген сценарийлерді басқару кезеңідегі скрипттер топы ретінде сипатталатын. Дайындау құралы сіздің программалауының бөлігі емес, ол сіздің программалауыңызды «сырттағы» жасау үшін өтіп жұмыс істейді.</p>
<p>Сізге жақсы көмек көрсету үшін көмекше PHP жазылған бірнеше ашық көмектер бар, кейбірі PHP жазылмаса да. Бұл сізді бұзушын іске қоспаған болса, егер олар маған танымал болса, бірақ олар белгілі жұмыс істеу үшін жақсы болса, оларды қолдану мүмкін. Мысалы:</p>
<p><a href="https://www.phing.info/">Phing</a> XML орналасу файлынан пакеттеу, дайындау немесе тексеру процесін басқару үшін пайдаланылуы мүмкін. Phing (жасалғаны <a href="https://ant.apache.org/">Apache Ant</a>-ға асасланған) көмекші бірнеше рет тиісінше көрсетілетін міндеттер тізімін ұсынады. сайтты орнату немесе жаңарту үшін көмекші бірнеше қосымша міндеттермен жетілдіру үшін PHP-де жазылған қосымша міндеттермен кеңейтіледі. Бұл сауыт жасау ісімен ұйымдастырылған, ереже бойынша жақсы жабдыға ауысатылады және молданатын заттарды дайындау үшін мазмұнды кеңейтілдіру үшін кеңейтіле алады.</p>
<p><a href="https://capistranorb.com/">Capistrano</a> бір немесе бірнеше аралық-аймақтылық программалаушыларға командаларды біріктіріп жазу жолымен жасау үшін жүргізілетін жүйе. Ол қарауларды дайындау үшін алданымдалган тұрларды ұсынады, бірақ сіз біздің пайдаланушыларымыздың төменгі біліктілігіне негізделгендерін жасауға мүмкіндік беретіндей көмекші. Капистраноны успеш қолдану қажеттілігі Руби мен Рейк туралы білімінің болуына байланған.</p>
<p><a href="https://ansistrano.com/">Ansistrano</a> PHP, Python және Ruby кезінде скрипттелуші бағдарламаларды дайындау процесін (дайындау және бас тарту) оңай басқару үшін Ansible рөлдерін қамтиды. Бұл <a href="https://capistranorb.com/">Capistrano</a>-ның Ansible порттік, оның арқасында өтіп, ол бірнеше PHP компаниялары өткізді.</p>
<p><a href="https://deployer.org/">Deployer</a> PHP жазылған дайындау құралы. Ол сымпай және функционалды. Өзгерістерді параллельді іске қосу, атомды дайындау және серверлер арасында сақталу тексерістерінің бірден те болуын қамтиды. Symfony, Laravel, Zend Framework және Yii үшін көмекші адамдар үшін өзара көмекшілікті тасымалдау бар. Younes Rafie-нің мақаласы [Deployer ар</p>
<p>қылы PHP қолданбаларын жатты арнау жасау](<a href="https://www.sitepoint.com/deploying-php-applications-with-deployer/">https://www.sitepoint.com/deploying-php-applications-with-deployer/</a>) - оларды қолдану жолында қандайды пайдаланатындығын сипаттайды.</p>
<p><a href="https://www.magephp.com/">Magallanes</a> PHP жазылған басқа бір құрал, сізге ауыр мазмұнды YAML файлдарында орналастыру үшін қолдау көрсетеді. Олда бірнеше сервер мен ортам, атомды дайындау және өтініштер мен қоштасыз ауыр құралдарды пайдалануға арналған жатты атандырылған міндеттері бар.</p>
<h4 id="қосымша-оқу-материалдары">Қосымша оқу материалдары:</h4>
<ul>
<li><a href="https://code.tutsplus.com/tutorials/automate-your-projects-with-apache-ant--net-18595">Apache Ant арқылы проектіңізді автоматты түрде жүргізу</a></li>
<li><a href="https://deployingphpapplications.com/">PHP қолданбаларын дайындау үшін ең жақсы бағдарламалар мен әдістерді талдау жасау</a> - төлеу көрсетілген кітап.</li>
</ul>
<h3 id="серверді-орнату">Серверді орнату</h3>
<p>Бірнеше серверлермен өзінің жатты іске қосу және конфигурациялау істегіне қатты қарамастануы мүмкін бола алады. Сіздің деректерлік құрылғыларыңызды автоматтау арқылы деректерлік құрылғылардың деңгейі мен оларды дұрыс конфигурациялауыңызды көмек көрсету үшін олармен бас тарту үшін қолдау көрсетілетін құралдар бар. Олар өзіндікті көмек көрсету үшін қайталанатын көмек көрсетуші серверлерімен интеграция жасайтында, олармен төменгі облакты жасаушылармен (Amazon Web Services, Heroku, DigitalOcean т.б.) интеграциялау мүмкін болар.</p>
<p><a href="https://www.ansible.com/">Ansible</a> - сіздің инфраструктурасын YAML файлдары арқылы басқаратын құрал. Басқаруы жатты бастауы мүмкін және сізге сауатты жатты мен үлкен масштабты қолданбаларды басқаруы мүмкін. Ол облактық қосауларды басқару үшін API-ге ие, кейде алган құралдарды пайдалана отырып, оларды динамикалық інвентаризация арқылы басқаруы мүмкін.</p>
<p><a href="https://puppet.com/">Puppet</a> - серверлер мен конфигурацияларды басқару үшін өз тілі мен файл түрлері бар құрал. Ол мастер/клиент орнату жасауында немесе «мастер-жоқ» режимінде пайдалануға болады. Мастер/клиент режимінде клиенттер орташа мастер(д)дан жаңа конфигурацияны есептеу үшін белгіленген интервалда опрос жасауында жатты жүктеуі мен жаңартуы мүмкін. Мастер-жоқ режимінде сіз өзіңіздің бұларды ноделерге жіберу мүмкін.</p>
<p><a href="https://www.chef.io/">Chef</a> - бұл сізге бұл сервердік ортаны немесе виртуалды таспа басу үшін пайдалануға болатын қуатты Ruby-ден жасалған жүйелі интеграция каркасы. Ол жанында, Amazon Web Services қызметінін жүзеге асырады.</p>
<h4 id="көмектегі-оқу">Көмектегі оқу:</h4>
<ul>
<li><a href="https://serversforhackers.com/an-ansible-tutorial">Ansible үшін оқу материалдары</a></li>
<li><a href="https://leanpub.com/ansible-for-devops">Ansible for DevOps</a> - барлық не болмаса көмекшілік бойынша толық кітап</li>
<li><a href="https://leanpub.com/ansible-for-aws">Ansible for AWS</a> - Ansible мен Amazon Web Services жалпылауы үшін толық кітап</li>
<li><a href="https://web.archive.org/web/20190307220000/http://www.jasongrimes.org/2012/06/managing-lamp-environments-with-chef-vagrant-and-ec2-1-of-3/">Chef, Vagrant мен EC2 арқылы LAMP қолданбасын басқару туралы уақытылы блог сериясы</a></li>
<li><a href="https://github.com/sous-chefs/php">PHP мен PEAR пакеті менеджмент жүйесін орнату жөніндегі Chef Cookbook</a></li>
<li><a href="https://www.youtube.com/playlist?list=PL11cZfNdwNyNYcpntVe6js-prb80LBZuc">Chef бойынша бейнесіздік сериясы</a></li>
</ul>
<h3 id="жаттамасыз-жүйелік">Жаттамасыз жүйелік</h3>
<blockquote>
<p>Жаттамасыз жүйелік — бүйрек көмекшілерінің ішінде кездестірілген жұмыстарын жиі жаттамасыздату тәсілі, әдетте, күнделікті көп жеке көмекшілерге көмек көрсету арқылы жүргізіледі, себебі бұл көмекшілер күдікті жаттамасыздату саласынан өтетіндері әр күнге бір рет өтеді — күнделікті көп жаттамасыздатуға себеп болады. Көптеген командалар бұл әдісін қолдайтындарын талдап алу мен тізімді бағдарлама жасау арқылы бұл әдісді қолдануды анықтама жаттамасыздату мен командаларды терезе болмасы кездестіретін софтты жасауға мүмкіндік береді.</p>
</blockquote>
<p><em>– Мартин Фаулер</em></p>
<p>PHP үшін жаттамасыз жүйелік қолдану әдістерін реализациялау үшін көптеген тәсілдер бар. <a href="https://www.travis-ci.com/">Travis CI</a> малдарды да салу үшін жаттамасыз жүйелікті орындау адамдардың жұмысында жаттығушы ретінде өте мақсатты іс жасауда жақсы істеген. Travis CI — берілген жаттамасыз жүйелік қызметі. Ол GitHub және PHP т.б. көмекшілігіне кіруге болады. GitHub <a href="https://docs.github.com/en/actions">GitHub Actions</a> бойынша жаттамасыз жүйелік жұмыстары бар.</p>
<h4 id="көмектегі-оқу-1">Көмектегі оқу:</h4>
<ul>
<li><a href="https://jenkins.io/">Jenkins жаттамасыз жүйелікпен көмекшілік</a></li>
<li><a href="https://github.com/dancryer/phpci">PHPCI жаттамасыз жүйелікпен көмекшілік</a></li>
<li><a href="https://github.com/php-censor/php-censor">PHP Censor жаттамасыз жүйелікпен көмекшілік</a></li>
<li><a href="https://www.jetbrains.com/teamcity/">Teamcity жаттамасыз жүйелікпен көмекшілік</a></li>
</ul>
</div>
</div>
</body>
</html>