ข้ามไปที่เนื้อหา
  • WEBTH
    WEBTH

    การติดตั้ง Nexcloud 23 ผ่านระบบ Linux(WSL) บน Windows 10

       (0 รีวิว)

    บทความนี้จะมาแนะนำการติดตั้ง Nextcloud 23 ซึ่งเป็นเวอร์ชั่นล่าชุดผ่านระบบ Linux บน Windows 10 หรือชื่ออย่างเป็นทางการคือ Windows Subsystem Linux(WSL) ซึ่งทางไมโครซอฟท์ได้เพิ่มคุณสมบัติเพื่อให้นักพัฒนาใช้งาน Linux บนวินโดว์ได้ ซึ่งเราก็สามารถที่จะทำเป็นเว็บเซิร์ฟเวอร์เพื่อโฮสเว็บไซต์ได้เช่นกันเช่นเดียวกับทางเราติดตั้งและใช้งาน ณ ปัจจุบัน เพื่อเอาไว้เก็บข้อมูลและทำงานระยะใกล้สะดวกและปลอดภัยทั้งนี้ท่านสามารถจัดการการทำงานร่วมกับทีมของท่านได้ แต่ต้องมีการตั้งค่าเพิ่มเติมเพื่อให้ระบบทำงานอย่างอัตโนมัติเมื่อมีการรีสตาร์ทเครื่องซึ่งเราจะอธิบายในรายละเอียดต่อไป

    เราสามารถเปิดใช้งาน WSL และติดตั้ง Nextcloud ได้ตามขั้นตอนดังต่อไปนี้

    1. ก่อนอื่นเราต้องเปิดการใช้งาน WSL เสียก่อน โดยให้ไปที่ Windows feature on/off ตามภาพเลื่อนหา Windows Subsystem for Linux แล้วกดปุ่ม OK รอสักครู่เพื่อให้ระบบทำการติดตั้ง

    wsl1.png

          

    wsl2.png

     

    2. หลักจากติดตั้งเสร็จแล้วให้เข้าไปไป Microsoft Store ค้นหาคำว่า Ubuntu หลังจากนั้นให้เลือก Ubuntu 20.04 หรือใครถนัด เวอร์ชัน 18.04 ก็ให้เลือกเวอร์ชันที่เราถนัดหลังจากนั้นก็ให้กดติดตั้ง

     

    ms-store.png

     

    ms-store2.png

    3. เมื่อทำการติดตั้งเสร็จแล้วให้เปิดตัวโปรแกรมแล้วทำการอัปเดตให้ source code ต่างปรับปรุงและเป็นเวอร์ชันล่าสุด หลังจากอัปเดตแล้วให้เริ่มทำการติดตั้ง source code ต่าง ๆ ที่จำเป็นต่อการติดตั้ง Nextcloud ซึ่งจะประกอบไปด้วย

    • Apache2 ใช้เป็น webserver
    • Percona Mysql ตัวจัดการฐานข้อมูลซึ่งท่านสามารถเลือกติดตั้งได้หลายตัวอย่างเช่น Mysql, Mariadb แต่ทางเราถนัดใช้ Percona มากกว่าเพราะตั้งแต่ใช้งานมาใช้งานได้อย่างมีประสิทธิภาพไม่มีการ cache หรือหยุดทำงาน แถมยังมีตัวปลั๊กอินและ Engine เพื่อเพิ่มประสิทธิภาพของการทำงาน
    • PHP7.4-fpm โค้ดควบคุมการประมวณผลของเว็บไซต์
    • phpMyadmin เป็น GUI สำหรับจัดการฐานข้อมูล
    • ssh สำหรับทำงานรีโมท
    • redis-server สำหรับ memory cache
    • cron สำหรับกำหนดตารางการทำงานของโปรแกรม
    • Let's Encrypt สำหรับ SSL
    • Rclone สำหรับ mount external drive (จะอธิบายในบทความแยกต่อไปเนื่องจากต้องมีการตั้งค่าและรายละเอียดเพิ่มเติมในการติดตั้ง)

    4. เริ่มต้นติดตั้งโปรแกรม

    4.1 ติดตั้ง Apache2 และ PHP7.4-fpm

    apt install apache2 apache2-doc apache2-utils libapache2-mod-php7.4 php7.4 php7.4-ldap php7.4-fpm php7.4-bcmath php7.4-gmp php7.4-common /
    php7.4-gd php7.4-mysql php7.4-imap php7.4-cli php7.4-cgi apache2-suexec-pristine apache2-suexec-custom mcrypt php-imagick imagemagick /
    libruby libapache2-mod-python libapache2-mod-fcgid php7.4 php7.4-curl php7.4-intl php-memcache php-memcached php-psr php7.4-pspell /
    php7.4-snmp php7.4-tidy php7.4-xmlrpc php7.4-xml memcached snmp php7.4-mbstring

    4.2 ติดตั้ง Percona Mysql

    sudo apt install gnupg2
    wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
    sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
    sudo percona-release setup ps80
    sudo apt install percona-server-server

    สามารถดูรายละเอียดการติดตั้งเพิ่มเติมได้ที่   การติดตั้ง Percona Mysql Server

    4.3 ติดตั้ง Let's Encrypt, Redis-server, ssh, cron

    sudo apt install certbot python3-certbot-apache
    sudo apt install redis-server
    sudo apt install php7.4-redis
    sudo apt install openssh-server
    sudo apt install cron

    5. เริ่มต้นติดตั้ง Nextcloud

    5.1 ก่อนอื่นให้เริ่มต้นเปิดโหมดการใช้งาน PHP ที่จำเป็นรวมถึง apache mod ที่จำเป็นสำหรับการติดตั้ง

    sudo a2enmod actions fcgid alias proxy_fcgi
    sudo a2enmod rewrite ssl headers
    
    sudo phpenmod pdo_mysql
    sudo apt install php7.4-ldap
    
    sudo apt -y install smbclient cifs-utils libsmbclient-dev php-dev make 
    pecl install smbclient
    echo 'extension=smbclient.so' >> /etc/php/7.4/fpm/php.ini 
    
    pecl install psr
    echo 'extension=psr.so' >> /etc/php/7.4/fpm/php.ini 
    
    systemctl restart php7.4-fpm

    5.2 ทำการดาวน์โหลดไฟล์ nextcloud แล้วแตกไฟล์พร้อมกับกำหนดสิทธิการเข้าถึงโฟล์เดอร์

    cd /var/www/
    wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.zip
    unzip nextcloud-23.0.0.zip
    sudo chown -R www-data:www-data /var/www/nextcloud
    sudo chmod -R 755 /var/www/nextcloud

    5.3 สร้าง config file สำหรับเว็บไซต์ ตามตัวอย่างหลังจากนั้นให้ทำการเปิดใช้งาน ณ ที่นี้จะตั้งชื่อไฟล์เป็น nexcloud.conf

    sudo nano /etc/apache2/sites-available/nextcloud.conf
    <VirtualHost *:80>
        DocumentRoot "/var/www/nextcloud"
        ServerName webthcloud.com
    	ServerAlias www.webthcloud.com
    
            ErrorLog ${APACHE_LOG_DIR}/nextcloud.error
            CustomLog ${APACHE_LOG_DIR}/nextcloud.access combined
    	
            <Directory /var/www/nextcloud/>
                Require all granted
                Options FollowSymlinks MultiViews
                AllowOverride All
    
               <IfModule mod_dav.c>
                   Dav off
               </IfModule>
    
            SetEnv HOME /var/www/nextcloud
            SetEnv HTTP_HOME /var/www/nextcloud
            Satisfy Any
    
           </Directory>
           <FilesMatch \.php$>
            # 2.4.10+ can proxy to unix socket
            SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
        	</FilesMatch>
    </VirtualHost>

    หลังจากนั้นให้ทำการเปิดใช้งาน

    sudo a2ensite nextcloud.conf
    sudo service apache2 restart

    หมายเหตุ: ใน WSL เราไม่สามารถใช้ systemctl ได้ดังนั้นรันคำสั่งต้องใช้ service แทน

    5.4 ทำการติดตั้ง SSL

    sudo certbot --apache

    ให้เลือกชื่อเว็บไซต์ของเรา ณ ที่นี้เราจะเลือก webthcloud, www.webthcloud.com พร้อมทั้งให้เลือก Redirect to Https หลังจากนัันโปรแกรมจะทำการปรับแต่งไฟล์ conf ของเรา และจะเพิ่มในส่วนของไฟล์ที่เป็น Https โดยเราจะมีไฟล์ 2 ไฟล์คือ

    • nextcloud.conf
    • nextcloud-le-ssl.conf

     ให้เปิดไฟล์ nextcloud-le-ssl.conf เพื่อเพิ่ม Strict-Transport-Security

    sudo nano /etc/apache2/sites-available/nextcloud-le-ssl.conf

    ไฟล์ nextcloud-le-ssl.conf

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
        DocumentRoot "/var/www/nextcloud"
        ServerName webthcloud.com
    	ServerAlias www.webthcloud.com
    
            ErrorLog ${APACHE_LOG_DIR}/nextcloud.error
            CustomLog ${APACHE_LOG_DIR}/nextcloud.access combined
    	
            <Directory /var/www/nextcloud/>
                Require all granted
                Options FollowSymlinks MultiViews
                AllowOverride All
    
               <IfModule mod_dav.c>
                   Dav off
               </IfModule>
    
            SetEnv HOME /var/www/nextcloud
            SetEnv HTTP_HOME /var/www/nextcloud
            Satisfy Any
    
           </Directory>
           <FilesMatch \.php$>
            # 2.4.10+ can proxy to unix socket
            SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
        	</FilesMatch>
    
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/webthcloud.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/webthcloud.com/privkey.pem
    Header always set Strict-Transport-Security "max-age=31536000"
    </VirtualHost>
    </IfModule>

    เสร็จเรียบร้อยแล้วให้ทำการรีสตาร์ท apche2 และ php7.4-fpm

    sudo service apache2 restart
    sudo service php7.4-fpm restart

    6. เมื่อทุกอย่างเตรียมเรียบร้อยเราสามารถ เข้าหน้าเว็ปไซต์เพื่อติดตั้ง Nextcloud ให้เสร็จสมบูรณ์ ในส่วนนี้ก็จะเหมือนกับการติดตั้งโปรแกรมทั่ว ๆ ไป


    การตอบกลับของสมาชิก

    เข้าร่วมการสนทนา

    คุณสามารถโพสต์ตอนนี้และลงทะเบียนในภายหลัง หากคุณมีบัญชี ลงชื่อเข้าใช้ทันที เพื่อโพสต์ด้วยบัญชีของคุณ

    ผู้เยี่ยมชม

×
×
  • สร้างใหม่...

ข้อมูลสำคัญ

เราได้วาง คุกกี้ ไว้ในอุปกรณ์ของคุณเพื่อช่วยให้การใช้งานเว็บแห่งนี้มีประสิทธิภาพยิ่งขึ้น คุณสามารถ ปรับการตั้งค่าคุกกี้ของคุณ มิฉะนั้นเราจะถือว่าคุณโอเคที่จะดำเนินการต่อ