LAMP (Linux, Apache, MySQL/MariaDB un PHP/PhpMyAdmin) instalēšana Arch Linux


Arch Linux nodrošina elastīgu vismodernākās sistēmas vidi un ir spēcīgākais, vispiemērotākais risinājums tīmekļa lietojumprogrammu izstrādei nelielās nekritiskās sistēmās, jo tas ir pilnīgs atvērtais avots un nodrošina pēdējos atjauninātos laidienus kodolos un tīmekļa programmatūrā serveri un datu bāzes.

Šīs apmācības galvenā darbības joma ir sniegt jums pilnīgas instrukcijas, kas pa solim pa solim, kas galu galā novedīs pie vienas no Web izstrādē visbiežāk izmantotās programmatūras kombinācijas instalēšanas: LAMP (Linux, Apache, MySQL/MariaDB un PHP/PhpMyAdmin) un tas parādīs jums dažas jaukas funkcijas (ātrus un netīrus Bash skriptus), kuru nav Arch Linux sistēmā, bet kas var atvieglot darbu, veidojot vairākus virtuālos saimniekus , ģenerējiet SSL sertifikātus un atslēgas , kas nepieciešami drošiem HTTS darījumiem.

  1. Iepriekšējais Arch Linux instalēšanas process - izlaidiet pēdējo daļu ar DHCP.
  2. Iepriekšēja LEMP instalēšana Arch Linux - tikai tā daļa, kurā konfigurēta Statiskā IP adrese un attālā SSH piekļuve .

1. darbība: instalējiet pamata programmatūras LAMP

1. Pēc minimālas sistēmas instalēšanas ar statisku IP adresi un attālu piekļuvi sistēmai, izmantojot SSH , jauniniet savu Arch Linux lodziņu, izmantojot pacman utilītu.

$ sudo pacman -Syu

2. Kad jaunināšanas process pabeidz instalēt LAMP gabalos, vispirms instalējiet Apache Web Server un sāciet/pārbaudiet katru servera procesa dēmonu.

$ sudo pacman -S apache 
$ sudo systemctl start httpd 
$ sudo systemctl status httpd

3. Instalējiet PHP dinamisko servera puses skriptu valodu un tās Apache moduli.

$ sudo pacman -S php php-apache

4. Pēdējā solī instalējiet datu bāzi MySQL , izvēlieties 1 ( MariaDB ) kopienas datu bāzes dakšiņu, pēc tam sāciet un pārbaudiet dēmona statusu.

$ sudo pacman -S mysql 
$ sudo systemctl start mysqld 
$ sudo systemctl status mysqld

Tagad jums ir instalēta LAMP pamata programmatūra un līdz šim sākta ar noklusējuma konfigurācijām.

2. solis: Droša MySQL datu bāze

5. Nākamais solis ir aizsargāt MySQL datu bāzi, nosakot paroli root kontam, noņemot anonīmu lietotāju kontus, noņemot testa datu bāzi un neatļaujot attālo pieteikšanos lietotāja saknei (nospiediet [ Enter ] atslēga saknes konta pašreizējai parolei un uz visiem drošības jautājumiem atbildiet ar .

$ sudo mysql_secure_installation

6. Pārbaudiet MySQL datu bāzes savienojamību, izpildot šādu komandu, pēc tam atstājiet datu bāzes čaulu ar quit vai exit paziņojumu.

$ mysql -u root -p

3. solis: Modificējiet Apache galveno konfigurācijas failu

7. Šīs konfigurācijas lielākoties ir saistītas ar Apache Web Server , lai nodrošinātu dinamisku saskarni Virtuālajam mitinājumam ar PHP skriptu valodu, SSL vai ne-SSL virtuālajiem saimniekiem un var var izdarīt, modificējot httpd servisa failu konfigurācijas.

Vispirms atveriet galveno Apache failu konfigurāciju, izmantojot iecienīto teksta redaktoru.

$ sudo nano /etc/httpd/conf/httpd.conf

Faila pašā apakšā pievienojiet šādas divas rindas.

IncludeOptional conf/sites-enabled/*.conf
IncludeOptional conf/mods-enabled/*.conf

Šeit Iekļaut paziņojumu loma ir pateikt Apache, ka turpmāk tai jālasa turpmākas konfigurācijas no visiem failiem, kas atrodas /etc/httpd/conf/sites-enabled/ ( virtuālajam mitinājumam ) un /etc/httpd/conf/mods-enabled/ ( iespējota servera moduļiem) sistēmas ceļi, kas beidzas ar .conf paplašinājums.

8. Pēc tam, kad Apache ir instruēts ar šīm divām direktīvām, izveidojiet nepieciešamos sistēmas direktorijus, kas izdod šādas komandas.

$ sudo mkdir /etc/httpd/conf/sites-available
$ sudo mkdir /etc/httpd/conf/sites-enabled
$ sudo mkdir /etc/httpd/conf/mods-enabled

Ceļš Vietnes pieejamas satur visus virtuālo saimnieku konfigurācijas failus, kas nav aktivizēti Apache, bet nākamais Bash skripts izmantos šo direktoriju, lai izveidotu saites un iespējotu tur atrodamās vietnes.

4. solis: izveidojiet a2eniste un a2diste Apache komandas

9. Tagad ir pienācis laiks izveidot a2ensite un a2dissite Apache skriptus, kas kalpos kā komandas, lai iespējotu vai atspējotu virtuālā resursdatora konfigurācijas failu. Ierakstiet komandu cd , lai atgrieztos lietotāja $HOME ceļā, un izveidojiet bash a2eniste un a2dissite skriptus, izmantojot iecienītākais redaktors.

$ sudo nano a2ensite

Pievienojiet šim failam šādu saturu.

#!/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

Tagad izveidojiet a2dissite bash skripta failu.

$ sudo nano a2dissite

Pievienojiet šo saturu.

#!/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. Pēc failu izveides piešķiriet izpildes atļaujas un kopējiet tās izpildāmajā direktorijā $PATH , lai tās būtu pieejamas visā sistēmā.

$ sudo chmod +x a2ensite a2dissite
$ sudo cp a2ensite a2dissite /usr/local/bin/

5. darbība: izveidojiet virtuālos resursdatorus Apache

11. Virtuālā resursdatora noklusējuma konfigurācijas failu Apache tīmekļa serverim Arch Linux nodrošina fails httpd-vhosts.conf , kas atrodas /etc/httpd/conf/extra/ ceļā, bet ja jums ir sistēma, kas izmanto daudz virtuālo saimnieku, var būt ļoti grūti izsekot, kāda vietne ir aktivizēta vai nē. Ja vēlaties atspējot vietni, jums ir jāpievieno komentāri vai jāizdzēš visas tās direktīvas, un tā var būt sarežģīta misija, ja jūsu sistēma nodrošina daudz vietņu un jūsu vietnei ir vairāk konfigurācijas direktīvu.

Ceļu pieejamās vietnes un vietnēm iespējotas izmantošana ievērojami atvieglo vietņu iespējošanu vai atspējošanu un arī saglabā visi jūsu vietņu konfigurācijas faili, pat ja tie ir aktivizēti vai nē.

Nākamajā solī mēs izveidosim pirmo virtuālo resursdatoru, kas norāda uz noklusējuma localhost ar noklusējuma DocumentRoot ceļu vietņu failu apkalpošanai (/srv/http .

$ sudo nano /etc/httpd/conf/sites-available/localhost.conf

Pievienojiet šeit šādas Apache direktīvas.

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

Šeit vissvarīgākie apgalvojumi ir Ports un Servera nosaukums , kas uzdod Apache atvērt tīkla savienojumu portā 80 un novirzīt visus vaicājumus ar localhost nosaukumu uz apkalpot failus, kas atrodas /srv/http/ ceļā.

12. Kad vietējā hosta fails ir izveidots, aktivizējiet to un restartējiet httpd dēmonu, lai skatītu izmaiņas.

$ sudo a2ensite localhost
$ sudo systemctl restart httpd

13. Pēc tam novirziet pārlūkprogrammu uz http:// localhost , ja to palaižat no Arch sistēmas, vai http:// Arch_IP , ja izmantojat attālo sistēmu.

6. darbība: iespējojiet SSL ar virtuālo mitināšanu LAMP

SSL ( Secure Sockets Layer ) ir protokols, kas paredzēts HTTP savienojumu šifrēšanai tīklos vai internetā, kas liek datu plūsmu pārsūtīt pa drošu kanālu, izmantojot simetriskas/asimetriskas kriptogrāfijas atslēgas. un to Arch Arch nodrošina pakete OpenSSL .

14. Pēc noklusējuma SSL modulis nav iespējots Apache Arch Linux sistēmā, un to var aktivizēt, nekomentējot moduli mod_ssl.so no galvenā konfigurācijas faila httpd.conf un Iekļaut httpd-ssl.conf fails, kas atrodas papildu httpd ceļā.

Bet, lai vienkāršotu lietas, mēs izveidosim jaunu moduļa failu SSL ceļā, kurā iespējoti modi un atstāsim galveno Apache konfigurācijas failu neskartu. Izveidojiet šo failu SSL modulim un pievienojiet zemāk esošo saturu.

$ sudo nano /etc/httpd/conf/mods-enabled/ssl.conf

Pievienojiet šo saturu.

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. Tagad izveidojiet virtuālā resursdatora failu, kas norāda uz to pašu vietējā mitekļa nosaukumu, bet šoreiz izmantojot SSL servera konfigurācijas, un nedaudz mainiet tā nosaukumu, lai atgādinātu, ka tas nozīmē vietējo hostu ar SSL.

$ sudo nano /etc/httpd/conf/sites-available/localhost-ssl.conf

Pievienojiet šim failam šādu saturu.

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

Papildus Portu un ServerName direktīvām šeit ir citas svarīgas direktīvas, kas norāda uz SSL sertifikāta failu un SSL atslēgu failu, kas vēl nav izveidoti, tāpēc nepārstartējiet Apache Web Server, pretējā gadījumā jūs saņemsiet dažas kļūdas.

16. Lai izveidotu nepieciešamo SSL sertifikāta failu un Atslēgas, instalējiet paketi OpenSSL , izsniedzot tālāk norādīto komandu.

$ sudo pacman -S openssl

17. Pēc tam izveidojiet šādu skriptu Bash , kas automātiski izveido un saglabā visus jūsu Apache sertifikātus un taustiņus mapē /etc/httpd/conf/ssl/ sistēmas ceļš.

$ sudo nano apache_gen_ssl

Pievienojiet šādu faila saturu, pēc tam saglabājiet to un padariet to izpildāmu.

#!/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

Ja vēlaties, lai skripts būtu pieejams visā sistēmā, nokopējiet to izpildāmajā failā $PATH .

$ sudo cp /apache_gen_ssl  /usr/local/bin/

18. Tagad ģenerējiet savu sertifikātu un atslēgas , palaižot skriptu. Norādiet savas SSL opcijas un neaizmirstiet sertifikāta nosaukumu un Parastais nosaukums , kas atbilst jūsu oficiālajam domēnam ( FQDN ).

$ sudo ./apache_gen_ssl

Pēc sertifikāta un atslēgu izveides neaizmirstiet modificēt SSL virtuālā resursdatora sertifikātu un atslēgu konfigurācijas, lai tās atbilstu šī sertifikāta nosaukumam.

19. Pēdējais solis ir nesen aktivizēt SSL virtuālo resursdatoru un restartēt serveri, lai lietotu konfigurācijas.

$ sudo a2ensite localhost-ssl
$ sudo systemctl restart httpd

Tieši tā! Lai to pārbaudītu, atveriet pārlūku un pievienojiet Arch IP vietrādim URL, izmantojot HTTPS protokolu: https:/localhost vai https:/system_IP .

7. darbība: iespējojiet PHP Apache

20. Pēc noklusējuma Apache HTML statisko failu saturu apkalpo tikai Arch Linux bez dinamisko skriptu valodu atbalsta. Lai aktivizētu PHP, vispirms atveriet Apache galveno konfigurācijas failu, pēc tam meklējiet un noņemiet komentāru no šī LoadModule paziņojuma ( php-apache Arch Linux nedarbojas ar mod_mpm_event ).

$ sudo nano /etc/httpd/conf/httpd.conf

Izmantojot [Ctrl] + [w] , meklējiet un komentējiet nākamo rindiņu, lai tā izskatītos.

#LoadModule mpm_event_module modules/mod_mpm_event.so

21. Pēc tam izveidojiet jaunu PHP moduļa failu ceļā ar modifikācijām ar šādu saturu.

$ sudo nano /etc/httpd/conf/mods-enabled/php.conf

Pievienojiet tieši šādu saturu (jums jāizmanto 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. Lai pārbaudītu iestatījumu, izveidojiet PHP failu ar nosaukumu info.php savā DocumnetRoot (/srv/http/), pēc tam restartējiet Apache un norādiet pārlūkprogrammai uz info .php fails: https: //localhost/info.php .

<?php

phpinfo();

?>
$ sudo systemctl restart httpd

Tieši tā! Ja viss izskatās kā iepriekš redzamais attēls, tagad Apache ir iespējota PHP dinamiskā servera puses skriptu valoda, un tagad varat izveidot vietnes, izmantojot, piemēram, OpenPort CMS, piemēram, WordPress .

Ja vēlaties pārbaudīt Apache sintakses konfigurācijas un redzēt ielādēto moduļu sarakstu, nepārstartējot httpdemon, palaidiet šīs komandas.

$ sudo apachectl configtest
$ sudo apachectl -M

8. darbība: instalējiet un konfigurējiet PhpMyAdmin

23. Ja neapgūstat MySQL komandrindu un vēlaties vienkāršu attālo piekļuvi MySQL datu bāzei, izmantojot tīmekļa saskarni, arhīva lodziņā ir jāinstalē PhpMyAdmin pakete.

$ sudo pacman -S phpmyadmin php-mcrypt

24. Pēc pakotņu instalēšanas jums jāiespējo daži PHP paplašinājumi ( mysqli.so , mcrypt.so - iekšējai autentifikācijai), kā arī varat iespējot citus moduļi, kas nepieciešami nākotnes CMS platformām, piemēram, openssl.so , imap.so vai iconv.so utt.

$ sudo nano /etc/php/php.ini

Atrodiet un komentējiet iepriekš minētos paplašinājumus.

extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so
extension=iconv.so
extension=imap.so
extension=zip.so
extension=bz2.so

Tajā pašā failā meklējiet un atrodiet norādi open_basedir un pievienojiet sistēmas ceļu PhpMyAdmin (/etc/webapps/ un /usr/share/webapps/), lai pārliecinātos, ka PHP var piekļūt failiem un lasīt zem šiem direktorijiem (ja arī jūs maināt Virtuālo saimnieku DocumentRoot ceļu no /srv/http/ uz citu vietu, jums arī šeit jāpievieno jaunais ceļš ).

25. Pēdējā lieta, kas jums jādara, lai piekļūtu PhpMyAdmin tīmekļa saskarnei, ir pievienot virtuālos resursdatoros PhpMyAdmin Apache paziņojumus. Drošības pasākums nodrošinās, ka PhpMyAdmin tīmekļa saskarnei var piekļūt tikai no localhost (vai sistēmas IP adreses), izmantojot HTTPS protokolu, nevis no citiem dažādiem virtuālajiem saimniekiem. Tātad, atveriet savu localhost-ssl.conf Apache failu un apakšā pirms pēdējās pievienojiet šo saturu.

$ 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. Pēc tam restartējiet Apache dēmonu un norādiet pārlūkprogrammai uz šo adresi, un jums vajadzētu būt iespējai piekļūt savai PhpMyAdmin tīmekļa saskarnei: https:/localhost/phpmyadmin vai https:/system_IP/phpmyadmin .

27. Ja pēc pieteikšanās PhpMyAdmin tiek parādīta apakšējā kļūda saistībā ar blowfish_secret , atveriet un rediģējiet failu /etc/webapps/phpmyadmin/config.inc.php un ievietojiet nejaušu virkni, piemēram, šo paziņojumu, pēc tam atsvaidziniet lapu.

$cfg['blowfish_secret'] = ‘{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V’ ;

9. solis: iespējojiet LAMP System Wide

28. Ja vēlaties, lai LAMP kaudze tiktu automātiski startēta pēc sistēmas pārstartēšanas, izpildiet šādas komandas.

$ sudo systemctl enable httpd mysqld

Šie ir daži galvenie LAMP konfigurācijas iestatījumi, kas nepieciešami, lai Arch Linux sistēmu pārveidotu par vienkāršu, bet spēcīgu, ātru un stabilu tīmekļa platformu ar visjaunāko serveru programmatūru maziem lietotājiem -kritiska vide, bet, ja jūs kļūstat spītīgs un joprojām vēlaties to izmantot lielā ražošanas vidē, jums vajadzētu apbruņoties ar lielu pacietību un pievērst papildu uzmanību pakešu atjauninājumiem un regulāri izveidot sistēmas dublējuma attēlus, lai ātri atjaunotu sistēmu. sistēmas kļūmes.