LAMP:n (Linux, Apache, MySQL/MariaDB ja PHP/PhpMyAdmin) asentaminen Arch Linuxiin


Arch Linux tarjoaa joustavan leikkausikäjärjestelmän ympäristön ja on tehokas parhaiten sopiva ratkaisu verkkosovellusten kehittämiseen pienissä ei-kriittisissä järjestelmissä, koska se on täydellinen avoin lähdekoodi ja tarjoaa viimeisimmät ajantasaiset julkaisut ytimistä ja verkkoohjelmistoista palvelimet ja tietokannat.

Tämä opetusohjelman pääasiallinen tarkoitus on opastaa sinut vaiheittaisten ohjeiden läpi, jotka lopulta johtavat yhden Web-kehityksen eniten käytetyn ohjelmistoyhdistelmän asentamiseen: LAMP (Linux, Apache, MySQL/MariaDB ja PHP/PhpMyAdmin ) ja se esittelee sinulle hienoja ominaisuuksia (nopeita ja likaisia Bash-skriptejä), joita ei ole Arch Linux -järjestelmässä, mutta jotka voivat helpottaa useiden virtuaalisten isäntien luomista. , luo SSL-varmenteet ja avaimet, joita tarvitaan turvallisiin HTTS-tapahtumiin.

Vaatimukset

  1. Edellinen Arch Linux -asennusprosessi – ohita viimeinen osa DHCP:llä.
  2. Edellinen LEMP-asennus Arch Linuxiin – vain osa, jossa määritetään staattinen IP-osoite ja etäkäyttö SSH-käyttöön.

Vaihe 1: Asenna perusohjelmisto LAMP

1. Kun järjestelmä on asennettu minimaalisen staattisen IP-osoitteen ja järjestelmän etäkäyttöön SSH:n avulla, päivitä Arch Linux -laatikkosi pacman-apuohjelmalla.

sudo pacman -Syu

2. Kun päivitysprosessi on valmis, asenna LAMP osista, asenna ensin Apache Web Server ja käynnistä/tarkista jokainen palvelinprosessin demoni.

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

3. Asenna PHP dynaaminen palvelinpuolen komentosarjakieli ja sen Apache-moduuli.

sudo pacman -S php php-apache

4. Asenna MySQL-tietokanta viimeisessä vaiheessa, valitse 1 (MariaDB) yhteisön tietokantahaarukka, aloita ja tarkista demonin tila.

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

Nyt sinulla on LAMP-perusohjelmisto asennettuna ja aloitat tähän mennessä oletuskokoonpanoilla.

Vaihe 2: Suojaa MySQL-tietokanta

5. Seuraava vaihe on suojata MySQL-tietokanta asettamalla salasana root-tilille, poistaa anonyymit käyttäjätilit, poistaa testitietokanta ja estää etäkirjautuminen root-käyttäjältä ( paina [ Enter]-avain päätilin nykyiselle salasanalle ja vastaa Kyllä kaikkiin turvakysymyksiin).

sudo mysql_secure_installation

6. Tarkista MySQL-tietokannan yhteys suorittamalla seuraava komento ja poistu sitten tietokantakuoresta quit- tai exit-käskyllä.

mysql -u root -p

Vaihe 3: Muokkaa Apachen pääasetustiedostoa

7. Seuraavat kokoonpanot liittyvät useimmat Apache-verkkopalvelimeen, jotta ne tarjoavat dynaamisen käyttöliittymän virtuaaliselle hosting-palvelimelle PHP-skriptikielellä, SSL:llä tai ei-SSL-virtuaalipalvelimet ja se voidaan tehdä muokkaamalla httpd-palvelun tiedostomäärityksiä.

Avaa ensin Apache-päätiedostokokoonpano suosikkitekstieditorillasi.

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

Liitä tiedoston alaosaan seuraavat kaksi riviä.

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

Include-lauseiden tehtävänä on kertoa Apachelle, että tästä lähtien sen tulee lukea lisämääritykset kaikista tiedostoista, jotka sijaitsevat osoitteessa /etc/httpd/conf/sites-enabled/ (Virtual Hosting) ja /etc/httpd/conf/mods-enabled/ (käytössä oleville palvelin-moduuleille) järjestelmäpolut, jotka päättyvät .conf-laajennus.

8. Kun Apache on saanut nämä kaksi käskyä, luo tarvittavat järjestelmähakemistot ja anna seuraavat komennot.

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

Polku sivustot-käytettävissä sisältää kaikki Virtual Hosts -määritystiedostot, joita ei ole aktivoitu Apachessa, mutta seuraava Bash-skripti käyttää tätä hakemistoa linkittääkseen ja ottaakseen käyttöön siellä sijaitsevat verkkosivustot.

Vaihe 4: Luo a2eniste- ja a2diste Apache-komennot

9. Nyt on aika luoda a2ensite ja a2dissite Apache-komentosarjat, jotka toimivat komentoina Virtual Host -määritystiedoston käyttöönottamiseksi tai poistamiseksi käytöstä. Kirjoita cd-komento palataksesi $HOME-käyttäjäpolkullesi ja luo bash a2eniste- ja a2dissite-komentosarjat käyttämälläsi suosikki editori.

sudo nano a2ensite

Lisää seuraava sisältö tähän tiedostoon.

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

Luo nyt a2dissite bash-skriptitiedosto.

sudo nano a2dissite

Liitä seuraava sisältö.

#!/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. Kun tiedostot on luotu, jaa suoritusoikeudet ja kopioi ne ` PATH -suoritettavaan hakemistoon, jotta ne ovat käytettävissä koko järjestelmässä.

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

Vaihe 5: Luo virtuaalipalvelimet Apachessa

11. Virtual Host -oletusasetustiedosto Apache-verkkopalvelimelle Arch Linuxissa on httpd-vhosts.conf-tiedosto, joka sijaitsee osoitteessa /etc/httpd/conf/extra / polun, mutta jos sinulla on järjestelmä, joka käyttää paljon virtuaalisia isäntiä, voi olla erittäin vaikeaa seurata, mikä verkkosivusto on aktivoitu vai ei. Jos haluat poistaa käytöstä verkkosivuston, sinun on kommentoitava tai poistettava kaikki sen käskyt. Tämä voi olla vaikea tehtävä, jos järjestelmässäsi on paljon verkkosivustoja ja verkkosivustollasi on enemmän määritysohjeita.

Sivustot käytettävissä ja sivustot käytössä -polkujen käyttäminen yksinkertaistaa huomattavasti verkkosivustojen käyttöönottoa tai poistamista käytöstä ja myös säilyttää kaikki verkkosivustosi määritystiedostot, vaikka ne olisivat aktivoituja vai eivät.

Seuraavassa vaiheessa aiomme rakentaa ensimmäisen virtuaalipalvelimen, joka osoittaa oletusarvoiseen localhost-palvelimeen käyttämällä oletusarvoista DocumentRoot-polkua verkkosivustojen tiedostojen palvelemiseksi (/srv/http.

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

Lisää seuraavat Apache-ohjeet tähän.

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

Tärkeimmät lauseet tässä ovat Port- ja ServerName-käskyt, jotka käskevät Apachea avaamaan verkkoyhteyden portissa 80 ja ohjaamaan kaikki kyselyt localhost-nimellä palvella tiedostoja, jotka sijaitsevat polussa /srv/http/.

12. Kun localhost-tiedosto on luotu, aktivoi se ja käynnistä httpd-daemon uudelleen nähdäksesi muutokset.

sudo a2ensite localhost
sudo systemctl restart httpd

13. Osoita sitten selaimesi osoitteeseen http://localhost, jos käytät sitä Arch-järjestelmästä, tai http://Arch_IP, jos käytät etäjärjestelmä.

Vaihe 6: Ota SSL käyttöön LAMP-virtuaalisen hosting-palvelun kanssa

SSL (Secure Sockets Layer) on protokolla, joka on suunniteltu salaamaan HTTP-yhteyksiä verkkojen tai Internetin kautta, mikä mahdollistaa tiedonsiirron suojatun kanavan kautta käyttämällä symmetrisiä/esymmetrisiä salausavaimia. ja sen toimittaa Arch Linuxissa OpenSSL-paketti.

14. Oletusarvoisesti SSL-moduuli ei ole käytössä Apachessa Arch Linuxissa ja se voidaan aktivoida poistamalla kommentit mod_ssl.so-moduulista pääosoitteesta httpd.conf määritystiedosto ja Sisällytä httpd-ssl.conf-tiedosto, joka sijaitsee ylimääräisessä httpd-polussa.

Mutta asioiden yksinkertaistamiseksi luomme uuden moduulitiedoston SSL:lle mods-enabled -polulle ja jätämme Apachen pääasetustiedostoon koskematta. Luo seuraava tiedosto SSL-moduulille ja lisää alla oleva sisältö.

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

Liitä seuraava sisältö.

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. Luo nyt Virtual Host -tiedosto, joka osoittaa samaan localhost-nimeen, mutta käyttää tällä kertaa SSL-palvelinmäärityksiä, ja muuta sen nimeä hieman muistuttamaan, että se tarkoittaa localhost with SSL -yhteyttä.

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

Lisää seuraava sisältö tähän tiedostoon.

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

Portti- ja ServerName-ohjeiden lisäksi tässä muita tärkeitä ohjeita ovat ne, jotka osoittavat SSL-sertifikaatti- ja SSL-avain-tiedostoon. ei ole vielä luotu, joten älä käynnistä Apache Web Server -palvelinta uudelleen tai saat virheitä.

16. Luo tarvittava SSL-sertifikaattitiedosto ja avaimet asentamalla OpenSSL-paketti, joka antaa alla olevan komennon.

sudo pacman -S openssl

17. Luo sitten seuraava Bash-skripti, joka luo ja tallentaa automaattisesti kaikki Apache-sertifikaattisi ja avaimesi kansioon /etc/httpd/conf/ssl/ järjestelmäpolku.

sudo nano apache_gen_ssl

Lisää seuraava tiedostosisältö ja tallenna se ja tee siitä suoritettava.

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

Jos haluat komentosarjan olevan käytettävissä koko järjestelmässä, kopioi se suoritettavalle ` PATH -tiedostolle.

sudo cp /apache_gen_ssl  /usr/local/bin/

18. Luo nyt varmenne ja avaimet suorittamalla komentosarja. Anna SSL-asetukset ja älä unohda varmenteen nimeä ja yleistä nimeä, jotta ne vastaavat virallista verkkotunnustasi (FQDN).

sudo ./apache_gen_ssl

Kun varmenne ja avaimet on luotu, älä unohda muokata SSL Virtual Host -varmenteen ja avainten määrityksiä vastaamaan tämän varmenteen nimeä.

19. Viimeinen vaihe on aktivoida juuri SSL Virtual Host ja käynnistää palvelin uudelleen määrityksiä varten.

sudo a2ensite localhost-ssl
sudo systemctl restart httpd

Se siitä! Vahvista se avaamalla selain ja lisäämällä Arch IP URL-osoitteeseen HTTPS-protokollan avulla: https://localhost tai https://system_IP.

Vaihe 7: Ota PHP käyttöön Apachessa

20. Oletuksena Apache tarjoaa vain staattisten HTML-tiedostojen sisältöä Arch Linuxissa ilman dynaamisten komentosarjakielien tukea. Aktivoidaksesi PHP:n avaa ensin Apachen pääasetustiedosto ja etsi seuraava LoadModule-käsky ja poista kommentti (php-apache ei toimi mod_mpm_event:n kanssa Arch Linuxissa ).

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

Käytä [Ctrl]+[w]-hakua ja kommentoi seuraavaa riviä näyttääksesi tältä.

#LoadModule mpm_event_module modules/mod_mpm_event.so

21. Luo sitten uusi tiedosto PHP-moduulille mods-enabled -polulla seuraavalla sisällöllä.

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

Lisää täsmälleen seuraava sisältö (sinun on käytettävä mod_mpm_preforkia).

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php5_module modules/libphp5.so

Include conf/extra/php5_module.conf

22. Asetuksen vahvistamiseksi luo PHP:lle tiedosto nimeltä info.php DocumnetRootissa (/srv/http/), käynnistä sitten Apache uudelleen ja osoita selaimestasi info.php-tiedostoon: https://localhost/info.php.

<?php

phpinfo();

?>
sudo systemctl restart httpd

Se siitä! Jos kaikki näyttää yllä olevalta kuvalta, sinulla on nyt PHP:n dynaaminen palvelinpuolen komentosarjakieli käytössä Apachessa ja voit nyt kehittää verkkosivustoja käyttämällä avoimen lähdekoodin sisällönhallintajärjestelmää, kuten esimerkiksi WordPressiä.

Jos haluat tarkistaa Apachen syntaksimääritykset ja nähdä luettelon ladatuista moduuleista käynnistämättä httpd-daemonia uudelleen, suorita seuraavat komennot.

sudo apachectl configtest
sudo apachectl -M

Vaihe 8: Asenna ja määritä PhpMyAdmin

23. Jos et hallitse MySQL-komentoriviä ja haluat yksinkertaisen etäkäytön MySQL-tietokantaan verkkokäyttöliittymän kautta, sinun on asennettava PhpMyAdmin-paketti Arch-laatikkoosi.

sudo pacman -S phpmyadmin php-mcrypt

24. Kun paketit on asennettu, sinun on otettava käyttöön jotkin PHP-laajennukset (mysqli.so, mcrypt.so – sisäiseen todentamiseen) ja voit myös ottaa käyttöön muita tulevia CMS-alustoja varten tarvittavia moduuleja, kuten openssl.so, imap.so tai iconv.so jne.

sudo nano /etc/php/php.ini

Paikanna yllä olevat laajennukset ja poista niiden kommentit.

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

Etsi ja etsi myös samasta tiedostosta open_basedir-lauseke ja lisää PhpMyAdmin-järjestelmäpolku (/etc/webapps/ ja /usr/share/webapps/ >) varmistaaksesi, että PHP voi käyttää ja lukea kyseisten hakemistojen tiedostoja (jos myös muutat Virtual Hosts DocumentRoot -polun osoitteesta /srv/http/ toiseen paikkaan, sinun on liitettävä uusi polku myös tähän ).

25. Viimeinen asia, joka sinun on tehtävä, jotta voit käyttää PhpMyAdmin Web Interface -käyttöliittymää, on lisätä PhpMyAdmin Apache -lauseet Virtual Hosteihin. Turvatoimenpiteenä varmistaa, että PhpMyAdmin Web Interface on käytettävissä vain paikalliselta isännältä (tai järjestelmän IP-osoitteelta) HTTPS-protokollaa käyttäen, ei muista eri virtuaalikoneista. Joten avaa localhost-ssl.conf Apache-tiedosto ja lisää alareunaan, ennen viimeistä -lausetta, seuraava sisältö.

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. Käynnistä sitten Apache-daemon uudelleen ja osoita selaimesi seuraavaan osoitteeseen, niin sinun pitäisi pystyä käyttämään PhpMyAdmin-verkkoliittymääsi: https://localhost/phpmyadmin tai https://system_IP/phpmyadmin.

27. Jos näet PhpMyAdminiin kirjautumisen jälkeen alimman virheilmoituksen koskien blowfish_secretiä, avaa /etc/webapps/phpmyadmin/config.inc ja muokkaa sitä. php-tiedosto ja lisää satunnainen merkkijono, kuten seuraavassa käskyssä, ja päivitä sitten sivu.

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

Vaihe 9: Ota LAMP System Wide käyttöön

28. Jos haluat LAMP-pinon käynnistyvän automaattisesti järjestelmän uudelleenkäynnistyksen jälkeen, suorita seuraavat komennot.

sudo systemctl enable httpd mysqld

Nämä ovat joitain LAMPin tärkeimmistä määritysasetuksista, joita tarvitaan Arch Linux -järjestelmän muuttamiseksi yksinkertaiseksi, mutta tehokkaaksi, nopeaksi ja kestäväksi verkkoalustaksi, jossa on uusinta palvelinohjelmistoa pienille ei -kriittisissä ympäristöissä, mutta jos olet itsepäinen ja haluat silti käyttää sitä suuressa tuotantoympäristössä, kannattaa varustautua kärsivällisyydellä ja kiinnittää erityistä huomiota pakettien päivityksiin ja tehdä säännöllisesti järjestelmän varmuuskopioita järjestelmän nopeaa palautusta varten. järjestelmävikoja.