Programinės įrangos diegimas ir konfigūravimas Linux VPS / LAMP diegimas ir konfigūravimas
| |

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 DebianUbuntu:

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:„Apache“ bandomasis puslapis „CentOS“.

Debian, Ubuntu matome tokį užrašą:Apache bandomasis puslapis Debian, Ubuntu

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į.Apache-PHP paketo bandomasis puslapis Debian, Ubuntu

Š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ą..Apache-MySQL-PHP bandomasis puslapis

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į.phpMyAdmin pradžios puslapis

Įveskite mūsų MySQL prisijungimo vardą ir slaptažodį.

Sėkmingai prisijungėme.phpMyAdmin valdymo pultas

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.Paslaugų pašalinimas iš paleidimo „CentOS“, „Debian“, „Ubuntu“.

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: Apache moduliai

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 serveriaiMinSpareServers 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%:Sistemos stebėjimas naudojant htop

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į Google PageSpeed ​​​​Insights.

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».

Autorius

Įvertinkite straipsnį

0 / 12

Your page rank:

Kiti straipsniai

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *