ວິທີການຕິດຕັ້ງ Apache, MariaDB ແລະ PHP (FAMP) Stack ໃນ FreeBSD


ຄູ່ມືນີ້ຈະອະທິບາຍວິທີການຕິດຕັ້ງແລະ ກຳ ຫນົດຄ່າ FBAMP ໃນລະບົບປະຕິບັດການ FreeBSD, ເຊິ່ງຄ້າຍກັບ LAMP stack ໃນ Linux. FBAMP ແມ່ນ ຄຳ ສັບທີ່ຫຍໍ້ມາຈາກການລວບລວມໂປແກຼມທີ່ອີງໃສ່ FreeBSD OS, server HTTP server, ເຄື່ອງແມ່ຂ່າຍເວັບທີ່ເປີດເຜີຍທີ່ນິຍົມທີ່ສຸດໃນອິນເຕີເນັດ, ລະບົບການຄຸ້ມຄອງຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບ MariaDB (RDBMS), ເປັນເຄື່ອງສ້ອມ ສຳ ລັບ MySQL, ແລະເຄື່ອງແມ່ຂ່າຍຂອງ PHP -side.

ຄວາມຕ້ອງການ

<

  • ການຕິດຕັ້ງ FreeBSD
  • ໃໝ່
  • ການຕັ້ງຄ່າເບື້ອງຕົ້ນຂອງ FreeBSD
  • ການເຂົ້າໃຊ້ຄອນໂຊນໂດຍກົງຫຼື SSH ໃນກໍລະນີທີ່ມີການເຊື່ອມຕໍ່ຫ່າງໄກສອກຫຼີກກັບ FreeBSD.
  • ທີ່ຢູ່ IP ຄົງທີ່ຕັ້ງຄ່າໃນເຄືອຂ່າຍອິນເຕີເຟດ.
  • ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງ Apache ໃນ FreeBSD

    1. ບໍລິການ ທຳ ອິດທີ່ພວກເຮົາຕິດຕັ້ງແມ່ນ server HTTP Apache. ໂດຍຄ່າເລີ່ມຕົ້ນ, FreeBSD ສະ ເໜີ ຫລາຍລຸ້ນພ້ອມດ້ວຍໂມດູນການເຮັດວຽກທີ່ແຕກຕ່າງກັນ ສຳ ລັບເຄື່ອງແມ່ຂ່າຍເວັບ Apache.

    ຮຸ່ນຕ່າງໆຖືກລວບລວມໄວ້ເປັນຊຸດຄູ່ແລະສະ ໜອງ ໂດຍຫໍສະ ໝຸດ FreeBSD PORTS. ເພື່ອສະແດງບັນດາຖານຂໍ້ມູນຫຸ້ມຫໍ່ Apache ທັງ ໝົດ ທີ່ສະ ໜອງ ໂດຍ PORTS, ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # ls /usr/ports/www/ | grep apache
    

    ທ່ານຍັງສາມາດຄົ້ນຫາຊຸດ Apache ທີ່ມີໄວ້ກ່ອນໃນ FreeBSD ໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.

    # pkg search apache2
    

    2. ຕໍ່ໄປ, ຕິດຕັ້ງ Apache server ລຸ້ນລ້າສຸດພ້ອມດ້ວຍໂມດູນທີ່ຕ້ອງການທັງ ໝົດ ໂດຍການອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # pkg install apache24
    

    3. ຫຼັງຈາກທີ່ server web Apache ໄດ້ຕິດຕັ້ງຢູ່ໃນລະບົບແລ້ວ, ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອໃຫ້ສາມາດໃຊ້ລະບົບ daemon ໄດ້ກວ້າງໃນ FreeBSD.

    # sysrc apache24_enable="yes"
    

    ວິທີການທາງເລືອກຂອງການເປີດໃຊ້ Daemon Apache ແມ່ນການດັດແກ້ແລະເພີ່ມເຕີມໃສ່ສາຍ apache24_enable = "ແມ່ນແລ້ວ" ໃນ /etc/rc.conf file ທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້.

    4. ສຸດທ້າຍ, ເພື່ອທົດສອບວ່າ server server ກຳ ລັງເຮັດວຽກຢ່າງຖືກຕ້ອງ, ເລີ່ມ Apache daemon ໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ແລະໄປຢ້ຽມຢາມ ໜ້າ ເວບໄຊທ໌ເລີ່ມຕົ້ນໂດຍການ ນຳ browser ໄປຫາທີ່ຢູ່ IP ຂອງ server ຂອງ FQDN ( http:// IP-orFQDN ) ດັ່ງທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້.

    # service apache24 start
    

    ໄດເລກະທໍລີ webroot ໃນຕອນຕົ້ນຂອງເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Apache ໃນ FreeBSD 11.x ແມ່ນຕັ້ງຢູ່ໃນ /usr/local/www/apache24/data/ ເສັ້ນທາງລະບົບ. ຢູ່ທີ່ນັ້ນທ່ານຈະເຫັນເອກະສານ index.html ຂະ ໜາດ ນ້ອຍທີ່ທ່ານສາມາດແກ້ໄຂໄດ້ຕາມໃຈມັກ.

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

    5. FreeBSD 11.x ສະ ເໜີ ຫຼາຍພາສາ PHP ທີ່ແປພາສາຂ້າງເຊີຟເວີທີ່ຖືກຫຸ້ມຫໍ່ໄວ້ໃນໄບນາລີທີ່ຖືກປະຕິບັດກ່ອນ. ເພື່ອໃຫ້ໄດ້ຮັບບັນຊີລາຍຊື່ຂອງໂປແກຼມ PHP ທີ່ມີຢູ່ທັງ ໝົດ ທີ່ສະ ໜອງ ໂດຍ FreeBSD Ports repositories ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # ls /usr/ports/lang/ | grep php
    

    ວິທີການທາງເລືອກອື່ນໃນການຄົ້ນຫາແບບ FreeBSD PHP ທີ່ມີຢູ່ທັງ ໝົດ ແມ່ນການເຮັດຕາມ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.

    # pkg search -o php
    

    6. ເພື່ອຄົ້ນຫາໄບນາລີທີ່ມີຢູ່ທັງ ໝົດ ທີ່ໃຫ້ໂດຍ FreeBSD ສຳ ລັບລຸ້ນ PHP ສະເພາະ (5 ຫລື 7 ຮຸ່ນໃນປະຈຸບັນ) ດຳ ເນີນການ ຄຳ ສັ່ງລຸ່ມນີ້. ໃຊ້ ຄຳ ສັ່ງ ໜ້ອຍ ລົງເພື່ອຄັບແຄບແລະ ນຳ ທາງຜ່ານຜົນຜະລິດ.

    # pkg search php5 |less
    # pkg search php7
    

    7. ເພື່ອໃຫ້ມີຄວາມລະອຽດເພີ່ມເຕີມກ່ຽວກັບໂມດູນທີ່ມີແບບ PHP ແບບໃດກໍ່ຕາມໃຫ້, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ຂ້າງລຸ່ມ, ເຊິ່ງສະແດງທຸກໂມດູນທີ່ມີໄວ້ ສຳ ລັບລຸ້ນ PHP 7.1.

    # pkg search php71
    

    8. ໃນຄູ່ມືນີ້ພວກເຮົາຈະຕິດຕັ້ງ PHP 7.1 ລຸ້ນ ສຳ ລັບ FBAMP stack ຂອງພວກເຮົາ. ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງ PHP ດ້ວຍບາງໂມດູນທີ່ ສຳ ຄັນທີ່ ຈຳ ເປັນ ສຳ ລັບການຕິດຕັ້ງ CMS ທຳ ມະດາ.

    # pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 
    

    9. ຕໍ່ໄປ, ພວກເຮົາຕ້ອງສ້າງເອກະສານການຕັ້ງຄ່າ php.conf ສຳ ລັບ server web Apache ໃນ/usr/local/etc/apache24/ລວມ/ເສັ້ນທາງລະບົບທີ່ມີເນື້ອຫາຕໍ່ໄປນີ້.

    # nano /usr/local/etc/apache24/Includes/php.conf
    

    ຕື່ມສາຍຕໍ່ໄປນີ້ໃສ່ແຟ້ມ php.conf.

    <IfModule dir_module>
        DirectoryIndex index.php index.html
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>
        <FilesMatch "\.phps$">
            SetHandler application/x-httpd-php-source
        </FilesMatch>
    </IfModule>
    

    10. ເພື່ອທົດສອບວ່າ PHP gateway ກຳ ລັງເຮັດວຽກຕາມທີ່ຄາດໄວ້ກັບ server server web, ສ້າງແຟ້ມຂໍ້ມູນ PHP info.php ໃນ/usr/local/www/apache24/data/system system, ເຊິ່ງແມ່ນເສັ້ນທາງຮາກຂອງເອກະສານເວັບໄຊຕ໌ຂອງຄ່າເລີ່ມຕົ້ນຂອງ Apache web server.

    # echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php
    

    ຕັ້ງຄ່າ daemon Apache ຄືນ ໃໝ່ ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ.

    # service apache24 restart
    

    ຕໍ່ໄປ, ໄປຢ້ຽມຢາມ URI ຕໍ່ໄປນີ້ໃນເບົາເຊີເພື່ອເບິ່ງບົດສະຫຼຸບຂອງ PHP.

    http://IP-or-FQDN/info.php 
    

    11. ເພື່ອເປີດໃຊ້ເອກະສານການຕັ້ງຄ່າ PHP ini ສຳ ລັບບັນຫາການຜະລິດ ຄຳ ສັ່ງຕໍ່ໄປນີ້. ທ່ານສາມາດດັດແປງເອກະສານຜົນຜະລິດ php.ini ເພື່ອປ່ຽນການຕັ້ງຄ່າ PHP ທີ່ຫຼາກຫຼາຍໃນ stack FBAMP ຂອງທ່ານ.

    # cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
    # ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini
    

    ຂັ້ນຕອນທີ 3: ຕິດຕັ້ງ MariaDB ໃນ FreeBSD

    12. ສ່ວນປະກອບທີ່ຂາດຫາຍໄປສຸດທ້າຍ ສຳ ລັບ FBAMP stack ຂອງພວກເຮົາແມ່ນ server server ຖານຂໍ້ມູນ MySQL. FreeBSD 11.x ສະ ເໜີ ຫຼາຍກ່ວາ 1000 ແພັກເກດ ສຳ ລັບຖານຂໍ້ມູນທີ່ຫຼາກຫຼາຍ.

    ເພື່ອສະແດງສິ່ງທີ່ມີສ່ວນປະກອບ ສຳ ລັບຖານຂໍ້ມູນ MariaDB ຫຼື MySQL, ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້. ໃນຄູ່ມືນີ້ພວກເຮົາຈະຕິດຕັ້ງຖານຂໍ້ມູນ MariaDB ຜ່ານ MySQL (ເຊິ່ງປະຈຸບັນເປັນເຈົ້າຂອງແລະພັດທະນາຢ່າງຈິງຈັງໂດຍ Oracle).

    # ls -al /usr/ports/databases/ | grep mariadb
    # pkg search -o mariadb
    # ls -al /usr/ports/databases/ | grep mysql
    # pkg search -o mysql5
    

    13. ໃນຄູ່ມືນີ້ພວກເຮົາຈະຕິດຕັ້ງ server server ຖານຂໍ້ມູນລຸ້ນຫຼ້າສຸດຂອງ MariaDB ໃນ FreeBSD, ເຊິ່ງປະຈຸບັນສະແດງໂດຍ mariadb102 ປ່ອຍຊຸດສອງ.

    ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງເຄື່ອງແມ່ຂ່າຍແລະລູກຄ້າຂອງ MariaDB ແລະໂມດູນ PHP 7.1 ທີ່ຈໍາເປັນເພື່ອເຂົ້າເຖິງຖານຂໍ້ມູນຜ່ານທາງຜ່ານ Apache server gateway.

    # pkg install mariadb102-server mariadb102-client php71-mysqli
    

    14. ຕໍ່ໄປ, ເປີດໃຊ້ລະບົບ serverDD ໃຫ້ກວ້າງແລະເລີ່ມຖານຂໍ້ມູນ daemon ໂດຍການ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # sysrc mysql_enable="yes" 
    # service mysql-server start
    

    15. ເພື່ອຮັບປະກັນຖານຂໍ້ມູນໃຫ້ໃຊ້ mysql_secure_installation scrip. ໃຊ້ຕົວອັກສອນດ້ານລຸ່ມຂອງບົດຄັດຫຍໍ້ເພື່ອເຮັດໃຫ້ MariaDB ແຂງ.

    # /usr/local/bin/mysql_secure_installation
    
    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
          SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
     
    In order to log into MariaDB to secure it, we'll need the current
    password for the root user.  If you've just installed MariaDB, and
    you haven't set the root password yet, the password will be blank,
    so you should just press enter here.
     
    Enter current password for root (enter for none):
    OK, successfully used password, moving on...
     
    Setting the root password ensures that nobody can log into the MariaDB
    root user without the proper authorisation.
    Set root password? [Y/n] y
    New password:
    Re-enter new password:
    Password updated successfully!
    Reloading privilege tables..
     ... Success!
    By default, a MariaDB installation has an anonymous user, allowing anyone
    to log into MariaDB without having to have a user account created for
    them.  This is intended only for testing, and to make the installation
    go a bit smoother.  You should remove them before moving into a
    production environment.
    Remove anonymous users? [Y/n] y
     ... Success!
    Normally, root should only be allowed to connect from 'localhost'.  This
    ensures that someone cannot guess at the root password from the network.
    Disallow root login remotely? [Y/n] y
     ... Success!
    By default, MariaDB comes with a database named 'test' that anyone can
    access.  This is also intended only for testing, and should be removed
    before moving into a production environment.
    Remove test database and access to it? [Y/n] y
     - Dropping test database...
     ... Success!
     - Removing privileges on test database...
     ... Success!
    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.
    Reload privilege tables now? [Y/n] y
     ... Success!
    Cleaning up...
    All done!  If you've completed all of the above steps, your MariaDB
    installation should now be secure.
    Thanks for using MariaDB!
    

    16. ໂດຍຄ່າເລີ່ມຕົ້ນ, daDad MariaDB ຟັງ ສຳ ລັບການເຊື່ອມຕໍ່ເຄືອຂ່າຍທີ່ຢູ່ນອກ localhost ຢູ່ port 3306/TCP. ດໍາເນີນການຄໍາສັ່ງ lsof ຫຼື sockstat ເພື່ອໃຫ້ລັດເຕົ້າຮັບ MariaDB. ການຕັ້ງຄ່ານີ້ແມ່ນອັນຕະລາຍແລະເຮັດໃຫ້ການບໍລິການໂຈມຕີເຄືອຂ່າຍພາຍນອກ.

    # lsof -i4 -i6
    # sockstat -4 -6
    

    17. ຖ້າທ່ານບໍ່ຕ້ອງການເຂົ້າເຖິງ MariaDB ຫ່າງໄກສອກຫຼີກ, ໃຫ້ແນ່ໃຈວ່າ daemon MariaDB ຮັບຟັງ localhost ເທົ່ານັ້ນ, ໂດຍອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້. ຕໍ່ມາ, ໃຫ້ບໍລິການ MariaDB ຄືນ ໃໝ່ ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ.

    # sysrc mysql_args="--bind-address=127.0.0.1"
    # service mysql-server restart
    or
    # /usr/local/etc/rc.d/mysql-server restart
    

    18. ອີກເທື່ອ ໜຶ່ງ, ໃຊ້ ຄຳ ສັ່ງ lsof ຫຼື sockstat ເພື່ອລົງບັນຊີເຕົ້າຮັບເຄືອຂ່າຍ MariaDB. ເຕົ້າຮັບຄວນເຊື່ອມໂຍງແລະຟັງໃນ localhost ດຽວນີ້, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບຂ້າງລຸ່ມ.

    # lsof -i4 | grep mysql
    # netstat -an | grep 3306
    # sockstat -4 | grep 3306
    

    19. ເພື່ອທົດສອບການເຊື່ອມຕໍ່ຖານຂໍ້ມູນຂອງ MariaDB ຈາກ console ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້. ກະລຸນາໃສ່ລະຫັດລັບຂອງ MySQL ໃນເວລາທີ່ວ່ອງໄວແລະລາຍຊື່ຖານຂໍ້ມູນເລີ່ມຕົ້ນຄວນຈະສະແດງຢູ່ໃນ ໜ້າ ຈໍຄອນເທນຂອງທ່ານດັ່ງທີ່ສະແດງຢູ່ໃນຮູບຂ້າງລຸ່ມນີ້.

    # mysql -u root -p -e "show databases"
    

    ຫມົດເທົ່ານີ້! ທ່ານໄດ້ຕິດຕັ້ງເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Apache ສຳ ເລັດແລ້ວກັບຖານຂໍ້ມູນ MariaDB ແລະນາຍແປພາສາ PHP ໃນ FreeBSD. ດຽວນີ້ທ່ານສາມາດເລີ່ມຕົ້ນ ນຳ ໃຊ້ເວບໄຊທ໌ WordPress ໃນເວລາບໍ່ໄດ້.

    ໃນບົດແນະ ນຳ ຕໍ່ໄປພວກເຮົາຈະປຶກສາຫາລືບາງຫົວຂໍ້ FPBAMP ທີ່ກ້າວ ໜ້າ, ເຊັ່ນ: ວິທີການແລະການສ້າງ Apache virtual hosts, ເປີດໃຊ້ໂມດູນຂຽນຄືນ ໃໝ່ ທີ່ຕ້ອງການໂດຍເອກະສານ .htaccess ເຮັດວຽກຢ່າງຖືກຕ້ອງແລະວິທີການຮັບປະກັນການເຊື່ອມຕໍ່ Apache ໂດຍໃຊ້ໃບຢັ້ງຢືນຕົນເອງເຊັນຫຼືແບບບໍ່ເສຍຄ່າ ໃບຢັ້ງຢືນທີ່ສະ ເໜີ ໂດຍຫົວ ໜ່ວຍ Let's Encrypt.