ການສ້າງ Virtual Hosts, ສ້າງໃບຢັ້ງຢືນແລະປຸ່ມ SSL ແລະເປີດໃຊ້ CGI Gateway ໃນ Gentoo Linux


ການສອນຂັ້ນສຸດທ້າຍກ່ຽວກັບ ການຕິດຕັ້ງ LAMP ໃນ Gentoo Linux ພຽງແຕ່ໄດ້ກວມເອົາຂັ້ນຕອນການຕິດຕັ້ງຂັ້ນພື້ນຖານໂດຍບໍ່ມີການຕັ້ງຄ່າເພີ່ມເຕີມທີ່ມີໃຫ້ Apache ເພື່ອຄວບຄຸມໂດເມນຂອງທ່ານໃຫ້ດີຂື້ນ.

ບົດແນະ ນຳ ນີ້ແມ່ນເຊື່ອມຕໍ່ຢ່າງເຄັ່ງຄັດກັບ ຄຳ ສັ່ງກ່ອນ ໜ້າ ນີ້ກ່ຽວກັບ Gentoo LAMP ແລະປຶກສາຫາລືກ່ຽວກັບການຕັ້ງຄ່າພິເສດ ສຳ ລັບສະພາບແວດລ້ອມ LAMP ເຊັ່ນການສ້າງ Virtual Hosts ໃນ Apache, ສ້າງ SSL ໃບຢັ້ງຢືນແລະເອກະສານໃບຢັ້ງຢືນ SSL, ເຮັດໃຫ້ອະນຸສັນຍາ SSL ທີ່ປອດໄພໃນການເຮັດທຸລະ ກຳ HTTP ແລະໃຊ້ Apache CGI Gateway ເພື່ອໃຫ້ທ່ານສາມາດ ດຳ ເນີນງານ Perl ຫຼື Bash ສະຄິບໃນເວັບໄຊທ໌ຂອງທ່ານ.

<

  • ຕິດຕັ້ງ LAMP ໃນ Gentoo Linux
  • ຂັ້ນຕອນທີ 1: ສ້າງ Apache Virtual Hosts

    ຫົວຂໍ້ນີ້ໃຊ້ຊື່ໂດເມນປອມ - gentoo.lan - ເປີດໃຊ້ຜ່ານແຟ້ມໂຮດໃນທ້ອງຖິ່ນ, ໂດຍມີເອກະສານເວບໄຊທ໌ທີ່ໃຫ້ບໍລິການຈາກ /var/www/gentoo.lan - DocumentRoot ຄຳ ສັ່ງ, ໂດຍບໍ່ຕ້ອງມີການບັນທຶກ DNS ທີ່ຖືກຕ້ອງ, ເພື່ອສະແດງໃຫ້ເຫັນວ່າສາມາດເປີດໃຊ້ງານ Virtual Host ໄດ້ແນວໃດໃນ Gentoo ໂດຍໃຊ້ Apache web Server.

    1. ເພື່ອເລີ່ມຕົ້ນ, ເປີດເອກະສານ Gentoo hosts ສຳ ລັບແກ້ໄຂແລະເພີ່ມເສັ້ນ ໃໝ່ ດ້ວຍຊື່ໂດເມນຂອງທ່ານ.

    $ sudo nano /etc/hosts

    ໃນຕອນທ້າຍຂອງເອກະສານເຮັດໃຫ້ມັນຄ້າຍຄືກັບນີ້.

    127.0.0.1 localhost gentoo
    192.168.1.13  gentoo.lan

    2. ທົດສອບໂດເມນປອມຂອງທ່ານດ້ວຍ ຄຳ ສັ່ງ pິງ ແລະໂດເມນຄວນຕອບສະ ໜອງ ກັບທີ່ຢູ່ IP ຂອງມັນ.

    $ ping -c2 gentoo.lan

    3. ຂັ້ນຕອນການເປີດໃຊ້ Apache Virtual Hosts ແມ່ນຂ້ອນຂ້າງງ່າຍດາຍ. ພຽງແຕ່ເປີດແຟ້ມເອກະສານ virtual default virtual Apache ທີ່ຕັ້ງຢູ່ໃນ /etc/apache2/vhosts.d/ ແລະກ່ອນທີ່ຈະຫຼ້າສຸດ , ໃສ່ ຄຳ ນິຍາມ Virtual Host ໃໝ່ ຂອງທ່ານທີ່ຢູ່ພາຍໃຕ້ ທິດທາງ. ຄ

    ປະກອບມີການຕັ້ງຄ່າທີ່ ກຳ ຫນົດເອງເຊັ່ນ: ServerName ແລະເສັ້ນທາງ DocumentRoot . ໃຊ້ແມ່ແບບແຟ້ມເອກະສານຕໍ່ໄປນີ້ເປັນ ຄຳ ແນະ ນຳ ສຳ ລັບ Virtual Host ໃໝ່ ແລະລວມເອົາມັນ ໃສ່ 00_default_vhost.conf (ສຳ ລັບເວັບໄຊທ໌ທີ່ບໍ່ແມ່ນ SSL).

    $ sudo nano /etc/apache2/vhosts.d/00_default_vhost.conf
    ## Another Virtual hosts statemes ending in </VirtualHost> ###
    
    <VirtualHost *:80>
            ServerName gentoo.lan
            DocumentRoot "/var/www/gentoo.lan"
                            <Directory "/var/www/gentoo.lan"
                    Options Indexes FollowSymLinks ExecCGI MultiViews
             # AllowOverride controls what directives may be placed in .htaccess files.       
                            AllowOverride All
            # Controls who can get stuff from this server file
                            Order allow,deny
                            Allow from all
            </Directory>
            <IfModule mpm_peruser_module>
                    ServerEnvironment apache apache
            </IfModule>
    </VirtualHost>
    
    ## Another Virtual hosts statemes ###
    ## LAST STATEMENT which closes virtual hosts file ##
    
    </IfDefine>

    ດັ່ງທີ່ທ່ານສາມາດເຫັນໄດ້ໂດຍການເບິ່ງເຫັນເນື້ອໃນຂອງເອກະສານນີ້, ເອກະສານໄດ້ຖືກປະກອບ ຄຳ ເຫັນຢ່າງສູງດ້ວຍ ຄຳ ອະທິບາຍແລະຍັງຮັກສານິຍາມ localhost Virtual Host ເຊິ່ງທ່ານສາມາດ ນຳ ໃຊ້ເປັນຄູ່ມື.

    4. ຫຼັງຈາກ ສຳ ເລັດການດັດແກ້ເອກະສານກັບ Custom Virtual Custom ຂອງທ່ານ, ໃຫ້ Apache ເລີ່ມຕົ້ນ ໃໝ່ ເພື່ອ ນຳ ໃຊ້ການຕັ້ງຄ່າແລະໃຫ້ແນ່ໃຈວ່າທ່ານສ້າງໄດເລກະທໍລີ DocumentRoot ໃນກໍລະນີທີ່ທ່ານໄດ້ປ່ຽນທິດທາງນີ້ແລະເສັ້ນທາງບໍ່ມີຢູ່ໃນຕອນຕົ້ນ (ໃນ ກໍລະນີນີ້ໄດ້ຖືກປ່ຽນເປັນ /ວາລະສານ/ເຈົ້າ ໜ້າ ທີ່ ). ຂ້ອຍຍັງໄດ້ສ້າງເອກະສານ PHP ຂະ ໜາດ ນ້ອຍເພື່ອທົດສອບການຕັ້ງຄ່າຂອງ webserver.

    $ sudo mkdir /var/www/gentoo.lan
    $ su "echo '<?php phpinfo(); ?>' > /var/www/gentoo.lan/info.php"
    $ sudo /etc/init.d/apache2 restart

    5. ເພື່ອກວດສອບມັນ, ເປີດໂປແກຼມທ່ອງເວັບແລະຊີ້ມັນຊື່ໂດເມນ virtual ຂອງທ່ານ http://gentoo.lan/info.php .

    ການ ນຳ ໃຊ້ຂັ້ນຕອນນີ້ທ່ານສາມາດເພີ່ມເວບໄຊທ໌ທີ່ບໍ່ແມ່ນ SSL ຫຼາຍເທົ່າທີ່ທ່ານຕ້ອງການໃຊ້ Apache Virtual Hosts, ແຕ່ ສຳ ລັບເຄື່ອງທີ່ໃຊ້ອິນເຕີເນັດທີ່ແທ້ຈິງຮັບປະກັນວ່າທ່ານມີໂດເມນຂອງທ່ານລົງທະບຽນແລ້ວແລະທ່ານໃຊ້ບັນທຶກ DNS server ທີ່ຖືກຕ້ອງ.

    ການລຶບ Virtual Host ພຽງແຕ່ອອກ ຄຳ ເຫັນຫລືລຶບທິດທາງຂອງມັນທີ່ຢູ່ໃນ ໃນ 00_default_vhost.conf .

    ຂັ້ນຕອນທີ 2: ສ້າງໃບຢັ້ງຢືນແລະໃບຢັ້ງຢືນ SSL ສຳ ລັບເຈົ້າພາບ Virtual

    SSL ແມ່ນໂປໂຕຄອນລະຫັດທີ່ໃຊ້ເພື່ອແລກປ່ຽນຂໍ້ມູນຜ່ານຊ່ອງທາງການສື່ສານທີ່ປອດໄພໃນເຄືອຂ່າຍອິນເຕີເນັດຫຼືພາຍໃນໂດຍໃຊ້ໃບຢັ້ງຢືນແລະຫຼັກ symmetric/asymmetric.

    6. ເພື່ອເຮັດໃຫ້ຂັ້ນຕອນການອອກໃບຢັ້ງຢືນແລະລະຫັດການຜະລິດກະແຈງ່າຍຂື້ນໂດຍໃຊ້ script Bash ຕໍ່ໄປນີ້ເຮັດ ໜ້າ ທີ່ເປັນ ຄຳ ສັ່ງແລະສ້າງທຸກສິ່ງທີ່ທ່ານຕ້ອງການໂດຍອັດຕະໂນມັດດ້ວຍການຕັ້ງຄ່າຊື່ໂດເມນ SSL ຂອງທ່ານ.

    ທຳ ອິດເລີ່ມຕົ້ນໂດຍການສ້າງອັກສອນ Bash ໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    $ sudo nano /usr/local/bin/apache_gen_ssl

    ຕື່ມເນື້ອໃນເອກະສານຕໍ່ໄປນີ້.

    #!/bin/bash
    mkdir /etc/apache2/ssl
    cd /etc/apache2/ssl
    echo -e "Enter a name for this certificate:\nEx: mydomain.lan"
    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 website!"
    ls -all /etc/apache2/ssl/
    exit 0

    7. ຫຼັງຈາກທີ່ໄດ້ສ້າງເອກະສານແລ້ວ, ໃຫ້ອະນຸຍາດປະຕິບັດການອະນຸຍາດຕ່າງໆໃສ່ມັນແລະ ດຳ ເນີນການເພື່ອສ້າງ SSL Keys ແລະໃບຢັ້ງຢືນ.

    $ sudo chmod +x /usr/local/bin/apache_gen_ssl
    $ sudo apache_gen_ssl

    ເມື່ອທ່ານ ດຳ ເນີນການຄັ້ງ ທຳ ອິດ, ຈະຂໍໃຫ້ທ່ານໃສ່ຊື່ ໂດເມນ ຂອງທ່ານ. ໃສ່ຊື່ ໂດເມນ ທີ່ທ່ານສ້າງການຕັ້ງຄ່າ SSL ແລະຕື່ມໃບຢັ້ງຢືນດ້ວຍຂໍ້ມູນທີ່ ຈຳ ເປັນ, ທີ່ ສຳ ຄັນທີ່ສຸດ, ຊື່ສາມັນ , ໃຊ້ FQDN server ຂອງທ່ານ.

    ສະຖານທີ່ເລີ່ມຕົ້ນທີ່ໃບຢັ້ງຢືນແລະຫຼັກຂອງທ່ານຖືກຈັດຢູ່ໂດຍໃຊ້ວິທີການນີ້ແມ່ນ /etc/apache2/ssl/.

    8. ດຽວນີ້ເຖິງເວລາແລ້ວທີ່ຈະສ້າງ gentoo.lan ທຽບເທົ່າ Virtual Host ຂອງ SSL. ໃຊ້ວິທີດຽວກັນກັບທີ່ບໍ່ແມ່ນ SSL Hosts ແຕ່ເວລານີ້ດັດແກ້ /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf ທີ່ຢູ່ມີການປ່ຽນແປງເລັກນ້ອຍ.

    ເປີດເອກະສານ ທຳ ອິດເພື່ອແກ້ໄຂແລະເຮັດການປ່ຽນແປງຕໍ່ໄປນີ້.

    $ sudo nano /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf

    ພາຍໃຕ້ ຄຳ ສັ່ງ ຟັງ 443 ເພີ່ມເນື້ອຫາຕໍ່ໄປນີ້.

    NameVirtualHost *:443

    ໃຊ້ແມ່ແບບຕໍ່ໄປນີ້ ສຳ ລັບ Virtual Host ໃໝ່ ແລະຕື່ມໃສ່ໃບຢັ້ງຢືນ SSL + ເສັ້ນທາງແລະຊື່ທີ່ ສຳ ຄັນ.

    ## Another Virtual hosts statemes ending in </VirtualHost> ###
    
    <VirtualHost *:443>
                    ServerName gentoo.lan
        DocumentRoot "/var/www/gentoo.lan"
                    ErrorLog /var/log/apache2/gentoo.lan-ssl_error_log
                    <IfModule log_config_module>
                                    TransferLog /var/log/apache2/gentoo.lan-ssl_access_log
                    </IfModule>
    
                    SSLEngine on
                    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    
    ## Edit with new generated SSL certificate and key and change path to /etc/apache2/ssl/
    
    		SSLCertificateFile /etc/apache2/ssl/gentoo.lan.crt
    		SSLCertificateKeyFile /etc/apache2/ssl/gentoo.lan.key
    
                    <Directory "/var/www/gentoo.lan">
                                    Options Indexes FollowSymLinks ExecCGI MultiViews Includes
                                    AllowOverride All
    			        Order allow,deny
            			Allow from all
                    </Directory>
    
                    <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                    SSLOptions +StdEnvVars
                    </FilesMatch>
    
                    <Directory "/var/www/gentoo.lan ">
                                    SSLOptions +StdEnvVars
                    </Directory>
    
                    <IfModule setenvif_module>
                                    BrowserMatch ".*MSIE.*" \
                                                    nokeepalive ssl-unclean-shutdown \
                                                    downgrade-1.0 force-response-1.0
                    </IfModule>
    
                    <IfModule log_config_module>
                                    CustomLog /var/log/apache2/ssl_request_log \
                                                    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
                    </IfModule>
    </VirtualHost>
    
    ## Another Virtual hosts statements ###

    ຄໍານິຍາມຂອງ Hosts Virtual ຕ້ອງສິ້ນສຸດກ່ອນຄໍາຖະແຫຼງການສາມຂໍ້ສຸດທ້າຍນີ້.

    </IfModule>
    </IfDefine>
    </IfDefine>

    9. ຫຼັງຈາກ ສຳ ເລັດການດັດແກ້ເອກະສານ Virtual Host ແລ້ວ, ໃຫ້ເລີ່ມການບໍລິການ Apache ແລະ ນຳ browser ຂອງທ່ານໄປທີ່ໂດເມນຂອງທ່ານໂດຍໃຊ້ HTTPS protocol https: //gentoo.lan .

    $ sudo /etc/init.d/apache2 restart

    ການ ນຳ ໃຊ້ຂັ້ນຕອນດັ່ງກ່າວ, ທ່ານສາມາດເພີ່ມເວບໄຊທ໌ SSL ດ້ວຍໃບຢັ້ງຢືນແລະຫຼັກຂອງຕົນເອງໂດຍໃຊ້ Apache Virtual Hosts. ເພື່ອເອົາ ຄຳ ຄິດເຫັນຂອງ SSL Hosts ອອກຫຼືລຶບທິດທາງຂອງມັນທີ່ຢູ່ໃນ ໃນ /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf ທີ່ຢູ່.

    ຂັ້ນຕອນທີ 3: ເປີດໃຊ້ງານໂຕ້ຕອບ CGI

    CGI ( Common Gateway Interface ) ມັນຊ່ວຍໃຫ້ Apache ສາມາດພົວພັນກັບໂປແກຼມພາຍນອກ, ຕົ້ນຕໍປະກອບດ້ວຍອັກສອນ Perl ຫຼື BASH ເຊິ່ງສາມາດເພີ່ມເນື້ອຫາແບບເຄື່ອນໄຫວໃຫ້ກັບເວັບໄຊທ໌ຂອງທ່ານ.

    10. ກ່ອນທີ່ຈະເປີດປະຕູ CGI ໃຫ້ແນ່ໃຈວ່າ Apache ຖືກລວບລວມດ້ວຍ USE CGI ທີ່ຢູ່ການສະ ໜັບ ສະ ໜູນ ໃສ່ໃນ Portage make.conf file: cgi cgid . ເພື່ອໃຫ້ການສະ ໜັບ ສະ ໜູນ GCI ສຳ ລັບ Apache ເປີດແຟ້ມເອກະສານ /etc/conf.d/apache2 ແລະຕື່ມໃສ່ໂມດູນ CGI ໃນເສັ້ນ APACHE2_OPTS .

    $ sudo nano /etc/conf.d/apache2

    ຮັບປະກັນວ່າສາຍນີ້ມີເນື້ອຫາຄ້າຍຄືກັນ.

    APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D STATUS -D CGI"

    11. ຫຼັງຈາກໂມດູນ CGI ຖືກເປີດໃຊ້ງານ, ເປີດເຈົ້າພາບນິຍາມເວັບໄຊທ໌ຂອງທ່ານທີ່ທ່ານຕ້ອງການເປີດໃຊ້ອິນເຕີເຟດ CGI ແລະເພີ່ມເນື້ອຫາຕໍ່ໄປນີ້ຢູ່ໃນທິດທາງຂອງ Virtual Host.

    <Directory "/var/www/gentoo.lan">
    	Options Indexes +ExecCGI MultiViews
            AddHandler cgi-script .cgi .pl
    	DirectoryIndex index.cgi index.php index.html index.pl
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>

    12. ຖ້າທ່ານມີໄດເລກະທໍລີຢູ່ພາຍໃນເສັ້ນທາງ DocumentRoot ( /var/www/gentoo.lan/ ) ຂອງທ່ານທີ່ມີສະຄິບ CGI ທ່ານສາມາດເປີດໃຊ້ພຽງແຕ່ໄດເລກະທໍລີນັ້ນໃຫ້ບໍລິການອັກສອນ Perl ຫຼື Bash ແບບເຄື່ອນໄຫວ.

    ScriptAlias /cgi-bin/ /var/www/gentoo.lan/cgi-bin/
    
    <Location /cgi-bin>
                    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
     DirectoryIndex index.cgi index.php index.html index.pl
    </Location>

    13. ສຳ ລັບ SSI (Server Side Includes) ເພີ່ມເຕີມໃສ່ ຄຳ ຖະແຫຼງ + ລວມ ໃນ ຕົວເລືອກ ແລະເພີ່ມການຂະຫຍາຍເອກະສານ .shtml .

    <Directory "/var/www/gentoo.lan">
                                    Options Indexes +ExecCGI +Includes
                                    AddHandler cgi-script .cgi .pl
                    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
            DirectoryIndex index.shtml index.cgi index.pl index.php index.html
                    AllowOverride All
                    Order allow,deny
                    Allow from all
    </Directory>

    14. ເພື່ອທົດສອບບາງຕົວອັກສອນທີ່ງ່າຍດາຍ .cgi ແລະ .pl ທີ່ຢູ່ທາງເຂົ້າຂອງ Apache CGI ສ້າງຕົວອັກສອນຕໍ່ໄປນີ້ພາຍໃນທ່ານ Virtual Host DocumentRoot (/var/www/gentoo. lan/).

    $ sudo nano /var/www/gentoo.lan/env.pl

    ເພີ່ມເນື້ອຫາ Perl ຕໍ່ໄປນີ້.

    #!/usr/bin/perl
    print "Content-type: text/html\n\n"; foreach my $keys (sort keys %ENV) { print "$keys =
    $ENV{$keys}<br/>\n";
    }
    $ sudo nano /var/www/gentoo.lan/run.cgi

    ຕື່ມເນື້ອຫາ Bash ຕໍ່ໄປນີ້.

    #!/bin/bash
    echo "Content-type: text/html"
    echo ""
    echo "---------------------------------------------------------------------------------"
                  ./env.pl 
    echo "---------------------------------------------------------------------------------"

    15. ຫຼັງຈາກໄຟລ໌ໄດ້ຖືກສ້າງຂື້ນມາ, ເຮັດໃຫ້ພວກມັນສາມາດປະຕິບັດໄດ້, ເລີ່ມເຕັ້ນ daemon Apache ແລະຊີ້ໃຫ້ browser ຂອງທ່ານໄປທີ່ URL ຕໍ່ໄປນີ້.

    $ sudo chmod +x /var/www/gentoo.lan/run.cgi
    $ sudo chmod +x /var/www/gentoo.lan/env.pl
    $ sudo /etc/init.d/apache2 restart
    https://gentoo.lan/run.cgi 
    
    OR
    
    https://gentoo.lan/env.pl

    ຕອນນີ້ທ່ານສາມາດຫັນປ່ຽນ Gentoo ເຂົ້າໃນເວບໄຊທ໌ໂຮດຕິ້ງທີ່ມີປະສິດທິພາບພ້ອມດ້ວຍການຕັ້ງຄ່າປັບລະບົບຕ່າງໆ ສຳ ລັບການເຮັດວຽກຂອງລະບົບຂອງທ່ານແລະຄວບຄຸມສູງສຸດຕໍ່ສະພາບແວດລ້ອມຂອງທ່ານທັງ ໝົດ.