Programinės įrangos diegimas ir konfigūravimas Linux VPS / LAMP diegimas ir konfigūravimas
LAMP yra operacinės sistemos ir atvirojo kodo programinės įrangos derinys, skirtas dinamiškoms svetainėms ir žiniatinklio programoms maitinti. Akronimas LAMP yra kilęs iš pirmųjų jį sudarančių komponentų raidžių: Linux OS, Apache žiniatinklio serverio, MySQL duomenų bazės ir PHP/Perl/Python programavimo kalbos..
LAMP montavimas ir konfigūracija šiek tiek skiriasi priklausomai nuo pasirinkto Linux OS platinimas. Šis straipsnis skirtas populiariausių Linux platinimų vartotojams: CentOS ir Debian/Ubuntu.
Prisijunkite prie serverio per SSH su root vartotojo teisėmis ir pradėkite diegimą.
Pirmiausia oficialiose saugyklose atnaujiname informaciją apie naujus paketus ir jų priklausomybes.
Įveskite komandą:
Dėl CentOS:
yum -y update
Dėl Debian, Ubuntu:
apt-get -y update
„Apache“ žiniatinklio serverio diegimas
Dėl CentOS:
yum -y install httpd
Dėl Debian, Ubuntu:
apt-get -y install apache2
Paleiskite įdiegtą žiniatinklio serverį:
Dėl CentOS:
service httpd start
Dėl Debian, Ubuntu:
service apache2 start
Jei žiniatinklio serveris buvo paleistas automatiškai po įdiegimo, matysime atitinkamą pranešimą apie tai. Taip pat visada galime patikrinti esamą žiniatinklio serverio (kaip ir bet kurios kitos paslaugos) būseną naudodami komandą:
Dėl CentOS:
service httpd status
Dėl Debian, Ubuntu:
service apache2 status
Dabar galite išbandyti „Apache“ diegimą.
Pavyzdžiui, naršyklėje eikime į savo serverio IP adresą http://0.0.0.0, kur vietoj nulių nurodome IP, kuris buvo išduotas kuriant serverį.
Sėkmingo žiniatinklio serverio įdiegimo rodiklis CentOS bus toks bandomasis puslapis:
V Debian, Ubuntu matome tokį užrašą:
Dabar, kai Apache yra įdiegtas ir paleistas, turėtumėte pridėti jį prie paleisties, kad jis būtų paleistas automatiškai, jei serveris bus paleistas iš naujo:
Dėl CentOS:
chkconfig httpd on
Dėl Debian, Ubuntu:
update-rc.d apache2 defaults
MySQL duomenų bazės serverio įdiegimas
MySQL yra duomenų bazių valdymo sistema, naudojama duomenims struktūrizuoti ir ieškoti.
Norėdami įdiegti MySQL serverį, paleiskite komandą:
Dėl CentOS:
yum -y install mysql-server
Dėl Debian, Ubuntu:
apt-get -y install mysql-server
Po įdiegimo į Debian, Ubuntu Atsiras langas, kuriame bus įvestas naujas MySQL serverio root vartotojo slaptažodis. Kadangi numatytasis diegimas yra prisijungimas prie serverio kaip root neįvedant slaptažodžio, labai rekomenduojama tai išspręsti iškart nustatant slaptažodį. Kaip nustatyti pagrindinį slaptažodį CentOS, bus aprašyta toliau..
Paleiskite MySQL serverį ir pridėkite jį prie automatinio paleidimo:
Dėl CentOS:
service mysqld start chkconfig mysqld on
Dėl Debian, Ubuntu:
service mysql start update-rc.d mysql defaults
Tada paleidžiame scenarijų, kuris padės mums nustatyti pagrindinį slaptažodį (jei jis dar nebuvo nustatytas), taip pat atlikti kai kuriuos kitus saugos nustatymus:
mysql_secure_installation
Mums bus užduodami keli klausimai paeiliui, į visus juos rekomenduojama atsakyti teigiamai, remiantis saugumo sumetimais (Y arba tiesiog įveskite):
Nustatyti root slaptažodį? [Y/n] Rootinio slaptažodžio nustatymas, jei jis anksčiau nebuvo nustatytas.
Pašalinti anoniminius naudotojus? [Y/n] Anoniminio vartotojo pašalinimas, leidžiantis prisijungti prie MySQL be paskyros. Ši funkcija skirta tik testavimui..
Neleisti root prisijungimo nuotoliniu būdu? [Y/n] Draudimas nuotoliniu būdu prisijungti kaip root, paliekant prieigą tik iš „localhost“’.
Pašalinti bandymų duomenų bazę ir prieigą prie jos? [Y/n] Bandymų duomenų bazės ištrynimas.
Dabar iš naujo įkelti privilegijų lenteles? [Y/n] Taikykite ką tik atliktus pakeitimus.
Patikrinkime, ar dabar galima prisijungti prie MySQL kaip root neįvedant slaptažodžio. Įveskite komandą:
mysql -u root
Jei matome žemiau nurodytą klaidą, vadinasi, viskas veikia tinkamai – kaip ir turėtų būti, jis neįleis mūsų kaip root be slaptažodžio.
KLAIDA 1045 (28000): vartotojui „root“@“localhost“ prieiga uždrausta (naudojant slaptažodį: NE)
Jei bandysime pridėti jungiklį -p ir įvesti root slaptažodį, mums turėtų būti sėkmingai leista.
mysql -u root -p
Jei šiame etape jis jūsų neįleidžia, dar kartą patikrinkite, ar slaptažodis įvestas teisingai.
Nustatymuose iš karto nustatėme MyISAM kaip numatytąjį lentelių saugojimo variklį, kuris rodo geresnį našumą ne per daug užimtuose serveriuose. Tai mums pravers vėliau. Norėdami tai padaryti, atidarykite „MySQL“ konfigūracijos failą:
Dėl CentOS:
nano /etc/my.cnf
Dėl Debian, Ubuntu:
nano /etc/mysql/my.cnf
ir pridėkite šias eilutes:
default-storage-engine=MyISAM default-tmp-storage-engine=MyISAM skip-innodb
MySQL serverio paleidimas iš naujo:
Dėl CentOS:
service mysqld restart
Dėl Debian, Ubuntu:
service mysql restart
PHP diegimas
PHP yra scenarijų programavimo kalba, reikalinga daugumai programinės įrangos serveryje paleisti, įskaitant forumus, svetainės turinio valdymo sistemas, tokias kaip WordPress ir kt..
Įdiekite PHP ir modulį MySQL palaikymui PHP:
Dėl CentOS:
yum -y install php php-mysql
Dėl Debian, Ubuntu:
apt-get -y install php5 php5-mysql
Mums taip pat gali prireikti kai kurių papildomų modulių, pavyzdžiui: gd (darbas su vaizdais), mbstring (kelių baitų kodavimo palaikymas, įskaitant UTF-8), mcrypt (šifravimo palaikymas)
Norėdami juos įdiegti, padarykime:
Dėl CentOS:
yum -y install php-gd php-mbstring php-mcrypt
Dėl Debian, Ubuntu:
apt-get -y install php5-gd php5-mbstring php5-mcrypt
Iš naujo paleiskite „Apache“.:
Dėl CentOS:
service httpd restart
Dėl Debian, Ubuntu:
service apache2 restart
Norėdami išbandyti PHP diegimą, turite sukurti failą su PHP funkcija ir įdėti jį į Apache šakninį aplanką. Šis aplankas skiriasi aptariamuose platinimuose, todėl taip:
Dėl CentOS:
cd /var/www/html
Dėl Debian, Ubuntu:
cd /var/www
Sukurkite ir atidarykite failą redaguoti
nano phptest.php
Įklijuokite žemiau esantį kodą, išsaugokite (Ctrl+O) ir išeikite iš teksto rengyklės (Ctrl+X):
<?php phpinfo(); ?>
Dabar atidarykime phptest.php naršyklėje, kad patikrintumėte PHP ir jo modulių funkcionalumą
http://0.0.0.0/phptest.php, kur vietoj nulių nurodome IP, kuris buvo išduotas kuriant serverį.
Ši lentelė reiškia, kad PHP yra įdiegtas ir veikia. Slinkdami lentelę žemyn, taip pat galime pamatyti įdiegtų PHP modulių sąrašą.
Mums nebereikia bandomojo PHP failo, todėl galime jį ištrinti (norėdami patvirtinti ištrynimą, tiesiog paspauskite klavišą Y ir Enter):
rm phptest.php
Taigi, yra įdiegta Apache, MySQL ir PHP. Belieka patikrinti, kaip PHP veikia prisijungimas prie duomenų bazės. Norėdami tai padaryti, sukurkime kitą failą tame pačiame aplanke, kuriame esame dabar, ir pavadinkime jį dbtest.php
Nukopijuokime toliau esantį kodą į jį, pakeisdami Slaptažodis mūsų MySQL root slaptažodis. Nepamirškite išsaugoti failo.
<?php $connect = mysql_connect("localhost", "root", "password"); if (!$connect) { die('ERROR! ' . mysql_error()); } else { echo "Connected successfully!"; } mysql_close($connect); ?>
Atidarykime dbtest.php naršyklėje įvesdami į adreso juostą http://0.0.0.0/dbtest.php, kur vietoj nulių nurodome IP, kuris buvo išduotas kuriant serverį.
Jei viską padarėme teisingai, pasirodys pranešimas, nurodantis sėkmingą prisijungimą..
Galimos problemos atidarant dbtest.php naršyklėje
Galime matyti šias klaidas:
1) KLAIDA! Nepavyksta prisijungti prie vietinio MySQL serverio per lizdą '/var/run/mysqld/mysqld.sock’ (2)
Ši klaida reiškia, kad „MySQL“ paslauga sustojo ir turėtumėte ją paleisti paleisdami:
Dėl CentOS:
service mysqld start Для '''Debian, Ubuntu''': <pre>service mysql start
2) KLAIDA! Prieiga uždrausta vartotojui 'root'@'localhost' (naudojant slaptažodį: TAIP)
Turite dar kartą patikrinti root slaptažodį dbtest.php, todėl buvo įvestas neteisingai.
3) Prieš mus yra tuščias baltas puslapis.
Jei turime tuščią baltą puslapį, tai reiškia, kad bandomasis kodas buvo nukopijuotas neteisingai.
Jei bandymas buvo sėkmingas, ištrinkite bandomąjį failą:
rm dbtest.php
Įdiegti phpMyAdmin
phpMyAdmin – MySQL duomenų bazės valdymo įrankis per žiniatinklio sąsają.
Dėl CentOS:
Pagal numatytuosius nustatymus phpMyAdmin nėra įtraukta į oficialias CentOS saugyklas, todėl naudosime EPEL (Extra Packages for Enterprise Linux) saugyklą.).
Atsisiųskite EPEL:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
EPEL montavimas:
rpm -Uvh epel-release-6*.rpm
Ištriname atsisiųstą failą, nes mums jo nebereikės:
rm epel-release-6*.rpm
Įdiegę paketą galite manyti, kad reikiama saugykla buvo pridėta. Pradėkime diegti phpMyAdmin
yum -y install phpmyadmin
Pagal numatytuosius nustatymus phpMyAdmin CentOS yra sukonfigūruotas taip, kad neleistų niekam prie jo prisijungti. Mes ketiname tai ištaisyti, nes be to diegimas nebūtų prasmingas.
Atidarykite konfigūracijos failą
nano /etc/httpd/conf.d/phpMyAdmin.conf
rasti liniją <Katalogas /usr/share/phpmyadmin>
ir skyriuje Apache 2.2 pakeisti
Order Deny,Allow Deny from All
įjungta
Order Allow,Deny Allow from All
Išsaugokite failą (Ctrl + O) ir išeikite iš teksto rengyklės (Ctrl + X).
Dėl Debian, Ubuntu:
apt-get -y install phpmyadmin
Diegimo metu mūsų bus paprašyta pasirinkti žiniatinklio serverį, kuris turėtų būti automatiškai sukonfigūruotas paleisti phpMyAdmin
Norėdami pasirinkti, paspauskite tarpo klavišą apache2, tada Skirtukas Ir Įeikite.
Tada bus sukurtas vartotojas phpmyadmin ir jai skirta duomenų bazė. Norėdami tai padaryti, turėsite įvesti pagrindinį MySQL slaptažodį
ir du kartus didesnis vartotojo slaptažodis phpmyadmin.
Norėdami žymiai sumažinti serverio įsilaužimo tikimybę, pakeisime kelią į phpMyAdmin, į kurį naršome naršyklėje. Norėdami tai padaryti, atidarykite konfigūracijos failą ir atlikite šiuos pakeitimus:
Dėl CentOS:
nano /etc/httpd/conf.d/phpMyAdmin.conf
Stygų radimas:
Pseudonimas /phpMyAdmin /usr/share/phpMyAdmin
Pseudonimas /phpmyadmin /usr/share/phpMyAdmin
ir pakeiskite juos į
#Pseudonimas /phpMyAdmin /usr/share/phpMyAdmin
Pseudonimas /phpmyconsole /usr/share/phpMyAdmin
Dėl Debian, Ubuntu:
nano /etc/phpmyadmin/apache.conf
Linijos keitimas
Pseudonimas /phpmyadmin /usr/share/phpmyadmin
už kitą
Pseudonimas /phpmyconsole /usr/share/phpmyadmin
Atkreipkite dėmesį, kad vietoj phpmyconsole savo nuožiūra galite nurodyti bet kokį raidžių ir skaičių derinį, kuriuo bus patogu pasiekti phpMyAdmin pultą.
Išsaugokite failą ir išeikite iš teksto rengyklės.
Tai užbaigia phpMyAdmin sąranką. Iš naujo paleiskite „Apache“.
Dėl CentOS:
service httpd restart
Dėl Debian, Ubuntu:
service apache2 restart
Dabar galime prisijungti prie phpMyAdmin konsolės spustelėję nuorodą naršyklėje
http://0.0.0.0/phpmyconsole/, kur vietoj nulių nurodome IP, kuris buvo išduotas kuriant serverį.
Įveskite mūsų MySQL prisijungimo vardą ir slaptažodį.
Sėkmingai prisijungėme.
Dabar mes galime valdyti MySQL duomenų bazes per žiniatinklio sąsają.
Diegimas baigiamas, tačiau norint optimaliai panaudoti išteklius, reikės šiek tiek optimizuoti LAMP komponentus.
LAMP optimizavimas svetainei
Įdiegus visą svetainės talpinimui reikalingą programinę įrangą, prasminga optimizuoti serverio darbą: padidinsite tiek našumą, tiek sumažinsite serverio resursų suvartojimą, o dėl to sutaupysite pinigų ir nereikės pirkti daugiau. galingas serveris. Kiekvieno šaltinio tipo (tinklaraščio, forumo, internetinės parduotuvės) optimizavimas gali šiek tiek skirtis, tačiau yra pagrindinių rekomendacijų, tinkančių beveik kiekvienai TVS..
Pirmiausia rekomenduojama pašalinti iš paleisties paslaugas, kurių neplanuojame naudoti. Norėdami pamatyti jų sąrašą, įdiekite specialią programą ir paleiskite ją:
Dėl CentOS:
yum -y install ntsysv ntsysv
Dėl Debian, Ubuntu:
apt-get -y install rcconf rcconf
Pažiūrėkime, kaip pašalinti paslaugą nuo paleidimo, naudodami pranešimų persiuntimo agentų pavyzdį. (Postfix V CentOS arba Exim V Debian, Ubuntu), kurios yra standartinėje instaliacijoje. Jei nesame suinteresuoti pašto funkcionalumu tam tikrame serveryje, Postfix/Exim galite saugiai jį išjungti. Norėdami naršyti, naudokite rodykles aukštyn ir žemyn, pereidami prie dominančio elemento, paspauskite tarpo klavišą, kad pašalintumėte žvaigždutę iš laužtinių skliaustų, tada Skirtukas norėdami pereiti prie mygtuko Gerai Ir Įeikite.
Tada išjunkite registravimą laikas (paskutinis failo prieigos laikas) failų sistemai ext4. Norėdami tai padaryti, atidarykite konfigūracijos failą, valdantį automatinį failų sistemų diegimą:
nano /etc/fstab
ir pridėkite parinktį noatime ketvirtame pirmosios eilutės stulpelyje, kaip parodyta toliau:
/dev/xvda1 / ext4 defaults,discard,errors=remount-ro,noatime 1 1 /dev/xvda2 swap swap defaults 0 0
Dabar turite iš naujo įdiegti šakninę failų sistemą, kurią ką tik pakeitėte paleisdami komandą:
mount / -o remount
Apache optimizavimas
Numatytasis „Apache“ žiniatinklio serveris įkelia daugybę nereikalingų modulių, kurie sunaudoja brangius išteklius. Galite patikrinti, kurie moduliai yra įdiegti ir įjungti, naudodami šią komandą:
Dėl CentOS:
httpd -M
Dėl Debian, Ubuntu:
apache2ctl -M
Žemiau pateikiamas modulių, reikalingų daugumos svetainių veikimui, sąrašas:
- slapyvardis
- autoindeksas
- authz_host
- ištuštinti
- rež
- baigiasi
- log_config
- mimika
- derybos
- PHP5
- perrašyti
- setenvif
Kiti bendrinami moduliai gali būti išjungti. Tai sutaupys daug išteklių apdorojant užklausą. Tuo pačiu metu galime įjungti/išjungti reikiamus modulius. Norėdami išjungti, atlikite šiuos veiksmus::
Dėl CentOS:
Atidarykite konfigūracijos failą
nano /etc/httpd/conf/httpd.conf
ir pakomentuokite eilutę su moduliu, kurio mums nereikia:
#LoadModule название_модуля относительный_путь_к_модулю
Dėl Debian, Ubuntu:
Vykdykite komandą:
a2dismod название_модуля
Norėdami įjungti modulį, turite padaryti priešingai:
Dėl CentOS:
Atidarykite konfigūracijos failą
nano /etc/httpd/conf/httpd.conf
ir pridėkite tokią eilutę:
LoadModule название_модуля относительный_путь_к_модулю
Pavyzdžiui,
LoadModule rewrite_module modules/mod_rewrite.so
Dėl Debian, Ubuntu:
Vykdykite komandą:
a2enmod название_модуля
Pavyzdžiui,
a2enmod rewrite
Visų Apache modulių aprašymus galite rasti oficialioje svetainėje:
Prefork kelių procesorių modulio parametrų konfigūravimas:
Dėl CentOS:
nano /etc/httpd/conf/httpd.conf
Dėl Debian, Ubuntu:
nano /etc/apache2/apache2.conf
Prefork modulio parametrų bloko suradimas pagal eilutę:
Dėl CentOS:
<IfModule prefork.c>
Dėl Debian, Ubuntu:
<IfModule mpm_prefork_module>
Išanalizuokime kiekvienos direktyvos paskirtį ir nustatykime rekomenduojamas reikšmes.
direktyvos Pradėti serveriai, MinSpareServers Ir MaxSpareServers leidžia iš anksto turėti kelis sukurtus procesus atmintyje, kad nereikėtų jų kurti kiekvieną kartą gavus užklausą.
Pakoreguosime nustatymus. Leiskite Apache sukurti 3 procesus po paleidimo:
StartServers 3
Jei liko mažiau nei 3 laisvi procesai, „Apache“ paliks 3 atidarytus:
MinSpareServers 3
Leiskime Apache palikti ne daugiau nei 5 laisvus procesus, likusieji turi būti sunaikinti
MaxSpareServers 5
ServerLimit nustato maksimalią vertę MaxClients per visą „Apache“ serverio proceso gyvavimo ciklą. Reikšmė ServerLimit neturėtų viršyti vertės MaxClients siekiant išlaikyti sistemos stabilumą.
direktyvą MaxClients apibrėžia maksimalų serverio apdorojamų lygiagrečių užklausų skaičių. Rekomenduojama periodiškai koreguoti šį parametrą, pasirenkant optimalią vertę diapazone 128 — 4096.
direktyvą MaxRequestsPer Child nustato didžiausią užklausų skaičių, kurį vienas antrinis procesas gali apdoroti prieš nutraukdamas. Numatytoji reikšmė 0 reiškia, kad sukurtas procesas niekada nebus nutrauktas. Pakeiskime šį nustatymą, kad išvengtume atminties nutekėjimo rizikos. Mūsų pavyzdyje po 4096 apdorotų užklausų procesas bus paleistas iš naujo:
MaxRequestsPerChild 4096
Ačiū Išlaikyti gyvą užklausos sukuria nuolatinius ryšius tarp kliento ir serverio. Taip taupomi ištekliai, nes ryšio nereikia atkurti. Nustatykite laukimo laiką prieš uždarant iki 30 sekundžių:
KeepAlive On KeepAliveTimeout 30
Norint pasiekti geriausią našumą, labai rekomenduojama apriboti registravimą keičiant parametrą LogLevel nuo įspėjimo iki klaidos:
LogLevel error
Nuo modulio ištuštinti (gzip failų glaudinimas) jau įjungtas, belieka jį pritaikyti skirtingiems failų tipams, kad būtų žymiai sumažintas srautas. Tai daroma taip:
Dėl CentOS:
Sukurkite konfigūracijos failą:
nano /etc/httpd/conf.d/deflate.conf
Dėl Debian, Ubuntu:
Ištrinkite seną konfigūracijos failą ir vietoj jo sukurkite tuščią:
rm /etc/apache2/mods-enabled/deflate.conf && nano /etc/apache2/mods-enabled/deflate.conf
Į sukurtą failą įterpkite bloką:
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript </IfModule>
Atminkite, kad kai kuriose TVS nustatymuose glaudinimas taip pat turi būti priverstinai įjungtas.
Po šių manipuliacijų iš naujo paleiskite „Apache“.:
Dėl CentOS:
service httpd restart
Dėl Debian, Ubuntu:
service apache2 restart
PHP optimizavimas
Atidarykite konfigūracijos failą:
Dėl CentOS:
nano /etc/php.ini
Dėl Debian, Ubuntu:
nano /etc/php5/apache2/php.ini
Kai kurių parametrų reikšmes keičiame pagal toliau pateiktas rekomendacijas:
zlib.output_compression = Off zlib.output_compression_level = -1
Suspaudimo išjungimas (darant prielaidą, kad jis įjungtas „Apache“, kaip rekomenduojama aukščiau).
max_execution_time = 5
Maksimalaus scenarijaus vykdymo laiko nustatymas (sekundėmis). Atkreipkite dėmesį, kad internetinė parduotuvė gali reikalauti ilgesnio scenarijaus vykdymo (pvz., filtruojant produktus).
memory_limit = 40M
Maksimalus scenarijaus sunaudotos atminties kiekis. Nors pagal numatytuosius nustatymus šis parametras yra 128 MB, rekomenduojama jį kelis kartus sumažinti, kad išvengtumėte situacijos, kai keli prastai parašyti scenarijai „suvalgytų“ visą serveryje esančią atmintį.
expose_php = Off
Draudimas PHP siųsti savo versiją kartu su kiekvienu atsakymu į užklausą (sumažina įsilaužimo tikimybę, nes įsilaužėlis gali nustatyti galimus serverio pažeidžiamumus, įskaitant PHP versiją).
report_memleaks = On
Registravimo klaidos apie aptiktus atminties nutekėjimus.
post_max_size = 4M upload_max_filesize = 4M
Didžiausias atsisiunčiamų užklausų ir failų dydis. Nenustatykite per didelio dydžio, jei tokio poreikio nėra. Parametras pašto_maksimalus_dydis neturėtų viršyti atminties_riba, anksčiau įdiegta.
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
Registruojamos tik svarbiausios klaidos.
Jei įdiegėme senesnes nei 5.5 PHP versijas, mums reikės APC (Alternative PHP Cache), kuri talpykloje išsaugos sukompiliuotus PHP scenarijus, leidžiančius juos naudoti pakartotinai be pakartotinio kompiliavimo. Tai žymiai sumažina apkrovą. Pakeitus failus, talpykla automatiškai iš naujo nustatoma ir dėl to scenarijai iš naujo sukompiliuojami prieš paleidžiant. Kelių palaikymo paketų įdiegimas:
Dėl CentOS:
yum -y install php-pear php-devel httpd-devel pcre-devel gcc make
O dabar, tiesą sakant, pats APC:
pecl install apc
Diegimo proceso metu mums bus užduodami keli klausimai, po kiekvieno iš jų paspauskite Enter (priimkite numatytuosius nustatymus). Ši komanda įgalina APC plėtinį:
echo "extension=apc.so" > /etc/php.d/apc.ini
Dėl Debian, Ubuntu:
Čia užteks vienos komandos:
apt-get -y install php-apc
Tolesnis PHP veikimo optimizavimas pasiekiamas talpinant duomenis ir optimizuojant patį PHP kodą.
Forumų TVS taip pat rekomenduojama išjungti derinimo režimą, nes tai labai sulėtina darbą (žr. savo TVS vadovą).
MySQL optimizavimas
Kadangi „MySQL“ iš pradžių buvo sukurta dirbti su mažomis duomenų bazėmis ir su silpna technine įranga, optimizuojame parametrus, kad pagerintume našumą, atlikdami konfigūracijos failo pakeitimus.:
Dėl CentOS:
nano /etc/my.cnf
Dėl Debian, Ubuntu:
nano /etc/mysql/my.cnf
Nustatykite šias reikšmes:
key_buffer = 300M
RAM kiekis, kuriame bus pridėti indeksai. Šią vertę nustatome į 30% visos serveryje esančios RAM.
query_cache_size = 32M
Prašyti talpyklos. Kai ši vertė didėja, našumas ir atminties suvartojimas didėja tiesiogiai proporcingai. Taigi galite pradėti nuo 32 MB ir, jei reikia, padidinti šią vertę.
table_cache = 64
Atmintis skirta atviroms lentelėms.
VPS veikimo patikrinimas
Galime naudoti komandą, norėdami įvertinti svetainės puslapio reagavimą prieš ir po LAMP konfigūracijos pakeitimų, kad nustatytų, ar koregavimas padėjo, ar pablogino situaciją. Norint gauti rezultatą, pritaikius tik vieną kriterijų reikia išmatuoti reakcijos laiką, kad keli pakeitimai nepanaikintų vienas kito. Norėdami išmatuoti atsako laiką, naudojame komandą:
curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}\ http://www.yourdomain.com
kur vietoj http://www.yourdomain.com įterpiame nuorodą į puslapį, kurio atsakymo laikas mus domina.
Pavyzdžiui, mums bus pateiktas trijų verčių rezultatas:
0.070:0.230:0.655
Visi šie laikmačiai skaičiuojami nuo užklausos pradžios, net prieš pasiekiant DNS. Taigi, po to, kai pateikiama užklausa, žiniatinklio serveris apdoroja užklausą ir pradeda grąžinti duomenis per 0,230–0,071 = 0,159 sekundės. Klientas sugaišo 0,655 – 0,230 = 0,425 sekundės, atsisiųsdamas duomenis iš serverio.
Stebėdami šiuos rezultatus galėsime susidaryti vaizdą apie svetainės reagavimo į vartotojų užklausas greitį.
Taip pat įdiegiame programą, su kuria mums bus patogu valdyti naudojamos atminties kiekį ir procesoriaus apkrovą. Įveskite komandą:
Dėl CentOS:
yum -y install htop
Dėl Debian, Ubuntu:
apt-get -y install htop
Paleidžiame:
htop
Kaip matote ekrano kopijos viršuje, mūsų bandomasis diegimas sunaudoja 191 MB atminties (apie 20 %) ir įkelia kiekvieną procesoriaus branduolį 1,3%:
Be to, kas išdėstyta aukščiau, galime analizuoti svetainės greitį naudodami „Google Pagespeed“ įrankį. Ši paslauga nurodys mums aktualias problemas ir pateiks naudingų rekomendacijų. Norėdami pradėti analizę, tiesiog įveskite nuorodą į norimą paslaugos puslapį
Tai užbaigia LAMP diegimą ir pradinį optimizavimą.
Galite pradėti diegti turinio valdymo sistemą (TVS)).
Jus taip pat gali sudominti instrukcijos «Kaip susieti domeną su svetaine».
Įvertinkite straipsnį