Installazzjoni ta' LAMP (Linux, Apache, MySQL/MariaDB, u PHP/PhpMyAdmin) f'Arch Linux
Arch Linux jipprovdi ambjent ta 'sistema ta' età tat-tqattigħ flessibbli u huwa soluzzjoni qawwija l-aktar adattata għall-iżvilupp ta 'applikazzjonijiet tal-web fuq sistemi żgħar mhux kritiċi minħabba l-fatt li huwa Open Source komplet u jipprovdi l-aħħar rilaxxi aġġornati fuq Kernels u softwer tal-web għal servers u databases.
Dan l-ambitu ewlieni ta’ dan it-tutorja huwa li jiggwidak permezz ta’ struzzjonijiet sħaħ pass pass li fl-aħħar iwasslu biex tinstalla waħda mill-aktar kombinazzjoni ta’ softwer użata fl-Iżvilupp tal-Web: LAMP (Linux, Apache, MySQL/MariaDB, u PHP/PhpMyAdmin )u se tippreżentalek xi karatteristiċi sbieħ (skripts Bash malajr u maħmuġin) li mhumiex preżenti f'sistema Arch Linux, iżda jistgħu jħaffu x-xogħol fuq il-ħolqien ta' Virtwali Hosts multipli. , iġġenera Ċertifikati SSL u Ċwievet meħtieġa għal tranżazzjonijiet HTTS sikuri.
- Proċess ta' Installazzjoni ta' Arch Linux preċedenti – aqbeż l-aħħar parti b'DHCP.
- Istallazzjoni preċedenti LEMP fuq Arch Linux – il-parti biss bil-konfigurazzjoni ta' Indirizz IP Statiku u aċċess SSH remot.
Pass 1: Installa Softwer Bażiku LAMPA
1. Wara installazzjoni minima tas-sistema b'indirizz IP statiku u aċċess remot għas-sistema bl-użu ta 'SSH, aġġorna l-kaxxa Arch Linux tiegħek billi tuża l-utilità pacman.
$ sudo pacman -Syu
2. Meta l-proċess ta 'aġġornament jispiċċa tinstalla LAMPA minn biċċiet, l-ewwel installa Apache Web Server u ibda/vverifika kull daemon tal-proċess tas-server.
$ sudo pacman -S apache $ sudo systemctl start httpd $ sudo systemctl status httpd
3. Installa PHP lingwa ta' scripting dinamika fuq is-server u l-modulu Apache tagħha.
$ sudo pacman -S php php-apache
4. Fuq l-aħħar pass installa d-database MySQL, agħżel 1 (MariaDB) furketta tad-database tal-komunità imbagħad ibda u ċċekkja l-istatus tad-daemon.
$ sudo pacman -S mysql $ sudo systemctl start mysqld $ sudo systemctl status mysqld
Issa għandek is-softwer LAMP bażiku installat u bdejt b'konfigurazzjonijiet default s'issa.
Pass 2: Sikura MySQL Database
5. Il-pass li jmiss huwa li tassigura d-database MySQL billi tistabbilixxi password għall-kont root, neħħi l-kontijiet tal-utenti anonimi, neħħi d-database tat-test u ma tħallix il-login remot għall-għerq tal-utent ( agħfas [Daħħal] ċavetta għall-password kurrenti tal-kont root u wieġeb b'Iva fuq il-mistoqsijiet tas-sigurtà kollha).
$ sudo mysql_secure_installation
6. Ivverifika l-konnettività tad-database MySQL billi tħaddem il-kmand li ġej imbagħad ħalli l-qoxra tad-database b'dikjarazzjoni nieqaf jew ħruġ.
$ mysql -u root -p
Pass 3: Immodifika l-Fajl tal-Konfigurazzjoni Prinċipali tal-Apache
7. Il-konfigurazzjonijiet li ġejjin huma l-biċċa l-kbira tagħhom relatati ma' Apache Web Server biex jipprovdu interface dinamiku għal Virtual Hosting b'lingwa ta' scripting PHP, Hosts Virtwali SSL jew mhux SSL u jistgħu isir billi timmodifika l-konfigurazzjonijiet tal-fajl tas-servizz httpd.
L-ewwel iftaħ il-konfigurazzjoni prinċipali tal-fajl Apache bl-editur tat-test favorit tiegħek.
$ sudo nano /etc/httpd/conf/httpd.conf
Fil-qiegħ nett tal-fajl, waħħal iż-żewġ linji li ġejjin.
IncludeOptional conf/sites-enabled/*.conf IncludeOptional conf/mods-enabled/*.conf
Ir-rwol tad-dikjarazzjonijiet Inkludi hawnhekk huwa li tgħid lil Apache li minn issa 'l quddiem, għandu jaqra aktar konfigurazzjonijiet mill-fajls kollha li joqogħdu f'/etc/httpd/conf/sites-enabled/ (għal Virtual Hosting) u /etc/httpd/conf/mods-enabled/ ( għal moduli server attivati) mogħdijiet tas-sistema li jispiċċaw fi estensjoni .conf.
8. Wara li Apache ikun ġie mgħallem b'dawn iż-żewġ direttivi, oħloq id-direttorji tas-sistema meħtieġa billi joħorġu l-kmandi li ġejjin.
$ sudo mkdir /etc/httpd/conf/sites-available $ sudo mkdir /etc/httpd/conf/sites-enabled $ sudo mkdir /etc/httpd/conf/mods-enabled
Il-mogħdija siti-disponibbli żżomm il-fajls kollha tal-konfigurazzjonijiet tal-Ospiti Virtwali li mhumiex attivati fuq Apache iżda l-iskript Bash li jmiss se juża dan id-direttorju biex jgħaqqad u jippermetti websajts li jinsabu hemm.
Pass 4: Oħloq Kmandi Apache a2eniste u a2diste
9. Issa wasal iż-żmien li toħloq a2ensite u a2dissite skripts Apache li se jservu bħala kmandi biex jippermettu jew jiskonnettjaw il-fajl tal-konfigurazzjoni tal-Ospitanti Virtwali. Ittajpja l-kmand cd biex terġa' lura għall-mogħdija ta' l-utent $HOME tiegħek u toħloq l-iskripts bash a2eniste u a2dissite billi tuża tiegħek editur favorit.
$ sudo nano a2ensite
Żid il-kontenut li ġej fuq dan il-fajl.
#!/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
Issa oħloq a2dissite bash script file.
$ sudo nano a2dissite
Ehmeż il-kontenut li ġej.
#!/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. Wara li l-fajls inħolqu, alloka permessi ta' eżekuzzjoni u kkopjahom f'direttorju eżekutibbli PATH biex tagħmilhom disponibbli fis-sistema kollha.
$ sudo chmod +x a2ensite a2dissite $ sudo cp a2ensite a2dissite /usr/local/bin/
Pass 5: Oħloq Hosts Virtwali f'Apache
11. Il-fajl tal-konfigurazzjoni default Virtual Host għas-server tal-Web Apache fuq Arch Linux huwa pprovdut minn httpd-vhosts.conf fajl li jinsab fil-mogħdija /etc/httpd/conf/extra/ iżda jekk għandek sistema li tuża ħafna Virtual Hosts jista 'jkun diffiċli ħafna biex iżżomm kont ta' liema websajt hija attivata jew le u. Jekk trid tiddiżattiva websajt trid tikkummenta jew tħassar id-direttivi kollha tagħha u din tista' tkun missjoni diffiċli jekk is-sistema tipprovdi ħafna websajts u l-websajt tiegħek għandha aktar direttivi ta' konfigurazzjoni.
L-użu ta' mogħdijiet siti-disponibbli u siti attivati, jissimplifika bil-kbir ix-xogħol ta' attivazzjoni jew diżattivazzjoni ta' websajts u jippreserva wkoll il-fajls kollha tal-konfigurazzjoni tal-websajts tiegħek anki jekk huma attivati jew le.
Fil-pass li jmiss se nibnu l-ewwel Ospitanti Virtwali li jindika lokalhost default bil-mogħdija default DocumentRoot biex isservi fajls tal-websajts (/srv/http.
$ sudo nano /etc/httpd/conf/sites-available/localhost.conf
Żid id-direttivi Apache li ġejjin hawn.
<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>
L-aktar dikjarazzjonijiet importanti hawnhekk huma direttivi Port u ServerName li jagħtu struzzjonijiet lil Apache biex jiftaħ konnessjoni tan-netwerk fuq il-port 80 u jidderieġi mill-ġdid il-mistoqsijiet kollha bl-isem localhost lejn iservu fajls li jinsabu fit-triq /srv/http/.
12. Wara li jkun inħoloq il-fajl localhost, attivah imbagħad terġa' tibda httpd daemon biex tara l-bidliet.
$ sudo a2ensite localhost $ sudo systemctl restart httpd
13. Imbagħad ippunta l-browser tiegħek lejn http://localhost, jekk tħaddem mis-sistema Arch jew http://Arch_IP jekk tuża sistema remota.
Pass 6: Ippermetti SSL b'Virtwali Hosting fuq LAMP
SSL (Secure Sockets Layer) huwa protokoll iddisinjat biex jikkripta konnessjonijiet HTTP fuq netwerks jew Internet, li jagħmlu l-fluss tad-dejta biex jiġi trażmess fuq kanal sikur bl-użu ta’ ċwievet kriptografiċi simetriċi/assimetriċi u huwa pprovdut f'Arch Linux minn pakkett OpenSSL.
14. B'mod awtomatiku l-modulu SSL mhuwiex attivat fuq Apache f'Arch Linux u jista' jiġi attivat billi jitneħħa l-kumment tal-modulu mod_ssl.so mill-fajl tal-konfigurazzjoni prinċipali httpd.conf u Inkludi httpd-ssl.conf fajl li jinsab fil-mogħdija httpd żejda.
Iżda biex nissimplifikaw l-affarijiet aħna se noħolqu fajl modulu ġdid għal SSL fil-mogħdija mods-enabled u nħallu l-fajl ewlieni tal-konfigurazzjoni Apache mhux mimsus. Oħloq il-fajl li ġej għall-modulu SSL u żid il-kontenut ta 'hawn taħt.
$ sudo nano /etc/httpd/conf/mods-enabled/ssl.conf
Ehmeż il-kontenut li ġej.
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. Issa oħloq fajl Ospitanti Virtwali li jindika l-istess isem localhost iżda din id-darba tuża konfigurazzjonijiet tas-server SSL, u biddel ftit ismu biex infakkarkom li tirrappreżenta localhost b'SSL.
$ sudo nano /etc/httpd/conf/sites-available/localhost-ssl.conf
Żid il-kontenut li ġej fuq dan il-fajl.
<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>
Minbarra d-direttivi Port u ServerName, direttivi importanti oħra hawn huma dawk li jindikaw fajl Ċertifikat SSL u fajl SSL Key li għadhom mhumiex maħluqa sabiex terġax tibda Apache Web Server jew ikollok xi żbalji.
16. Biex toħloq il-fajl taċ-Ċertifikat SSL u ċ-Ċwievet meħtieġa installa l-pakkett OpenSSL billi toħroġ il-kmand hawn taħt.
$ sudo pacman -S openssl
17. Imbagħad oħloq l-iskript Bash li ġej li awtomatikament joħloq u jaħżen Ċertifikati Apache u Ċwievet kollha tiegħek fi /etc/httpd/conf /ssl/mogħdija tas-sistema.
$ sudo nano apache_gen_ssl
Żid il-kontenut tal-fajl li ġej imbagħad issalvah u għamilha eżekutibbli.
#!/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
Jekk trid li l-iskrittura tkun disponibbli fis-sistema kollha, ikkupjaha f'PATH eżekutibbli.
$ sudo cp /apache_gen_ssl /usr/local/bin/
18. Issa iġġenera Ċertifikat u Ċwievet billi tħaddem l-iskript. Ipprovdi l-għażliet SSL tiegħek u tinsiex l-isem taċ-ċertifikat u l-Isem Komuni biex jaqblu mad-dominju uffiċjali tiegħek (FQDN).
$ sudo ./apache_gen_ssl
Wara li nħolqu ċ-ċertifikat u ċ-ċwievet, tinsiex timmodifika ċ-ċertifikat SSL Virtual Host tiegħek u l-konfigurazzjonijiet taċ-ċwievet biex jaqblu mal-isem ta’ dan iċ-ċertifikat.
19. L-aħħar pass huwa li tattiva l-Ospitanti Virtwali SSL ġdid u terġa 'tibda s-server tiegħek biex tapplika konfigurazzjonijiet.
$ sudo a2ensite localhost-ssl $ sudo systemctl restart httpd
Dak hu! Biex tivverifikah iftaħ il-brawżer u żid Arch IP fuq URL billi tuża protokoll HTTPS: https://localhost jew https://system_IP.
Pass 7: Ippermetti PHP fuq Apache
20. B'mod awtomatiku Apache jservi biss kontenut ta' fajls statiċi HTML f'Arch Linux mingħajr appoġġ għal lingwi dinamiċi ta' scripting. Biex tattiva PHP l-ewwel iftaħ il-fajl tal-konfigurazzjoni prinċipali ta' Apache imbagħad fittex u neħħi l-kumment tad-dikjarazzjoni LoadModule li ġejja (php-apache ma taħdimx ma' mod_mpm_event f'Arch Linux ).
$ sudo nano /etc/httpd/conf/httpd.conf
Billi tuża [Ctrl]+[w] fittex u tikkummenta l-linja li ġejja biex tidher bħal din.
#LoadModule mpm_event_module modules/mod_mpm_event.so
21. Imbagħad oħloq fajl ġdid għall-modulu PHP fil-mogħdija mods-enabled bil-kontenut li ġej.
$ sudo nano /etc/httpd/conf/mods-enabled/php.conf
Żid eżattament il-kontenut li ġej (trid tuża mod_mpm_prefork).
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so LoadModule php5_module modules/libphp5.so Include conf/extra/php5_module.conf
22. Biex tivverifika l-issettjar oħloq PHP fajl bl-isem info.php fid-DocumnetRoot tiegħek (/srv/http/), imbagħad erġa ibda Apache u poġġi l-browser tiegħek lejn info .php fajl: https://localhost/info.php.
<?php phpinfo(); ?>
$ sudo systemctl restart httpd
Dak hu! Jekk kollox jidher qisu immaġini hawn fuq, issa għandek lingwa ta' scripting PHP dinamika fuq is-server attivata fuq Apache u issa tista' tiżviluppa websajts billi tuża Open Source CMS bħal WordPress pereżempju.
Jekk trid tivverifika l-konfigurazzjonijiet tas-sintassi tal-Apache u tara lista ta 'moduli mgħobbija mingħajr ma terġa' tibda l-httpd daemon mexxi l-kmandi li ġejjin.
$ sudo apachectl configtest $ sudo apachectl -M
Pass 8: Installa u Konfigurazzjoni PhpMyAdmin
23. Jekk ma tikkontrollax il-linja ta 'kmand MySQL u trid aċċess remot sempliċi għad-database MySQL ipprovdut permezz ta' interface tal-web allura għandek bżonn PhpMyAdmin pakkett installat fuq il-kaxxa Arch tiegħek.
$ sudo pacman -S phpmyadmin php-mcrypt
24. Wara li l-pakketti jkunu ġew installati għandek bżonn tattiva xi estensjonijiet PHP (mysqli.so, mcrypt.so – għal awtentikazzjoni interna) u tista’, ukoll, tattiva oħrajn moduli għall meħtieġa għal pjattaformi CMS futuri bħal openssl.so, imap.so jew iconv.so eċċ.
$ sudo nano /etc/php/php.ini
Sib u neħħi l-kumment tal-estensjonijiet ta' hawn fuq.
extension=mcrypt.so extension=mssql.so extension=mysqli.so extension=openssl.so extension=iconv.so extension=imap.so extension=zip.so extension=bz2.so
Ukoll, fuq l-istess fajl, fittex u sib id-dikjarazzjoni open_basedir u żid it-triq tas-sistema PhpMyAdmin (/etc/webapps/ u /usr/share/webapps/ >) biex tiżgura li PHP jista' jaċċessa u jaqra fajls taħt dawk id-direttorji (Jekk int, ukoll, tibdel il-passaġġ Virtual Hosts DocumentRoot minn /srv/http/ għal post ieħor għandek bżonn tehmeż il-passaġġ il-ġdid hawn ukoll ).
25. L-aħħar ħaġa li għandek bżonn tagħmel sabiex taċċessa PhpMyAdmin Web Interface hija li żżid dikjarazzjonijiet PhpMyAdmin Apache fuq Virtual Hosts. Bħala miżura ta 'sigurtà se tiżgura li PhpMyAdmin Web Interface tista' tkun aċċessibbli biss minn localhost (jew indirizz IP tas-sistema) billi tuża protokoll HTTPS u mhux minn Hosts Virtwali differenti oħra. Allura, iftaħ il-fajl Apache localhost-ssl.conf tiegħek u fil-qiegħ, qabel l-aħħar dikjarazzjoni żid il-kontenut li ġej.
$ 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. Wara erġa ibda Apache daemon u ippunta l-browser tiegħek lejn l-indirizz li ġej u għandek tkun tista’ taċċessa l-Interface tal-Web PhpMyAdmin tiegħek: https://localhost/phpmyadmin jew https://system_IP/ phpmyadmin.
27. Jekk, wara li tilloggja ma PhpMyAdmin, tara żball fil-qiegħ dwar blowfish_secret, iftaħ u editja l-fajl /etc/webapps/phpmyadmin/config.inc.php u daħħal sekwenza każwali bħal dik fid-dikjarazzjoni li ġejja, imbagħad aġġorna l-paġna.
$cfg['blowfish_secret'] = ‘{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V’ ;
Pass 9: Ippermetti sistema LAMP Wide
28. Jekk trid li l-munzell tal-LAMPA jinbeda awtomatikament wara li s-sistema reboot mexxi l-kmandi li ġejjin.
$ sudo systemctl enable httpd mysqld
Dawn huma wħud mis-settings ewlenin tal-konfigurazzjoni fuq LAMP meħtieġa biex tittrasforma sistema Arch Linux fi pjattaforma tal-web sempliċi iżda b'saħħitha, veloċi u robusta b'softwer ta' server tal-qtugh għal dawk żgħar mhux. -ambjenti kritiċi, imma jekk ikollok iebsa u xorta trid tużah f'ambjent ta 'produzzjoni kbir għandek arma ruħek b'ħafna paċenzja u tagħti attenzjoni żejda fuq l-aġġornamenti tal-pakketti u tagħmel immaġini ta' backup tas-sistema regolari għal sistema mgħaġġla li tirrestawra f'każ ta ' fallimenti tas-sistema.