Arch Linux-da LAMP (Linux, Apache, MySQL/MariaDB we PHP/PhpMyAdmin) gurmak
Arch Linux çeýe kesiş döwri gurşawyny üpjün edýär we doly açyk çeşme bolup, ýadro we web programma üpjünçiliginde iň soňky çykanlary üpjün edýänligi sebäpli, möhüm däl ulgamlarda web programmalaryny ösdürmek üçin iň oňat çözgütdir. serwerler we maglumat bazalary.
Bu gollanmanyň esasy mazmuny, web ösüşinde iň köp ulanylýan programma üpjünçiliginiň birini gurmaga alyp barjak ädim ädimleri bilen doly ädim ätmekdir: LAMP (Linux, Apache, MySQL/MariaDB we PHP/PhpMyAdmin) we size Arch Linux ulgamynda ýok, ýöne birnäçe Wirtual Hostlar döretmek işini ýeňilleşdirip biljek ajaýyp aýratynlyklary (çalt we hapa Baş skriptleri) hödürlär. , ygtybarly HTTS amallary üçin zerur SSL şahadatnamalary we açarlar dörediň.
- Öňki Arch Linux gurmak prosesi - soňky bölegini DHCP bilen geçiriň.
- Arch Linux-da öňki LEMP gurnama - diňe Statik IP adresi we uzakdan SSH giriş sazlaýan bölek.
1-nji ädim: Esasy programma üpjünçiliginiň çyrasyny guruň
1. Statiki IP adresi we SSH ulanyp uzakdan ulgam ygtyýary bilen minimal ulgam gurlandan soň, pacman kömekçi kömegi bilen Arch Linux gutyňyzy täzeläň.
$ sudo pacman -Syu
2. Döwrebaplaşdyryş prosesi gutarandan soň LAMP böleklerden guruň, ilki bilen Apache Web Server guruň we her serwer prosesi daemonyny başlaň/barlaň.
$ sudo pacman -S apache $ sudo systemctl start httpd $ sudo systemctl status httpd
3. PHP dinamiki serwer tarapy skript dilini we Apache modulyny guruň.
$ sudo pacman -S php php-apache
4. Iň soňky ädimde MySQL maglumat bazasyny guruň, 1 ( MariaDB ) jemgyýetçilik maglumat bazasynyň wilkasyny saýlaň we daemon ýagdaýyny başlaň we barlaň.
$ sudo pacman -S mysql $ sudo systemctl start mysqld $ sudo systemctl status mysqld
Indi esasy LAMP programma üpjünçiligi guruldyňyz we şu wagta çenli deslapky konfigurasiýalardan başladyňyz.
2-nji ädim: MySQL maglumat bazasyny ygtybarly ediň
5. Indiki ädim, kök hasaby üçin parol goýmak, näbelli ulanyjy hasaplaryny aýyrmak, synag maglumatlar bazasyny aýyrmak we ulanyjy köküne uzakdan girmegi gadagan etmek bilen MySQL maglumat bazasyny goramakdyr ([ Enter Hawa bilen jogap beriň).
$ sudo mysql_secure_installation
6. Aşakdaky buýrugy işledip, MySQL maglumat bazasynyň baglanyşygyny barlaň, soňra çykmak ýa-da çykyş beýany bilen maglumat bazasynyň gabygyny goýuň.
$ mysql -u root -p
3-nji ädim: Apache esasy konfigurasiýa faýlyny üýtgediň
7. Aşakdaky konfigurasiýalaryň köpüsi, PHP skript dili, SSL ýa-da SSL däl Wirtual Hostlar bilen Wirtual Hosting üçin dinamiki interfeýs üpjün etmek üçin Apache Web Server bilen baglanyşykly. httpd hyzmat faýly konfigurasiýalaryny üýtgetmek arkaly amala aşyrylýar.
Ilki bilen halaýan tekst redaktoryňyz bilen esasy Apache faýl konfigurasiýasyny açyň.
$ sudo nano /etc/httpd/conf/httpd.conf
Faýlyň iň aşaky böleginde aşakdaky iki setiri goşuň.
IncludeOptional conf/sites-enabled/*.conf IncludeOptional conf/mods-enabled/*.conf
Bu ýerde goşuň jümleleriniň roly Apaçä mundan beýläk /etc/httpd/conf/sites -abled/ ( Wirtual Hosting üçin) we /etc/httpd/conf/mods -abled/ ( açyk serwer modullary üçin) gutarýan ulgam ýollary a .conf giňeltmesi.
8. Apache bu iki görkezme bilen görkezme berlensoň, aşakdaky buýruklary berýän zerur ulgam kataloglaryny dörediň.
$ sudo mkdir /etc/httpd/conf/sites-available $ sudo mkdir /etc/httpd/conf/sites-enabled $ sudo mkdir /etc/httpd/conf/mods-enabled
saýtlar elýeterli ýoly Apache-de işjeňleşdirilmedik ähli Wirtual Host konfigurasiýa faýllaryny saklaýar, ýöne indiki Baş skript bu bukjany şol ýerdäki web sahypalaryny baglanyşdyrmak we işletmek üçin ulanar.
4-nji ädim: a2eniste we a2diste Apache buýruklaryny dörediň
9. Indi Wirtual Host konfigurasiýa faýlyny işletmek ýa-da öçürmek üçin buýruk bolup hyzmat etjek a2ensite we a2dissite Apache skriptlerini döretmegiň wagty geldi. $HOME ulanyjy ýoluňyza gaýdyp gelmek we a2eniste we a2dissite skriptleriňizi döretmek üçin cd buýrugyny ýazyň. halanýan redaktor.
$ sudo nano a2ensite
Bu faýla aşakdaky mazmuny goşuň.
#!/bin/bash if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled ; then echo "-------------------------------" else mkdir /etc/httpd/conf/sites-available mkdir /etc/httpd/conf/sites-enabled fi avail=/etc/httpd/conf/sites-available/$1.conf enabled=/etc/httpd/conf/sites-enabled site=`ls /etc/httpd/conf/sites-available/` if [ "$#" != "1" ]; then echo "Use script: n2ensite virtual_site" echo -e "\nAvailable virtual hosts:\n$site" exit 0 else if test -e $avail; then sudo ln -s $avail $enabled else echo -e "$avail virtual host does not exist! Please create one!\n$site" exit 0 fi if test -e $enabled/$1.conf; then echo "Success!! Now restart Apache server: sudo systemctl restart httpd" else echo -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site" exit 0 fi fi
Indi a2dissite bash skript faýly dörediň.
$ sudo nano a2dissite
Aşakdaky mazmuny goşuň.
#!/bin/bash avail=/etc/httpd/conf/sites-enabled/$1.conf enabled=/etc/httpd/conf/sites-enabled site=`ls /etc/httpd/conf/sites-enabled` if [ "$#" != "1" ]; then echo "Use script: n2dissite virtual_site" echo -e "\nAvailable virtual hosts: \n$site" exit 0 else if test -e $avail; then sudo rm $avail else echo -e "$avail virtual host does not exist! Exiting" exit 0 fi if test -e $enabled/$1.conf; then echo "Error!! Could not remove $avail virtual host!" else echo -e "Success! $avail has been removed!\nsudo systemctl restart httpd" exit 0 fi fi
10. Faýllar döredilenden soň ýerine ýetiriş rugsatlaryny bölüň we ulgamyň giň bolmagy üçin olary PATH ýerine ýetirip boljak kataloga göçüriň.
$ sudo chmod +x a2ensite a2dissite $ sudo cp a2ensite a2dissite /usr/local/bin/
5-nji ädim: Apache-de wirtual hostlary dörediň
11. Arch Linux-daky Apache web serweri üçin wirtual host deslapky konfigurasiýa faýly /etc/httpd/conf/extra/ ýolunda ýerleşýän httpd-vhosts.conf faýly bilen üpjün edilýär, ýöne Wirtual Hostlary köp ulanýan ulgamyňyz bar bolsa, haýsy web sahypasynyň işjeňleşdirilendigini ýa-da ýokdugyny yzarlamak gaty kyn bolup biler. Web sahypasyny öçürmek etmek isleseňiz, ähli görkezmelerini teswirlemeli ýa-da pozmaly, ulgam köp web sahypasyny üpjün etse we web sahypaňyzda has köp konfigurasiýa görkezmeleri bar bolsa, bu kyn mesele bolup biler.
saýtlar elýeterli we saýtlar bilen işleýän ýollaryny ulanmak, açmak ýa-da web sahypalaryny öçürmek işini ep-esli aňsatlaşdyrýar we gorap saklaýar. ähli web sahypalaryňyzyň işjeňleşdirilen ýa-da işlemeýän konfigurasiýa faýllary.
Indiki ädimde, web sahypalarynyň faýllaryna (/srv/http ) hyzmat etmek üçin deslapky DocumentRoot ýoly bilen deslapky ýerlihosty görkezýän ilkinji Wirtual Host gurarys.
$ sudo nano /etc/httpd/conf/sites-available/localhost.conf
Aşakdaky Apache görkezmelerini şu ýere goşuň.
<VirtualHost *:80> DocumentRoot "/srv/http" ServerName localhost ServerAdmin [email ErrorLog "/var/log/httpd/localhost-error_log" TransferLog "/var/log/httpd/localhost-access_log" <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted </Directory> </VirtualHost>
Bu ýerdäki iň möhüm jümleler, Port we ServerName direktiwalary bolup, Apache 80 portunda tor birikmesini açmagy we ähli talaplary ýerlihost ady bilen gönükdirmegi tabşyrýar. /srv/http/ ýolunda ýerleşýän faýllara hyzmat ediň.
12. “Localhost” faýly döredilenden soň, ony işjeňleşdiriň we üýtgeşmeleri görmek üçin httpd daemonyny täzeden açyň.
$ sudo a2ensite localhost $ sudo systemctl restart httpd
13. Soňra uzak ulgam ulanýan bolsaňyz, brauzeriňizi http:// localhost görkeziň.
6-njy ädim: LAMP-da wirtual hosting bilen SSL-i işlediň
SSL ( Howpsuz rozetkalar gatlagy ), simmetrik/asimmetrik kriptografiýa düwmelerini ulanyp, ygtybarly kanalyň üsti bilen maglumat akymyny geçirýän HTTP birikmelerini torlar ýa-da internet arkaly şifrlemek üçin döredilen protokoldyr. we Arch Linux-da OpenSSL bukjasy bilen üpjün edilýär.
14. Dymmaklyk boýunça SSL moduly Arch Linux-daky Apache-de işledilmeýär we esasy httpd.conf konfigurasiýa faýlyndan mod_ssl.so modulyny açyp işjeňleşdirip bolýar. goşmaça httpd ýolunda ýerleşýän httpd-ssl.conf faýly.
Thingsöne zatlary ýönekeýleşdirmek üçin mods-mümkinçilikli ýolunda SSL üçin täze modul faýly dörederis we esasy Apache konfigurasiýa faýlyny elsiz galdyrarys. SSL moduly üçin aşakdaky faýly dörediň we aşakdaky mazmuny goşuň.
$ sudo nano /etc/httpd/conf/mods-enabled/ssl.conf
Aşakdaky mazmuny goşuň.
LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so Listen 443 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/run/httpd/ssl_scache(512000)" SSLSessionCacheTimeout 300
15. Indi şol bir ýerlihost adyny görkezýän, ýöne bu gezek SSL serwer konfigurasiýalaryny ulanýan Wirtual Host faýly dörediň we SSL bilen ýerlihostyň bardygyny ýatlatmak üçin adyny birneme üýtgediň.
$ sudo nano /etc/httpd/conf/sites-available/localhost-ssl.conf
Bu faýla aşakdaky mazmuny goşuň.
<VirtualHost *:443> DocumentRoot "/srv/http" ServerName localhost ServerAdmin [email ErrorLog "/var/log/httpd/localhost-ssl-error_log" TransferLog "/var/log/httpd/localhost-ssl-access_log" SSLEngine on SSLCertificateFile "/etc/httpd/conf/ssl/localhost.crt" SSLCertificateKeyFile "/etc/httpd/conf/ssl/localhost.key" <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/srv/http/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/httpd/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted </Directory> </VirtualHost>
Port we ServerName direktiwalaryndan başga-da, bu ýerdäki beýleki möhüm görkezmeler SSL şahadatnamasy faýly we SSL açary faýly görkezýänlerdir. entek döredilmedi, şonuň üçin Apache Web Serwerini täzeden açmaň ýa-da käbir ýalňyşlyklar ýüze çykar.
16. Gerekli SSL şahadatnama faýly we düwmeler döretmek üçin aşakdaky buýrugy berýän OpenSSL paketini guruň.
$ sudo pacman -S openssl
17. Soňra aşakdaky Baş skriptini dörediň, ähli Apache şahadatnamalaryňyzy we açarlary /etc/httpd/conf/ssl/ ulgam ýoly.
$ sudo nano apache_gen_ssl
Aşakdaky faýl mazmunyny goşuň, soňra ýazdyryň we ýerine ýetirip bilersiňiz.
#!/bin/bash mkdir /etc/httpd/conf/ssl cd /etc/httpd/conf/ssl echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx SSL certificate!" read cert openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key chmod 600 $cert.key openssl req -new -key $cert.key -out $cert.csr openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt echo -e " The certificate "$cert" has been generated!\nPlease link it to Apache SSL available website!" ls -all /etc/httpd/conf/ssl exit 0
$ sudo chmod +x apache_gen_ssl
Scriptazuwyň elýeterli bolmagyny isleseňiz, ýerine ýetirip boljak PATH göçüriň.
$ sudo cp /apache_gen_ssl /usr/local/bin/
18. Indi skripti işledip şahadatnamany we açarlary dörediň. SSL opsiýalaryňyzy beriň we resmi domeniňize ( FQDN ) gabat gelmek üçin şahadatnamanyň adyny we umumy at ýatdan çykarmaň.
$ sudo ./apache_gen_ssl
Şahadatnama we açarlar döredilenden soň, SSL Wirtual Host şahadatnamasyny we bu şahadatnamanyň adyna gabat gelýän düwmeler konfigurasiýalaryny üýtgetmegi ýatdan çykarmaň.
19. Iň soňky ädim, täze SSL Wirtual Hosty işjeňleşdirmek we konfigurasiýalary ulanmak üçin serweriňizi täzeden açmak.
$ sudo a2ensite localhost-ssl $ sudo systemctl restart httpd
Bu! Brauzeri açýandygyny we HTTPS protokolyny ulanyp URL-de Arch IP goşmak üçin: https:/localhost ýa-da https:/system_IP .
7-nji ädim: Apache-de PHP-i işlediň
20. Adaty tertipde Apache diňe dinamiki skript dilleri goldawy bolmadyk Arch Linux-da HTML statiki faýl mazmunyna hyzmat edýär. PHP-ni işjeňleşdirmek üçin ilki bilen Apache esasy konfigurasiýa faýly açyň, soňra aşakdaky LoadModule jümlesini gözläň we açyň ( php-apache Arch Linux-da mod_mpm_event bilen işlemeýär) ).
$ sudo nano /etc/httpd/conf/httpd.conf
[Ctrl] + [w] ulanyp, şuňa meňzeş bolmak üçin aşakdaky setiri gözläň we düşündiriş beriň.
#LoadModule mpm_event_module modules/mod_mpm_event.so
21. Soňra aşakdaky mazmunly mod-mümkinçilikli ýolunda PHP moduly üçin täze faýl dörediň.
$ sudo nano /etc/httpd/conf/mods-enabled/php.conf
Aşakdaky mazmuny goşuň ( mod_mpm_prefork ulanmaly).
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so LoadModule php5_module modules/libphp5.so Include conf/extra/php5_module.conf
22. Sazlamany barlamak üçin DocumnetRoot-da (/srv/http/) info.php atly bir faýl dörediň, soňra Apache-i täzeden açyň we brauzeriňizi maglumatyna görkeziň .php faýly: https: //localhost/info.php .
<?php phpinfo(); ?>
$ sudo systemctl restart httpd
Bu! Everythinghli zat ýokardaky surata meňzeýän bolsa, indi Apache-de PHP dinamiki serwer tarapyndaky skript dili açyk we indi WordPress ýaly açyk çeşme CMS ulanyp web sahypalaryny ösdürip bilersiňiz.
Apache sintaksis konfigurasiýalaryny barlamak we httpd daemonyny täzeden açmazdan ýüklenen modullaryň sanawyny görmek isleseňiz, aşakdaky buýruklary işlediň.
$ sudo apachectl configtest $ sudo apachectl -M
8-nji ädim: PhpMyAdmin-i guruň we sazlaň
23. MySQL buýruk setirini özleşdirmeýän bolsaňyz we web interfeýsi arkaly berilýän MySQL maglumatlar bazasyna ýönekeý uzakdan girmek isleýän bolsaňyz, Arch gutyňyzda gurlan PhpMyAdmin bukjasy gerek.
$ sudo pacman -S phpmyadmin php-mcrypt
24. Paketler gurlansoň, käbir PHP giňeltmelerini ( mysqli.so , mcrypt.so - içerki tanamak üçin) işletmeli we başga-da işledip bilersiňiz. Geljekdäki CMS platformalary üçin zerur bolan modullar, openssl.so , imap.so ýa-da iconv.so we ş.m.
$ sudo nano /etc/php/php.ini
Aboveokardaky giňeltmeleri tapyň.
extension=mcrypt.so extension=mssql.so extension=mysqli.so extension=openssl.so extension=iconv.so extension=imap.so extension=zip.so extension=bz2.so
Şeýle hem, şol bir faýlda open_basedir jümlesini gözläň we tapyň we PhpMyAdmin ulgam ýoluny goşuň (/etc/webapps/ we /usr/share/webapps/) PHP-iň şol kataloglardaky faýllara girip we okap biljekdigine göz ýetirmek üçin (Wirtual Hosts DocumentRoot ýoluny /srv/http/ -den başga bir ýere üýtgedip, täze ýoly hem goşmaly. ).
25. PhpMyAdmin web interfeýsine girmek üçin iň soňky etmeli işiňiz, wirtual öý eýelerine PhpMyAdmin Apache jümlelerini goşmak. Howpsuzlyk çäresi hökmünde, PhpMyAdmin Web Interfeýsine diňe başga wirtual Hostlardan däl-de, HTTPS protokolyny ulanyp, diňe ýerlihostdan (ýa-da ulgam IP adresi) girip boljakdygyna göz ýetirer. Şeýlelik bilen, localhost-ssl.conf Apache faýlyňyzy we aşaky bölegini açyň, soňky beýanyndan aşakdaky mazmuny goşuň.
$ sudo nano /etc/httpd/conf/sites-enabled/localhost-ssl.conf
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin" <Directory "/usr/share/webapps/phpMyAdmin"> DirectoryIndex index.html index.php AllowOverride All Options FollowSymlinks Require all granted </Directory>
26. Ondan soň Apache daemonyny täzeden açyň we brauzeriňizi aşakdaky adrese görkeziň we PhpMyAdmin web interfeýsine girip bilersiňiz: https:/localhost/phpmyadmin ýa-da https:/system_IP/phpmyadmin .
27. PhpMyAdmin-e gireniňizden soň, blowfish_secret bilen baglanyşykly aşakdaky ýalňyşlygy görseňiz, /etc/webapps/phpmyadmin/config.inc.php faýly açyň we redaktirläň. Aşakdaky sözlemdäki ýaly tötänleýin setir goýuň, soňra sahypany täzeläň.
$cfg['blowfish_secret'] = ‘{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V’ ;
9-njy ädim: Lamp ulgamynyň giňligini açyň
28. Ulgam täzeden açylandan soň LAMP stakasynyň awtomatiki işe başlamagyny isleseňiz, aşakdaky buýruklary işlediň.
$ sudo systemctl enable httpd mysqld
Bu, Arch Linux ulgamyny ýönekeý, ýöne güýçli, çalt we ygtybarly web platformasyna öwürmek üçin zerur bolan LAMP esasy konfigurasiýa sazlamalarynyň käbiri. -kritiki gurşaw, ýöne birkemsiz bolsaňyz we ony uly önümçilik gurşawynda ulanmak isleseňiz, köp sabyrlylyk bilen ýaraglanmaly we paket täzelenmelerine goşmaça üns bermeli we çalt ulgamyň dikeldilmegi üçin yzygiderli ulgam ätiýaçlyk şekillerini döretmeli. ulgamdaky näsazlyklar.