ຕິດຕັ້ງ LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM ແລະ PhpMyAdmin) ໃນ Gentoo Linux


Gentoo ແມ່ນ ໜຶ່ງ ໃນການແຈກຢາຍ Linux ທີ່ໄວທີ່ສຸດເນື່ອງຈາກການສ້າງມາຈາກການ ກຳ ນົດທິດທາງຂອງແຫຼ່ງຂໍ້ມູນແລະໃຫ້ໂດຍໂປຣແກຣມຄຸ້ມຄອງຊອບແວ - Portage - ມີເຄື່ອງມືບາງຢ່າງທີ່ ຈຳ ເປັນໃນການສ້າງເວທີນັກພັດທະນາເວບໄຊທ໌ທີ່ສົມບູນເຊິ່ງເຮັດວຽກແລະເຮັດວຽກໄດ້ໄວແລະ, ຍັງ, ມີລະດັບສູງຂອງການປັບແຕ່ງ.

ຫົວຂໍ້ນີ້ຈະພາທ່ານຜ່ານຂັ້ນຕອນການຕິດຕັ້ງຂັ້ນຕອນ ສຳ ລັບການສ້າງແພລະຕະຟອມສະພາບແວດລ້ອມເວບໄຊທ໌ທີ່ສົມບູນພ້ອມດ້ວຍ LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin) ແລະດ້ວຍຄວາມຊ່ວຍເຫລືອໃນ ທຸງ USE ທີ່ສະ ໜອງ ໂດຍ Portage Package Management ເຊິ່ງມີຊຸດການເຮັດວຽກຂອງແພັກເກັດໃນຂັ້ນຕອນການລວບລວມ - ໂມດູນຫລືການຕັ້ງຄ່າທີ່ ຈຳ ເປັນ ສຳ ລັບເວບໄຊທ໌, ຈະຊ່ວຍປັບຄ່າການຕັ້ງຄ່າເຊີຟເວີໃຫ້ສູງ.

<

  • ການຕິດຕັ້ງ Gentoo ພ້ອມດ້ວຍຂໍ້ມູນທີ່ແຂງກະດ້າງ ສຳ ລັບເຄື່ອງແມ່ຂ່າຍທີ່ປະເຊີນກັບອິນເຕີເນັດ - ຄູ່ມືການຕິດຕັ້ງ Gentoo.
  • ເຄືອຂ່າຍໄດ້ຕັ້ງຄ່າດ້ວຍ IP address ຄົງທີ່.
  • ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງ Nginx Web Server

    1. ກ່ອນທີ່ຈະພະຍາຍາມທີ່ຈະ ດຳ ເນີນການຕິດຕັ້ງ Nginx ໃຫ້ແນ່ໃຈວ່າ NIC ຂອງທ່ານໄດ້ຖືກຕັ້ງຄ່າດ້ວຍທີ່ຢູ່ IP Static ແລະໃຫ້ແນ່ໃຈວ່າແຫຼ່ງ Portage ແລະລະບົບຂອງທ່ານມັນລ້າສຸດ.

    $ sudo su -
    # emerge --sync
    # emerge --update --deep --with-bdeps=y @world

    2. ຫຼັງຈາກຂັ້ນຕອນການປັບປຸງ ສຳ ເລັດແລ້ວ, ດຳ ເນີນການຕິດຕັ້ງ Nginx ໂດຍການເລືອກການຕັ້ງຄ່າແລະໂມດູນທີ່ຕ້ອງການໂດຍການສະແດງທຸງ Nginx USE ໄປທີ່ Portage make.conf . ບັນຊີລາຍຊື່ ທຳ ອິດ Nginx ໂມດູນການຕິດຕັ້ງແບບເລີ່ມຕົ້ນໂດຍການເຮັດວຽກຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # emerge -pv nginx

    ສຳ ລັບຂໍ້ມູນກ່ຽວກັບໂມດູນລະອຽດ (ໃຊ້ USE ສຳ ລັບແພັກເກດ) ໃຊ້ ເທົ່າກັບ ຄຳ ສັ່ງ.

    # equery uses nginx

    ຈາກນັ້ນຕິດຕັ້ງ Nginx ດ້ວຍ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # emerge --ask nginx

    ຖ້າທ່ານຕ້ອງການໂມດູນພິເສດ (WebDAV, fancyindex, GeoIP, ແລະອື່ນໆ) ນອກ ເໜືອ ຈາກຄ່າເລີ່ມຕົ້ນ, ວ່າ Nginx ຈະລວບລວມກັບ, ໃຫ້ຕື່ມໃສ່ທຸກສາຍດຽວໃນ Portage make.conf ພ້ອມດ້ວຍ NGINX_MODULES_HTTP ທິດທາງ, ຫຼັງຈາກນັ້ນໃຫ້ Nginx ປະສົມປະສານກັບໂມດູນ ໃໝ່.

    # echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf
    # emerge --ask nginx

    3. ຫຼັງຈາກທີ່ Portage ສິ້ນສຸດລົງຂອງ Nginx ທີ່ ກຳ ລັງເກີດຂື້ນ, ເລີ່ມຕົ້ນ http daemon ແລະກວດສອບມັນໂດຍ ກຳ ນົດໃຫ້ browser ຂອງທ່ານໄປ http:// localhost .

    ຂັ້ນຕອນທີ 2: ຕິດຕັ້ງ PHP

    4. ເພື່ອ ນຳ ໃຊ້ພາສາການຂຽນໂປແກຼມເວບໄຊທ໌ແບບເຄື່ອນໄຫວຂອງ PHP ກັບເຄື່ອງແມ່ຂ່າຍ Nginx, ຕິດຕັ້ງ PHP-FastCGI Process Manager ( FPM ) ໂດຍການເພີ່ມ fpm ແລະ PHP ສຳ ຄັນອື່ນໆ ການຂະຫຍາຍຢູ່ໃນທຸງ Portage USE ແລະໃຫ້ແນ່ໃຈວ່າທ່ານຖອນການຂະຫຍາຍ Apache.

    # emerge -pv php
    # equery uses php
    # echo " dev-lang/php fpm cgi curl gd imap mysql mysqli pdo zip json xcache apc zlib zip truetype -apache2 " >> /etc/portage/package.use
    # emerge --ask php

    5. ກ່ອນທີ່ຈະເລີ່ມຕົ້ນ PHP-FPM ຕ້ອງມີການປ່ຽນແປງບາງຢ່າງໃນເອກະສານການຕັ້ງຄ່າການບໍລິການ. ເປີດເອກະສານການຕັ້ງຄ່າ php-fpm ແລະເຮັດການປ່ຽນແປງຕໍ່ໄປນີ້.

    # nano /etc/php/fpm-php5.5/php-fpm.conf

    ຊອກຫາແລະປະຕິບັດຕາມ ຄຳ ແນະ ນຳ ຕໍ່ໄປນີ້ເພື່ອໃຫ້ເບິ່ງແບບນີ້.

    error_log = /var/log/php-fpm.log
    listen = 127.0.0.1:9000    ## Here you can use any HTTP socket (IP-PORT combination ) you want  ##
    pm.start_servers = 20

    6. ຫຼັງຈາກເອກະສານການຕັ້ງຄ່າຂອງ PHP-FPM ມັນຖືກແກ້ໄຂແລ້ວ, ໃຫ້ປ່ຽນການອະນຸຍາດໄຟລ໌ PHP-FPM ແລະເລີ່ມການບໍລິການ.

    # chmod 755 /var/log/php-fpm.log
    # /etc/init.d/php-fpm start

    ເຖິງແມ່ນວ່າການບໍລິການຂອງ PHP-FPM ໄດ້ຖືກເລີ່ມຕົ້ນ, Nginx ບໍ່ສາມາດສື່ສານກັບ gateway ຂອງ PHP ໄດ້, ສະນັ້ນ, ການປ່ຽນແປງບາງຢ່າງກໍ່ ຈຳ ເປັນຕ້ອງເຮັດໃນເອກະສານການຕັ້ງຄ່າ Nginx.

    ຂັ້ນຕອນທີ 3: ແກ້ໄຂການຕັ້ງຄ່າ Nginx

    7. ເອກະສານການຕັ້ງຄ່າແບບແຜນແບບ ໃໝ່ ຂອງ Nginx ພຽງແຕ່ສະ ໜອງ ເຕົ້າຮັບ HTTP ຂັ້ນພື້ນຖານ ສຳ ລັບ localhost ເທົ່ານັ້ນ. ເພື່ອປ່ຽນແປງພຶດຕິ ກຳ ນີ້ແລະເປີດໃຊ້ Virtual Hosts, ເປີດ nginx.conf ທີ່ຕັ້ງຢູ່ໃນເສັ້ນທາງ /etc/nginx/ ແລະເຮັດການຕັ້ງຄ່າຕໍ່ໄປນີ້.

    # nano /etc/nginx/nginx.conf

    ຊອກຫາທ່ອນ ເຊີເວີ້ ທຳ ອິດທີ່ກົງກັບ localhost ແລະຟັງໃນ 127.0.0.1 ທີ່ຢູ່ IP ແລະຍ້ອງຍໍທຸກ ຄຳ ຖະແຫຼງຂອງມັນທີ່ຄ້າຍຄືກັບໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້.

    ຢ່າປິດເອກະສານເທື່ອແລະຍ້າຍໄປທາງລຸ່ມແລະເພີ່ມ ຄຳ ກ່າວຕໍ່ໄປນີ້ກ່ອນທີ່ຈະປິດວົງເລັບ .

    Include /etc/nginx/sites-enabled/*.conf;

    8. ຕໍ່ໄປສ້າງ ເວັບໄຊທ໌ທີ່ເປີດໃຊ້ ແລະ ສະຖານທີ່ສາມາດໃຊ້ໄດ້ (ສຳ ລັບໄດເລກະທໍລີ Virtual ທີ່ໃຊ້ບໍ່ໄດ້) ແລະໄດເລກະທໍລີ Nginx ແລະແຟ້ມການຕັ້ງຄ່າ ສຳ ລັບ localhost ໃນໂປແກຼມ HTTP ແລະ HTTPS.

    # mkdir /etc/nginx/sites-available
    # mkdir /etc/nginx/sites-enabled

    ສ້າງການຕັ້ງຄ່າເອກະສານຕໍ່ໄປນີ້ ສຳ ລັບ localhost.

    # nano /etc/nginx/sites-available/localhost.conf

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

    server {
                   listen 80;
                   server_name localhost;
    
                   access_log /var/log/nginx/localhost_access_log main;
                   error_log /var/log/nginx/localhost_error_log info;
    
                   root /var/www/localhost/htdocs;
    
                    location / {
                    index index.html index.htm index.php;
                    autoindex on;
                    autoindex_exact_size off;
                    autoindex_localtime on;
    
                                    }
    
                             location ~ \.php$ {
                           # Test for non-existent scripts or throw a 404 error
                           # Without this line, nginx will blindly send any request ending in .php to php-fpm
                           try_files $uri =404;
                            include /etc/nginx/fastcgi.conf;
                           fastcgi_pass 127.0.0.1:9000;  ## Make sure the socket corresponds with PHP-FPM conf file
                            }
                    }

    ສຳ ລັບ localhost ກັບ SSL ສ້າງເອກະສານການຕັ້ງຄ່າຕໍ່ໄປນີ້.

    # nano /etc/nginx/sites-available/localhost-ssl.conf

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

    server {
                   listen 443 ssl;
                   server_name localhost;
    
                ssl on;
                   ssl_certificate /etc/ssl/nginx/nginx.pem;
                   ssl_certificate_key /etc/ssl/nginx/nginx.key;
    
                   access_log /var/log/nginx/localhost.ssl_access_log main;
                   error_log /var/log/nginx/localhost.ssl_error_log info;
    
                   root /var/www/localhost/htdocs;
    
                                    location / {
                    index index.html index.htm index.php;
                    autoindex on;
                    autoindex_exact_size off;
                    autoindex_localtime on;
                                     }                                                
    
                          location ~ \.php$ {
                           # Test for non-existent scripts or throw a 404 error
                           # Without this line, nginx will blindly send any request ending in .php to php-fpm
                           try_files $uri =404;
                           include /etc/nginx/fastcgi.conf;
                           fastcgi_pass 127.0.0.1:9000;
                                    }
                    }

    9. ດຽວນີ້ເຖິງເວລາແລ້ວທີ່ຈະສ້າງສອງສະຄິບຢູ່ໃນເສັ້ນທາງທີ່ສາມາດປະຕິບັດໄດ້ຕາມລະບົບ ($ຕົວປ່ຽນຫອຍ PATH), ນັ້ນເຮັດ ໜ້າ ທີ່ເປັນ ຄຳ ສັ່ງເພື່ອເປີດໃຊ້ງານຫລືປິດການໃຊ້ງານ Nginx Virtual Hosts.

    ສ້າງຕົວອັກສອນ Bash ທຳ ອິດທີ່ມີຊື່ວ່າ n2ensite ເຊິ່ງຈະຊ່ວຍໃຫ້ໄຟລ໌ການຕັ້ງຄ່າ Virtual Hosts ໂດຍການສ້າງສັນຍາລັກທີ່ເຊື່ອມໂຍງລະຫວ່າງເຈົ້າພາບທີ່ລະບຸຈາກ ເວັບໄຊທ໌ທີ່ມີ ເພື່ອ ສະຖານທີ່ທີ່ເປີດໃຊ້ >.

    # nano /usr/local/bin/n2eniste

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

    #!/bin/bash
    if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
    echo "-----------------------------------------------"
    else
    mkdir /etc/nginx/sites-available
    mkdir /etc/nginx/sites-enabled
    fi
    
    avail=/etc/nginx/sites-available/$1.conf
    enabled=/etc/nginx/sites-enabled/
    site=`ls /etc/nginx/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 nginx server: sudo /etc/init.d/ nginx restart"
    else
    echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
    exit 0
    fi
    fi

    10. ຫຼັງຈາກນັ້ນສ້າງສະຄິບທີສອງທີ່ມີຊື່ວ່າ n2dissite , ເຊິ່ງຈະລຶບ Hosts Virtual ທີ່ ກຳ ນົດໄວ້ຈາກ ສະຖານທີ່ທີ່ເປີດໃຊ້ ເສັ້ນທາງ Nginx ທີ່ມີເນື້ອຫາຕໍ່ໄປນີ້.

    # nano /usr/local/bin/n2dissite

    ຕື່ມເນື້ອໃນຕໍ່ໄປນີ້.

    #!/bin/bash
    avail=/etc/nginx/sites-enabled/$1.conf
    enabled=/etc/nginx/sites-enabled
    site=`ls /etc/nginx/sites-available/`
    
    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!\nPlease restart Nginx: sudo /etc/init.d/nginx restart"
    exit 0
    fi
    fi

    11. ຫຼັງຈາກ ສຳ ເລັດການດັດແກ້ Bash scripts, ເພີ່ມການອະນຸຍາດການປະຕິບັດແລະກະຕຸ້ນ localhost Virtual Hosts - ໃຊ້ຊື່ແຟ້ມການຕັ້ງຄ່າ Virtual Host ໂດຍບໍ່ມີການຂະຫຍາຍ .conf , ຫຼັງຈາກນັ້ນໃຫ້ບໍລິການ ໃໝ່ ຂອງ Nginx ແລະ PHP-FPM ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ.

    # chmod +x /usr/local/bin/n2dissite
    # chmod +x /usr/local/bin/n2ensite
    # n2ensite localhost
    # n2ensite localhost-ssl
    # service nginx restart
    # service php-fpm restart

    12. ເພື່ອທົດສອບການຕັ້ງຄ່າສ້າງເອກະສານຂໍ້ມູນຂອງ PHP ເທິງເສັ້ນທາງຮາກຂອງ localhost ສຳ ລັບເອກະສານເວັບ (/var/www/localhost/htdocs ) ແລະປ່ຽນເສັ້ນທາງ browser ຂອງທ່ານໃນ https:/localhost/info .php ຫຼື http://localhost/info.php .

    echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php

    ການ ນຳ ໃຊ້ແຟ້ມການຕັ້ງຄ່າຂອງ localhost Virtual Hosts ເປັນແມ່ແບບແລະ Nginx n2enmod ແລະ n2dismod ດຽວນີ້ທ່ານສາມາດເພີ່ມຫລາຍເວັບໄຊທ໌ໄດ້ຕາມທີ່ທ່ານຕ້ອງການ, ແຕ່ຮັບປະກັນວ່າທ່ານໄດ້ຊີ້ DNS ທີ່ຖືກຕ້ອງ ສຳ ລັບອິນເຕີເນັດ. -facing web server ຫຼືໃຊ້ລາຍການຕ່າງໆທີ່ຢູ່ໃນທ້ອງຖິ່ນໃນ file system systems.

    ຂັ້ນຕອນທີ 4: ຕິດຕັ້ງ MySQL/MariaDB + PhpMyAdmin

    ການຕິດຕັ້ງຖານຂໍ້ມູນ MySQL ແລະ PhpMyAdmin Web interface ສຳ ລັບ MySQL ໃຊ້ຂັ້ນຕອນດຽວກັນທີ່ ນຳ ສະ ເໜີ ໃນການຕິດຕັ້ງ LAMP ເທິງ Gentoo.

    13. ຕອບແທນຖ້າທ່ານຕ້ອງການໃຊ້ MariaDB, ການທົດແທນທີ່ຫຼຸດລົງ ສຳ ລັບ MySQL, ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອໃຫ້ໄດ້ ທຸງ USE ແລະຕິດຕັ້ງມັນ.

    # emerge -pv mariadb
    # emerge --ask mariadb

    ໃນກໍລະນີທີ່ທ່ານມີຂໍ້ຂັດແຍ່ງກ່ຽວກັບແພັກເກດກັບ MySQL ເພີ່ມສາຍຕໍ່ໄປນີ້ໃນ Portage package.accept.keywords .

    # echo “=dev-db/mariadb-5.5.37-r1 ~amd64” >> /etc/portage/package.accept.keywords
    # echo “=virtual/mysql-5.5 ~amd64” >> /etc/portage/package.accept.keywords
    # emerge --ask mariadb

    14. ຫຼັງຈາກທີ່ຖານຂໍ້ມູນ MySQL ຖືກຕິດຕັ້ງໃຫ້ບໍລິການເລີ່ມຕົ້ນແລະຮັບປະກັນມັນໂດຍໃຊ້ mysql_secure_installation (ປ່ຽນລະຫັດລັບຮາກ, ປິດການໃຊ້ງານເຂົ້າສູ່ລະບົບຢູ່ນອກລະບົບ localhost, ເອົາຊື່ຜູ້ໃຊ້/ຖານຂໍ້ມູນທົດສອບອອກ).

    # service mysql start
    # mysql_secure_installation

    15. ໃສ່ຖານຂໍ້ມູນ MySQL ໂດຍໃຊ້, ຄຳ ສັ່ງ ເພື່ອທົດສອບການເຮັດວຽກຂອງມັນແລະປ່ອຍມັນດ້ວຍ ຄຳ ສັ່ງ ອອກ .

    # mysql -u root -p
    
    MariaDB > show databases;
    MariaDB > exit;

    16. ຖ້າທ່ານບໍ່ດີກັບເສັ້ນ ຄຳ ສັ່ງ MySQL. ຕິດຕັ້ງ ໜ້າ ຕໍ່ PhpMyAdmin Web ໂດຍປະຕິບັດ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # emerge -pv dev-db/phpmyadmin
    # echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use
    # emerge  --ask dev-db/phpmyadmin

    17. ຫຼັງຈາກທີ່ PhpMyAdmin ສິ້ນສຸດການຕິດຕັ້ງ, ສ້າງເອກະສານການຕັ້ງຄ່າໂດຍອີງໃສ່ເອກະສານ config ຕົວຢ່າງ, ປ່ຽນ blowfish_secret passphrase ໂດຍໃຊ້ສາຍສຸ່ມ, ຫຼັງຈາກນັ້ນສ້າງ link ທີ່ເປັນສັນຍາລັກຈາກ /usr/share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ ໄປທີ່ Virtual root ຂອງເສັ້ນທາງເອກະສານທີ່ເຈົ້າຕ້ອງການເຂົ້າເຖິງການໂຕ້ຕອບເວັບໄຊຕ໌ PhpMyAdmin.

    # cd /usr/share/webapps/phpmyadmin/4.2.2/htdocs/
    # cp config.sample.inc.php  config.inc.php
    # nano config.inc.php
    # ln -s /usr/share/webapps/phpmyadmin/4.2.2/htdocs/  /var/www/localhost/htdocs/phpmyadmin

    18. ໃນການເຂົ້າເຖິງຖານຂໍ້ມູນ MySQL ຜ່ານອິນເຕີເຟດ PhpMyAdmin, ເປີດ browser ແລະໃຊ້ທີ່ຢູ່ URL ຕໍ່ໄປນີ້ https:/localhost/phpmyadmin .

    19. ຂັ້ນຕອນສຸດທ້າຍແມ່ນເຮັດໃຫ້ລະບົບບໍລິການທົ່ວເຖິງ, ສາມາດເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດຫຼັງຈາກເລີ່ມຕົ້ນ ໃໝ່.

    # rc-update add nginx default
    # rc-update add php-fpm default
    # rc-update add mysql default

    ຕອນນີ້ພວກເຮົາມີການຕັ້ງຄ່າສະພາບແວດລ້ອມ ໜ້ອຍ ທີ່ສຸດ ສຳ ລັບເວບໄຊທ໌, ແລະຖ້າທ່ານໃຊ້ພຽງແຕ່ ໜ້າ ທີ່ຜະລິດແບບເຄື່ອນໄຫວແບບ HTML, JavaScript ແລະ PHP ແລະທ່ານບໍ່ ຈຳ ເປັນຕ້ອງໃຊ້ເວບໄຊທ໌ SSL, ການຕັ້ງຄ່າດ້ານເທິງຄວນເປັນທີ່ພໍໃຈ ສຳ ລັບທ່ານ.