Ịwụnye LAMP (Linux, Apache, MySQL/MariaDB, na PHP/PhpMyAdmin) na Arch Linux


Arch Linux na-enye gburugburu usoro ịkpụ afọ na-agbanwe agbanwe ma bụrụ ihe ngwọta kachasị mma maka mmepe ngwa weebụ na obere sistemụ na-adịghị mkpa n'ihi eziokwu ahụ bụ Open Source zuru oke ma na-enye mwepụta ikpeazụ na kernels na ngwanrọ webụ. sava na ọdụ data.

Isi ihe nkuzi a bụ iji duzie gị site na ntuziaka nzọụkwụ zuru oke nke na n'ikpeazụ ga-eduga n'ịwụnye otu n'ime ngwa ngwa ngwa eji eme ihe na mmepe Weebụ: LAMP (Linux, Apache, MySQL/MariaDB, na PHP/PhpMyAdmin )na ọ ga-ewetara gị ụfọdụ njirimara mara mma (ngwa ngwa na unyi Bash scripts) nke na-adịghị na sistemụ Arch Linux, mana ọ nwere ike mee ka ọrụ ahụ dị mfe na ịmepụta ọtụtụ Virtual Hosts , mepụta SSL Asambodo na Igodo chọrọ maka azụmahịa HTTS echekwara.

  1. Usoro nwụnye Arch Linux gara aga – jiri DHCP machie akụkụ ikpeazụ.
  2. Nwụnye LEMP gara aga na Arch Linux – naanị akụkụ nwere nhazi Adreesị IP Static yana ime Nnweta SSH.

Nzọụkwụ 1: Wụnye Basic Software LAMP

1. Mgbe nrụnye sistemu dị ntakịrị na adreesị IP static na ohere sistemụ site na iji SSH, kwalite igbe Arch Linux gị site na iji pacman utility.

$ sudo pacman -Syu

2. Mgbe usoro nkwalite ahụ gwụchara wụnye LAMP site na iberibe, buru ụzọ wụnye Apache Web Server wee malite/nyochaa usoro ihe nkesa ọ bụla daemon.

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

3. Wụnye PHP asụsụ scripting n'akụkụ sava na modul Apache ya.

$ sudo pacman -S php php-apache

4. Na nzọụkwụ ikpeazụ wụnye MySQL nchekwa data, họrọ 1 (MariaDB) ndụdụ nchekwa data obodo wee malite wee lelee ọnọdụ daemon.

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

Ugbu a ị nwere isi ngwanrọ LAMP arụnyere wee malite site na nhazi ndabara ruo ugbu a.

Kwụpụ 2: Chekwaa database MySQL

5. Nzọụkwụ ọzọ bụ idobe nchekwa data MySQL site na ịtọ paswọọdụ maka akaụntụ mgbọrọgwụ, wepụ akaụntụ ndị ọrụ na-amaghị aha, wepụ data nchekwa data ma gbochie nbanye nbanye maka mgbọrọgwụ onye ọrụ ( pịa [Enter >] igodo maka okwuntughe mgbọrọgwụ nke akaụntụ ugbu a wee zaa ya na Ee na ajụjụ nchekwa niile).

$ sudo mysql_secure_installation

6. Nyochaa MySQL nchekwa data Njikọta site na-agba ọsọ na-esonụ iwu wee hapụ nchekwa data shei na kwụsị ma ọ bụ wepụ nkwupụta.

$ mysql -u root -p

Kwụpụ 3: Megharịa faịlụ nhazi isi Apache

7. Nhazi ndị a bụ ọtụtụ n'ime ha metụtara Apache Web Server iji nye interface dị ike maka Virtual Bochum na PHP scripting asụsụ, SSL ma ọ bụ na-abụghị SSL Virtual Hosts na ike. emee site n'ịgbanwe nhazi faịlụ ọrụ httpd.

Buru ụzọ mepee nhazi faịlụ Apache isi site na iji ndezi ederede ọkacha mmasị gị.

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

N'okpuru faịlụ ahụ, tinye ahịrị abụọ ndị a.

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

Ọrụ Gụnye okwu ebe a bụ ịgwa Apache na site ugbu a gaa n'ihu, ọ kwesịrị ịgụkwu nhazi site na faịlụ niile dị na /etc/httpd/conf/sites-enabled/ (maka Virtual Bochum) na /etc/httpd/conf/mods-enabled/ (maka enabled server modul) ụzọ sistemu na-akwụsị na a .conf ndọtị.

8. Mgbe e nyechara Apache ntụziaka na ntuziaka abụọ a, mepụta akwụkwọ ndekọ aha usoro dị mkpa na-enye iwu ndị a.

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

Ụzọ saịtị dị na-ejide faịlụ nhazi ndị ọbịa Virtual niile na-adịghị arụ ọrụ na Apache mana edemede Bash na-esote ga-eji akwụkwọ ndekọ a iji jikọta ma mee ka webụsaịtị dị ebe ahụ nwee ike.

Kwụpụ 4: Mepụta a2eniste na a2diste Iwu Apache

9. Ugbu a ọ bụ oge ịmepụta a2ensite na a2dissite Apache scripts nke ga-eje ozi dị ka iwu iji mee ka ma ọ bụ gbanyụọ Virtual Host nhazi faịlụ. Pịnye iwu cd ka ịlaghachi na ụzọ onye ọrụ $HOME wee mepụta bash a2eniste na a2dissite script gị site na iji script gị. ọkacha mmasị nchịkọta akụkọ.

$ sudo nano a2ensite

Tinye ọdịnaya ndị a na faịlụ a.

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

Ugbu a mepụta faịlụ script bash a2dissite.

$ sudo nano a2dissite

Tinye ọdịnaya ndị a.

#!/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. Mgbe emechara faịlụ ndị ahụ, kenye ikike ma detuo ha na akwụkwọ ndekọ aha PATH iji mee ka sistemụ dị obosara.

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

Kwụpụ 5: Mepụta ndị ọbịa mebere na Apache

11. Virtual Host ndabere faịlụ nhazi maka sava weebụ Apache na Arch Linux bụ faịlụ httpd-vhosts.conf dị na /etc/httpd/conf/extra/ ụzọ mana ọ bụrụ na ị nwere usoro nke na-eji ọtụtụ Virtual Hosts nwere ike isi ike ịdebe ihe weebụsaịtị na-arụ ọrụ ma ọ bụ na ọ bụghị. Ọ bụrụ na ịchọrọ gbanyụọ webụsaịtị ị ga-azarịrị ma ọ bụ hichapụ ntuziaka ya niile na nke ahụ nwere ike bụrụ ọrụ siri ike ma ọ bụrụ na sistemụ na-enye ọtụtụ weebụsaịtị yana webụsaịtị gị nwere ntuziaka nhazi karịa.

Iji saịtị-dị na saịtị enyere ụzọ, na-eme ka ọrụ nke na-enyere ma ọ bụ ịgbanyụ webụsaịtị dị mfe ma na-echekwakwa. faịlụ nhazi webụsaịtị gị niile n'agbanyeghị agbanyere ha ma ọ bụ na anaghị arụ ọrụ.

Na nzọụkwụ ọzọ, anyị ga-ewu nke mbụ Virtual Host nke na-atụ aka na ndabara localhost na ndabara DocumentRoot ụzọ maka ijere faịlụ weebụsaịtị (/srv/http.

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

Tinye ntuziaka Apache ebe a.

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

Okwu ndị kachasị mkpa ebe a bụ iwu Port na ServerAme ntụziaka na-agwa Apache ka imepe njikọ netwọk n'ọdụ ụgbọ mmiri 80 wee zigharịa ajụjụ niile nwere aha localhost gaa na ya. nye faịlụ ndị dị na ụzọ /srv/http/.

12. Mgbe localhost faịlụ e kere, rụọ ọrụ ya wee malitegharịa httpd daemon ịhụ mgbanwe.

$ sudo a2ensite localhost
$ sudo systemctl restart httpd

13. Mgbe ahụ tụọ ihe nchọgharị gị na http://localhost, ọ bụrụ na ị na-agba ya site na Arch system ma ọ bụ http://Arch_IP ma ọ bụrụ na ị na-eji sistemu dịpụrụ adịpụ.

Kwụpụ 6: Kwado SSL na Virtual Bochum na LAMP

SSL (Secure Sockets Layer) bụ ụkpụrụ emebere iji zoo njikọ HTTP n'elu netwọkụ ma ọ bụ ịntanetị, nke na-eme ka ebufe data na ọwa echekwara site na iji igodo symmetric/asymmetric cryptography. wee nye ya na Arch Linux site na ngwungwu OpenSSL.

14. Site na ndabara SSL modul adịghị enyere na Apache na Arch Linux ma nwee ike rụọ ọrụ site na uncommenting mod_ssl.so modul sitere na isi httpd.conf faịlụ nhazi na Gụnye httpd-ssl.conf faịlụ dị n'ụzọ httpd ọzọ.

Mana iji mee ka ihe dị mfe, anyị ga-emepụta faịlụ modul ọhụrụ maka SSL na mods-enabledụzọ wee hapụ isi faịlụ nhazi Apache emetụghị ya. Mepụta faịlụ ndị a maka modul SSL wee tinye ọdịnaya dị n'okpuru.

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

Tinye ọdịnaya ndị a.

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. Ugbu a mepụta faịlụ nnabata Virtual nke na-arụtụ aka n'otu aha localhost mana iji nhazi ihe nkesa SSL oge a, ma gbanwee aha ya ntakịrị iji chetara gị na ọ na-anọchi anya localhost na SSL.

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

Tinye ọdịnaya ndị a na faịlụ a.

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

Ewezuga iwu Port na ServerAme, ntuziaka ndị ọzọ dị mkpa ebe a bụ ndị na-atụ aka na faịlụ SSL Asambodo yana faịlụ SSL Key nke Emebebeghị ka ịmalitegharị sava weebụ Apache ma ọ bụ na ị ga-enweta mperi.

16. Iji mepụta faịlụ SSL Asambodo achọrọ na igodo wụnye ngwugwu OpenSSL na-enye iwu dị n'okpuru.

$ sudo pacman -S openssl

17. Mgbe ahụ mepụta Bash script nke na-emepụta na-akpaghị aka na-echekwa gị niile Apache Asambodo na igodo na /etc/httpd/conf. /ssl/ụzọ usoro.

$ sudo nano apache_gen_ssl

Tinye ọdịnaya faịlụ na-esote wee chekwaa ya ma mee ka ọ rụọ ọrụ.

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

Ọ bụrụ na ịchọrọ ka edemede ahụ dị na sistemụ, detuo ya na PATH nke enwere ike ime ya.

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

18. Ugbu a mepụta Asambodo na Igodo gị site na ịmegharị edemede ahụ. Nye nhọrọ SSL gị ma echefula aha akwụkwọ na Aha Ọkachamara ka ọ dabara na ngalaba gọọmentị gị (FQDN).

$ sudo ./apache_gen_ssl

Mgbe emechara asambodo na igodo, echefula imezi asambodo nnabata SSL gị yana nhazi igodo iji dakọọ aha asambodo a.

19. Nzọụkwụ ikpeazụ bụ iji rụọ ọrụ ọhụrụ SSL Virtual Host ma malitegharịa ihe nkesa gị iji tinye nhazi.

$ sudo a2ensite localhost-ssl
$ sudo systemctl restart httpd

Ọ bụ ya! Iji nyochaa ya mepere ihe nchọgharị wee tinye Arch IP na URL site na iji protocol HTTPS: https://localhost ma ọ bụ https://system_IP.

Kwụpụ 7: Kwado PHP na Apache

20. Site ndabara Apache na-eje ozi naanị HTML static faịlụ ọdịnaya na Arch Linux na-enweghị ike scripting asụsụ nkwado. Iji rụọ ọrụ PHP buru ụzọ mepee faịlụ nhazi isi Apache wee chọọ ma kwupụta nkwupụta LoadModule na-esonụ (php-apache anaghị arụ ọrụ na mod_mpm_event na Arch Linux. ).

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

Iji [Ctrl]+[w] chọọ wee kwuo ahịrị na-esonụ ka ọ dị ka nke a.

#LoadModule mpm_event_module modules/mod_mpm_event.so

21. Mgbe ahụ mepụta faịlụ ọhụrụ maka modul PHP na mods-enabledụzọ yana ọdịnaya ndị a.

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

Tinye kpọmkwem ọdịnaya ndị a (ị ga-eji 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. Iji nyochaa ntọala mepụta PHP faịlụ aha ya bụ info.php na DocumnetRoot gị (/srv/http/), wee malitegharịa Apache wee tụọ ihe nchọgharị gị na ozi. .php faịlụ: https://localhost/info.php.

<?php

phpinfo();

?>
$ sudo systemctl restart httpd

Ọ bụ ya! Ọ bụrụ na ihe niile dị ka onyonyo dị n'elu, ị nwere asụsụ PHP ike na-edobe akụkụ nkesa na Apache ma ị nwere ike mepụta weebụsaịtị site na iji Open Source CMS dị ka WordPress dịka ọmụmaatụ.

Ọ bụrụ na ịchọrọ inyocha nhazi syntax Apache wee hụ ndepụta nke modul ebugoro na-enweghị ịmalitegharị httpd daemon na-eme iwu ndị a.

$ sudo apachectl configtest
$ sudo apachectl -M

Kwụpụ 8: Wụnye ma hazie PhpMyAdmin

23. Ọ bụrụ na ị maghị MySQL iwu ahịrị na-achọ a mfe ime ohere MySQL nchekwa data nyere site web interface mgbe ahụ ị chọrọ PhpMyAdmin ngwugwu arụnyere na gị Arch igbe.

$ sudo pacman -S phpmyadmin php-mcrypt

24. Mgbe etinyere ngwugwu ndị ahụ ịkwesịrị ịme ka ụfọdụ ndọtị PHP (mysqli.so, mcrypt.so- maka nyocha nke ime) ma ị nwekwara ike mee ka ndị ọzọ nwee ike. modul maka mkpa maka nyiwe CMS n'ọdịnihu dị ka openssl.so, imap.so ma ọ bụ iconv.so wdg.

$ sudo nano /etc/php/php.ini

Chọta na kwughachi ndọtị ndị dị n'elu.

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

Ọzọkwa, na otu faịlụ, chọọ ma chọta nkwupụta open_basedir wee tinye PhpMyAdmin usoro ụzọ (/etc/webapps/ na /usr/share/webapps/ >) iji jide n'aka na PHP nwere ike ịnweta ma gụọ faịlụ n'okpuru akwụkwọ ndekọ aha ndị ahụ (Ọ bụrụ na gị onwe gị, gbanwee ụzọ Virtual Hosts DocumentRoot site na / srv/http/ gaa na ebe ọzọ ị ga-etinyekwa ụzọ ọhụrụ ebe a kwa. ).

25. Ihe ikpeazụ ị ga-eme iji nweta PhpMyAdmin Web Interface bụ ịgbakwunye PhpMyAdmin Apache nkwupụta na Virtual Hosts. Dị ka ihe nchekwa ga-ahụ na PhpMyAdmin Web Interface nwere ike ịnweta naanị site na localhost (ma ọ bụ adreesị IP sistemụ) site na iji HTTPS protocol ọ bụghị site na ndị ọbịa mebere dị iche iche. Yabụ, mepee localhost-ssl.conf faịlụ Apache gị yana na ala, tupu nkwupụta ikpeazụ tinye ọdịnaya ndị a.

$ 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. Emechaa malitegharịa Apache daemon wee tụọ ihe nchọgharị gị na adreesị ndị a ma ị ga-enwe ike ịnweta PhpMyAdmin Web Interface: https://localhost/phpmyadmin ma ọ bụ https://system_IP/ phpmyadmin.

27. Ọ bụrụ na, mgbe ịbanye na PhpMyAdmin, ị na-ahụ njehie ala gbasara blowfish_secret, mepee ma dezie /etc/webapps/phpmyadmin/config.inc.php faịlụ na tinye eriri enweghị usoro dị ka nke dị na nkwupụta na-esonụ, wee weghachi ibe ya.

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

Nzọụkwụ 9: Kwado LAMP Sistemụ Wide

28. Ọ bụrụ na ị chọrọ LAMP tojupụtara na-akpaghị aka malitere mgbe usoro reboot na-agba ndị na-esonụ iwu.

$ sudo systemctl enable httpd mysqld

Nke a bụ ụfọdụ ntọala nhazi isi na LAMP dị mkpa iji gbanwee sistemụ Arch Linux ka ọ bụrụ ikpo okwu webụ dị mfe mana dị ike, ngwa ngwa na siri ike nwere sọftụwia ihe nkesa na-egbu oge maka obere ndị na-abụghị. -dị oke egwu gburugburu, ma ọ bụrụ na ị na-esi ike ma ka na-achọ iji ya na a nnukwu mmepụta gburugburu ebe obibi ị kwesịrị ogwe aka onwe gị na ọtụtụ ndidi na-akwụ ụgwọ ihe mmezi anya na ngwugwu mmelite na-eme ka mgbe usoro ndabere oyiyi maka a ngwa ngwa usoro iweghachi bụrụ na nke. usoro ọdịda.