Að setja upp LAMP (Linux, Apache, MySQL/MariaDB og PHP/PhpMyAdmin) í Arch Linux


Arch Linux býður upp á sveigjanlegt aldurskerfisumhverfi og er öflug lausn sem hentar best til að þróa vefforrit á litlum kerfum sem ekki eru mikilvæg vegna þess að það er algjört opinn uppspretta og veitir nýjustu uppfærðu útgáfurnar á kjarna og vefhugbúnaði fyrir netþjóna og gagnagrunna.

Þetta meginsvið þessarar kennslu er að leiðbeina þér í gegnum fullkomnar skref fyrir skref leiðbeiningar sem á endanum munu leiða til uppsetningar á einni mest notuðu hugbúnaðarsamsetningu í vefþróun: LAMP (Linux, Apache, MySQL/MariaDB og PHP/PhpMyAdmin ) og það mun kynna þér nokkra góða eiginleika (fljót og óhrein Bash forskriftir) sem eru ekki til í Arch Linux kerfi, en geta auðveldað starfið við að búa til marga Syndargestgjafa , búa til SSL vottorð og lykla sem þarf fyrir öruggar HTTS viðskipti.

  1. Fyrra Arch Linux uppsetningarferli – slepptu síðasta hlutanum með DHCP.
  2. Fyrri LEMP uppsetning á Arch Linux – aðeins sá hluti með stillingu Static IP Address og fjarlægur SSH aðgang.

Skref 1: Settu upp Basic Software LAMP

1. Eftir lágmarks kerfisuppsetningu með kyrrstöðu IP-tölu og fjarkerfisaðgangi með SSH skaltu uppfæra Arch Linux kassann þinn með pacman tólinu.

$ sudo pacman -Syu

2. Þegar uppfærsluferlinu lýkur uppsetningu LAMP frá stykkja, skaltu fyrst setja upp Apache vefþjón og ræsa/staðfesta hvern þjónsferlispúka.

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

3. Settu upp PHP kraftmikið forskriftarmál á netþjóni og Apache-einingu þess.

$ sudo pacman -S php php-apache

4. Í síðasta skrefinu skaltu setja upp MySQL gagnagrunn, veldu 1 (MariaDB) samfélagsgagnagrunnsfork, byrjaðu og athugaðu stöðu púkans.

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

Nú hefur þú grunn LAMP hugbúnaðinn uppsettan og byrjaður með sjálfgefna stillingar hingað til.

Skref 2: Öruggur MySQL gagnagrunnur

5. Næsta skref er að tryggja MySQL gagnagrunn með því að setja lykilorð fyrir rótarreikning, fjarlægja nafnlausa notendareikninga, fjarlægja prófunargagnagrunn og banna fjarinnskráningu fyrir notandarót (ýttu á [Enter] lykill fyrir núverandi lykilorð rótarreiknings og svaraðu með við öllum öryggisspurningum).

$ sudo mysql_secure_installation

6. Staðfestu tengingu MySQL gagnagrunns með því að keyra eftirfarandi skipun og farðu síðan eftir gagnagrunnsskel með quit eða exit setningu.

$ mysql -u root -p

Skref 3: Breyttu aðalstillingarskrá Apache

7. Eftirfarandi stillingar eru flestar tengdar Apache vefþjóni til að bjóða upp á kraftmikið viðmót fyrir Virtual Hosting með PHP forskriftarmáli, SSL eða ekki SSL sýndarhýsingum og geta gert með því að breyta httpd þjónustuskráarstillingum.

Opnaðu fyrst aðal Apache skráarstillingar með uppáhalds textaritlinum þínum.

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

Neðst í skránni skaltu bæta við eftirfarandi tveimur línum.

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

Hlutverk Include yfirlýsinga hér er að segja Apache að héðan í frá ætti það að lesa frekari stillingar úr öllum skrám sem eru í /etc/httpd/conf/sites-enabled/ (fyrir Virtual Hosting) og /etc/httpd/conf/mods-enabled/ (fyrir virkjaða miðlara einingar) kerfisleiðir sem endar á .conf viðbót.

8. Eftir að Apache hefur fengið leiðbeiningar um þessar tvær tilskipanir skaltu búa til nauðsynlegar kerfisskrár með því að gefa út eftirfarandi skipanir.

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

Slóðin síður tiltækar geymir allar stillingarskrár sýndargestgjafa sem eru ekki virkjaðar á Apache en næsta Bash forskrift mun nota þessa möppu til að tengja og virkja vefsíður sem eru þar staðsettar.

Skref 4: Búðu til a2eniste og a2diste Apache skipanir

9. Nú er kominn tími til að búa til a2ensite og a2dissite Apache forskriftir sem munu þjóna sem skipanir til að virkja eða slökkva á Virtual Host stillingarskrá. Sláðu inn skipunina cd til að fara aftur í $HOME notendaslóðina þína og búðu til bash a2eniste og a2dissite forskriftirnar þínar með því að nota uppáhalds ritstjóri.

$ sudo nano a2ensite

Bættu eftirfarandi efni við þessa skrá.

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

Búðu til a2dissite bash script skrá.

$ sudo nano a2dissite

Bættu við eftirfarandi efni.

#!/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. Eftir að skrárnar höfðu verið búnar til, úthlutaðu keyrsluheimildum og afritaðu þær í PATH keyranlega möppu til að gera þær aðgengilegar fyrir kerfið.

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

Skref 5: Búðu til sýndargestgjafa í Apache

11. Sjálfgefin stillingarskrá Virtual Host fyrir Apache vefþjón á Arch Linux er veitt af httpd-vhosts.conf skrá sem staðsett er í /etc/httpd/conf/extra/ slóð en ef þú ert með kerfi sem notar mikið af Virtual Hosts getur verið mjög erfitt að halda utan um hvaða vefsíða er virkjuð eða ekki og. Ef þú vilt slökkva vefsíðu verður þú að skrifa athugasemdir eða eyða öllum tilskipunum hennar og það getur verið erfitt verkefni ef kerfið þitt býður upp á mikið af vefsíðum og vefsíðan þín hefur fleiri stillingarleiðbeiningar.

Með því að nota síður-tiltækar og síður-virkar slóðir, einfaldar það mjög vinnuna við að virkja eða slökkva á vefsíðum og varðveitir einnig allar stillingarskrár vefsíðna þinna þó þær séu virkjaðar eða ekki.

Í næsta skrefi ætlum við að smíða fyrsta sýndargestgjafann sem bendir á sjálfgefinn staðbundinn gestgjafa með sjálfgefna DocumentRoot slóðinni til að þjóna vefsíðuskrám (/srv/http.

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

Bættu við eftirfarandi Apache tilskipunum hér.

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

Mikilvægustu staðhæfingarnar hér eru Port og ServerName tilskipanir sem gefa Apache fyrirmæli um að opna nettengingu á port 80 og beina öllum fyrirspurnum með localhost nafni til þjóna skrár sem staðsettar eru í /srv/http/ slóð.

12. Eftir að localhost skráin hefur verið búin til, virkjaðu hana og endurræstu síðan httpd púkinn til að skoða breytingar.

$ sudo a2ensite localhost
$ sudo systemctl restart httpd

13. Beindu svo vafranum þínum á http://localhost, ef þú keyrir hann úr Arch kerfi eða http://Arch_IP ef þú notar fjarlægt kerfi.

Skref 6: Virkjaðu SSL með sýndarhýsingu á LAMPA

SSL (Secure Sockets Layer) er samskiptaregla sem er hönnuð til að dulkóða HTTP tengingar yfir netkerfi eða internetið, sem gerir það að verkum að gagnaflæði er sent yfir örugga rás með samhverfum/ósamhverfum dulmálslykla og er veitt í Arch Linux með OpenSSL pakkanum.

14. Sjálfgefið er að SSL eining er ekki virkjuð á Apache í Arch Linux og hægt er að virkja hana með því að taka athugasemdir við mod_ssl.so einingu úr aðal httpd.conf stillingarskrá og Include httpd-ssl.conf skrá staðsett í auka httpd slóð.

En til að einfalda hlutina ætlum við að búa til nýja einingaskrá fyrir SSL í mods-virkjaðri slóð og láta aðal Apache stillingarskrána ósnerta. Búðu til eftirfarandi skrá fyrir SSL mát og bættu við innihaldinu hér að neðan.

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

Bættu við eftirfarandi efni.

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. Búðu nú til Virtual Host skrá sem bendir á sama localhost nafnið en notar SSL miðlara stillingar að þessu sinni og breyttu nafninu aðeins til að minna þig á að það stendur fyrir localhost með SSL.

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

Bættu eftirfarandi efni við þessa skrá.

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

Fyrir utan Port og ServerName tilskipanir, eru aðrar mikilvægar tilskipanir hér þær sem benda á SSL Certificate skrá og SSL Key skrá sem eru ekki enn búnar til svo ekki endurræsa Apache vefþjón eða þú munt fá einhverjar villur.

16. Til að búa til nauðsynlega SSL vottorðsskrá og lykla skaltu setja upp OpenSSL pakkann með skipuninni hér að neðan.

$ sudo pacman -S openssl

17. Búðu síðan til eftirfarandi Bash forskrift sem býr til og geymir sjálfkrafa öll Apache vottorð og lykla í /etc/httpd/conf /ssl/ kerfisslóð.

$ sudo nano apache_gen_ssl

Bættu við eftirfarandi skráarefni og vistaðu það síðan og gerðu það keyranlegt.

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

Ef þú vilt að handritið sé tiltækt fyrir kerfið, afritaðu það á keyranlegan PATH.

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

18. Búðu til Skírteini og lykla með því að keyra skriftuna. Gefðu upp SSL valkostina þína og ekki gleyma heiti vottorðsins og algengt nafn til að passa við opinbera lénið þitt (FQDN).

$ sudo ./apache_gen_ssl

Eftir að vottorð og lyklar höfðu verið búnir til, ekki gleyma að breyta SSL Virtual Host vottorðinu þínu og lyklastillingum til að passa við nafn þessa vottorðs.

19. Síðasta skrefið er að virkja nýlega SSL Virtual Host og endurræsa netþjóninn þinn til að beita stillingum.

$ sudo a2ensite localhost-ssl
$ sudo systemctl restart httpd

Það er það! Til að staðfesta það, opnaðu vafrann og bættu Arch IP við URL með því að nota HTTPS samskiptareglur: https://localhost eða https://system_IP.

Skref 7: Virkjaðu PHP á Apache

20. Sjálfgefið er að Apache þjónar aðeins kyrrstæðum HTML-skrám í Arch Linux án stuðnings við kraftmikið forskriftarmál. Til að virkja PHP, opnaðu fyrst Apache aðalstillingarskrána, leitaðu síðan og afskrifaðu eftirfarandi LoadModule yfirlýsingu (php-apache virkar ekki með mod_mpm_event í Arch Linux ).

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

Notaðu [Ctrl]+[w] til að leita og skrifa athugasemdir í eftirfarandi línu til að líta svona út.

#LoadModule mpm_event_module modules/mod_mpm_event.so

21. Búðu síðan til nýja skrá fyrir PHP mát í mods-enabled slóð með eftirfarandi innihaldi.

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

Bættu við nákvæmlega eftirfarandi efni (þú verður að nota 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. Til að staðfesta stillingar búðu til PHP skrá sem heitir info.php í DocumnetRoot (/srv/http/), endurræstu síðan Apache og beindu vafranum þínum á info .php skrá: https://localhost/info.php.

<?php

phpinfo();

?>
$ sudo systemctl restart httpd

Það er það! Ef allt lítur út eins og á myndinni hér að ofan, hefurðu nú PHP kraftmikið forskriftarmál á netþjóni virkt á Apache og þú getur nú þróað vefsíður með því að nota Open Source CMS eins og WordPress til dæmis.

Ef þú vilt staðfesta Apache setningafræðistillingar og sjá lista yfir hlaðnar einingar án þess að endurræsa httpd púkann skaltu keyra eftirfarandi skipanir.

$ sudo apachectl configtest
$ sudo apachectl -M

Skref 8: Settu upp og stilltu PhpMyAdmin

23. Ef þú hefur ekki tök á MySQL skipanalínunni og vilt fá einfaldan fjaraðgang að MySQL gagnagrunni í gegnum vefviðmót þá þarftu PhpMyAdmin pakkann uppsettan á Arch kassanum þínum.

$ sudo pacman -S phpmyadmin php-mcrypt

24. Eftir að pakkarnir hafa verið settir upp þarftu að virkja nokkrar PHP viðbætur (mysqli.so, mcrypt.so – fyrir innri auðkenningu) og þú getur líka virkjað aðra einingar sem þarf fyrir framtíðar CMS palla eins og openssl.so, imap.so eða iconv.so o.s.frv.

$ sudo nano /etc/php/php.ini

Finndu og hafðu athugasemdir við ofangreindar viðbætur.

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

Einnig, á sömu skrá, leitaðu og finndu open_basedir yfirlýsingu og bættu við PhpMyAdmin kerfisslóð (/etc/webapps/ og /usr/share/webapps/) til að tryggja að PHP hafi aðgang að og lesið skrár undir þessum möppum (Ef þú breytir líka Virtual Hosts DocumentRoot slóð úr /srv/http/ á annan stað þarftu að bæta við nýju slóðinni hér líka ).

25. Það síðasta sem þú þarft að gera til að fá aðgang að PhpMyAdmin vefviðmóti er að bæta við PhpMyAdmin Apache yfirlýsingum á sýndargestgjafa. Sem öryggisráðstöfun mun tryggja að PhpMyAdmin vefviðmót sé aðeins aðgengilegt frá localhost (eða kerfis IP tölu) með því að nota HTTPS samskiptareglur og ekki frá öðrum mismunandi sýndargestgjöfum. Svo, opnaðu localhost-ssl.conf Apache skrána þína og neðst, áður en síðustu yfirlýsingin bættu við eftirfarandi efni.

$ 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. Endurræstu síðan Apache púkann og beindu vafranum þínum á eftirfarandi heimilisfang og þú ættir að geta fengið aðgang að PhpMyAdmin vefviðmótinu þínu: https://localhost/phpmyadmin eða https://system_IP/ phpmyadmin.

27. Ef, eftir að þú hefur skráð þig inn á PhpMyAdmin, sérðu botnvillu varðandi blowfish_secret, opnaðu og breyttu /etc/webapps/phpmyadmin/config.inc.php skránni og settu inn handahófskenndan streng eins og þann í eftirfarandi yfirlýsingu, endurnýjaðu síðan síðuna.

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

Skref 9: Virkja LAMP System Wide

28. Ef þú vilt að LAMP stafla sé sjálfkrafa ræstur eftir endurræsingu kerfisins skaltu keyra eftirfarandi skipanir.

$ sudo systemctl enable httpd mysqld

Þetta eru nokkrar af helstu stillingum á LAMP sem þarf til að breyta Arch Linux kerfi í einfaldan en öflugan, hraðvirkan og öflugan vefvettvang með gamaldags miðlarahugbúnaði fyrir lítil ekki - mikilvægt umhverfi, en ef þú verður þrjóskur og vilt samt nota það í stóru framleiðsluumhverfi ættirðu að vopna þig mikilli þolinmæði og fylgjast sérstaklega með pakkauppfærslum og gera reglulegar afritamyndir kerfisins fyrir hraða endurheimt kerfisins ef kerfisbilanir.