Mr.Green

สร้าง บันทึกและแบ่งปัน

พิมพ์ค้นหาบทความได้ในช่องค้นหา

สรุปขั้นตอนในการติดตั้ง Nextcloud

สรุปขั้นตอนในการติดตั้ง Nextcloud ในบทความนี้ เป็นแค่การแนะนำในภาพกว้างๆๆ ว่า หากเราต้องการติดตั้ง Nextcloud เพื่อใช้เป็น cloud ส่วนตัวเราต้องดำเนินการอย่างไรบ้าง

รูปแบบในการติดตั้ง ที่แนะนำในบทความนี้ เป็นการติดตั้งในกรณีที่เราได้สร้างเว็บไซต์ของเราแล้ว และเราแค่ต้องการเพิ่มการใช้งาน Nextcloud เพิ่มเติม โดยการกำหนดค่าเพิ่มเติมเล็กๆๆ น้อยๆๆ แล้วเอา nextcloud ไปติดตั้งไว้ในที่เก็บข้อมูลของเว็บไซต์ของเรา โดยทำเป็น ไดเร็กเตอรีย่อยขึ้นมา

สิ่งที่เราต้องดำเนินการ

ในกรณีที่เรายังไม่ดำเนินการจัดสร้างเพื่อทำ Webserver เราต้องสร้างก่อน ขั้นตอนในการสร้างมีภาพรวมดังนี้

เริ่มจากเราต้องติดตั้ง ระบบปฎิบัติการ Linux ตัวไหนก็ได้ (operating system) แล้วแต่เราชอบ ในกรณีที่เราสร้าง Server ขึ้นมาที่บ้านเอง แต่ หากเราใช้ Droplet ของ Digital ocean เราแค่เลือกตัว Image ที่เขาบริการให้ว่าจะใช้ตัวไหน เราสามารถเลือก หรือเอาตามที่ nextcloud แนะนำ

  • Ubuntu 22.04 LTS (recommended)
  • Ubuntu 20.04 LTS
  • Red Hat Enterprise Linux 8 (recommended)
  • Debian 12 (Bookworm)
  • SUSE Linux Enterprise Server 15
  • openSUSE Leap 15.4
  • CentOS Stream

ติดตั้ง Lamp ซึ่งประกอบไปด้วย

  • Apache (web server) สำหรับเป็นเว็บเซิร์ฟเวอร์ หรือใครถนัด nginx ก็สามารถใช้ได้เช่นกัน แล้วแต่ชอบ
    • Apache 2.4 with mod_php or php-fpm (recommended)
    • nginx with php-fpm
  • MySQL (database server) เป็นตัวเก็บฐานข้อมูลฐานข้อมูล ในกรณีที่เราใช้ Debian อาจจะใช้ MariaDB ก็ได้ แล้วแต่ตามชอบเช่นกัน
    • MySQL 8.0+ or MariaDB 10.3/10.4/10.5/10.6 (recommended)
    • Oracle Database 11g (only as part of an enterprise subscription)
    • PostgreSQL 10/11/12/13/14/15
    • SQLite (only recommended for testing and minimal-instances)
  • PHP (to process dynamic PHP content)  ในส่วน php อาจจะต้องติดตั้ง module เพิ่มเติมตามคำแนะนำของ nextcloud
    • 8.0 (deprecated)
    • 8.1
    • 8.2 (recommended)

แต่หากเราได้สร้าง Server เพื่อบริการด้านเว็บไซต์ของเราเสร็จแล้ว ก็สามารถข้ามขั้นตอนดังกล่าวได้เลย และมาติดตั้ง Nextcloud โดยปรับแต่งค่าเพิ่มเติมเล็กน้อย

        ขั้นตอนการปรับแต่ง Apache แยกออกเป็น 2 กรณี

        คำแนะนำในการติดตั้งและปรับแต่ง ซึ่งทางผู้จัดสร้างได้ให้คำแนะนำไว้ สามารถเข้าไปอ่านได้จากหน้า https://docs.nextcloud.com/server/latest/admin_manual/

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

        /etc/apache2/sites-available/nextcloud.conf

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

        ยกตัวอย่างเช่น เว็บไซต์ของเราชื่อ nst-green.name เมื่อเรามาเพิ่มเพื่อใช้งาน Nextcloud เราแค่เอา Nextcloud ไปเก็บไว้ในที่เก็บข้อมูลเว็บไซต์ของเรา โดยอาจจะตั้ง folder แล้วตั้งชื่อว่า Nextcloud เมื่อต้องการใช้งาน แค่เรียก nst-green.name/nextcloud แค่นี้ก็สามารถทำงานได้แล้ว

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

        a2enmod rewrite
        a2enmod headers
        a2enmod env
        a2enmod dir
        a2enmod mime
        

        คำแนะนำในส่วน PHP modules.

        เช่นกัน เป็นการติดตั้ง modules ของ php เพิ่มเติมเพื่อให้เหมาะสมกับการใช้งาน Nextcloud ประกอบด้วย Modules

        • PHP (see System requirements for a list of supported versions)
        • PHP module ctype
        • PHP module curl
        • PHP module dom
        • PHP module fileinfo (included with PHP)
        • PHP module filter (only on Mageia and FreeBSD)
        • PHP module GD
        • PHP module hash (only on FreeBSD)
        • PHP module JSON (included with PHP >= 8.0)
        • PHP module libxml (Linux package libxml2 must be >=2.7.0)
        • PHP module mbstring
        • PHP module openssl (included with PHP >= 8.0)
        • PHP module posix
        • PHP module session
        • PHP module SimpleXML
        • PHP module XMLReader
        • PHP module XMLWriter
        • PHP module zip
        • PHP module zlib

          ก่อนจะติดตั้ง เราอาจจะใช้คำสั่งเพื่อตรวจสอบว่า  PHP Modules  ติดตั้งแล้วหรือยัง โดยใช้คำสั่งนี้

          php -m | grep -i <module_name>.
          

          อ่านรายละเอียดทั้งหมดได้จากคำแนะนำหน้านี้

          คำแนะนำเบื้องต้นในการติดตั้ง module เพิ่มเติม

          คำสั่งในการติดตั้ง กรณ๊ เป็น PHP80 หากเป็น เวอร์ชั่นอื่นอาจจะใช้คำสั่งแตกต่างกัน ก็ได้ เช่น  apt install -y php php-curl

          sudo apt install -y  php8.0  php8.0-ctype php8.0-dom php8.0-filter php8.0-GD php8.0-JSON php8.0-libxml  php8.0-mbstring php8.0-openssl  php8.0-posix php8.0-session php8.0-SimpleXML php8.0-XMLWriter php8.0-zip php8.0-zlib
          

          ในส่วนเชื่อมต่อกับฐานข้อมูล กรณีที่ใช้ MySQL Or ,MariaDB ให้ใช้คำสั่งดังนี้ แต่หากเราสร้างเว็บไซต์แล้ว ก็ไม่ต้องใช้คำสั่งนี้ เพราะในการสร้างเว็บไซต์ เราต้องสร้างฐานข้อมูลอยู่แล้ว เราแค่มาเพิ่มฐานข้อมูลลงไปแทน เท่านั้นเองก

          sudo apt install -y php8.0-pdo_mysql php8.0-mysql
          

          หรือใช้คำสั่งรวมแบบนี้ ก็ได้

          sudo apt install php8.0-{mysql,cli,c,imap,ldap,xml,fpm,curl,mbstring,zip}
          

          ตัว ออฟชั่น จะติดตั้งหรือไม่ก็ได้  แต่แนะนำให้ติดตั้ง

          sudo apt install -y php8.0-intl php8.0-bcmath php8.0-gmp  php8.0-imagick  php8.0-memcached php8.0-bz2 php8.0-fileinfo
          

          ในส่วนของบทความ สรุปขั้นตอนในการติดตั้ง Nextcloud ได้แนะนำ php8 แต่ล่าสุด มี php8.1  การติดตั้ง php แค่ แก้ไขหมายเลขจาก 8.0  เป็น 8.1

          การติดติดตั้ง Nextcloud

          การติดตั้ง Nextcloud สิ่งแรกที่เราต้องดำเนินการคือการไปดาวโหลดน์ไฟล์ หรืออาจจะใช้คำสั่งใน command line ก็ได้ ซึ่งรูปแบบในการติดตั้งมีหลายรูปแบบแล้วแต่ว่าเราต้องการติดตั้งแบบไหน แต่สำหรับบทความนี้ จะแนะนำวิธีการติดตั้งโดยการดาวโหลดน์ไฟล์สำหรับติดตั้งของ nextcloud ผ่านทาง command line เพราะไม่ต้องยุ่งยากกับการอัพโหลดผ่าน Ftp

          สร้างฐานข้อมูลสำหรับ Nextcloud

          แต่ก่อนจะเริ่มดำเนินการติดตั้ง เราต้องสร้างฐานข้อมูลก่อน พร้อมกับสร้างชื่อผู้ใช้ฐานข้อมูลและรหัสก่อน ตัวอย่างที่ Nextcloud แนะนำ ซึ่งหากเราถนัดอย่างอื่นก็สร้างแบบที่เราถนัดก็ได้ แต่หลักการคล้ายๆๆ กัน

          CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
          CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
          GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost';
          FLUSH PRIVILEGES;
          

          ดาวโหลดน์ไฟล์ติดตั้งของ Nextcloud ตัวล่าสุด

          wget https://download.nextcloud.com/server/releases/latest.zip
          

          แตกไฟล์แล้วนำไปเก็บไว้ในที่เราต้องการ

           unzip latest.zip && mv nextcloud/ /var/www/example.com/nextcloud
          
          chown -R www-data:www-data /var/www/example.com/nextcloud
          

          เรียกผ่าน บราวเซอร์เพื่อติดตั้ง Nextcloud

          https://www.example.com/Nextcloud
          

          สิ่งที่เราต้องเตรียมในขั้นตอนนี้คือ

          • ชื่อ ฐานข้อมูล พร้อมผู้ใช้และรหัสผ่าน
          • การกำหนดชื่อ และรหัสผ่าน สำหรับการเข้าใช้งาน
          • ส่วนที่เก็บข้อมูล หากเรากำหนดแยกนอก แต่หากไม่กำหนด ก็ให้โปรแกรมจัดการให้เอง

          รุ่นใหม่ อาจจะแตกต่างจากภาพ แต่การติดตั้งคล้ายกันไม่แตกต่างกันมากแค่กำหนดค่าตามที่บอกมาให้ถูกต้องก็ใช้ได้แล้ว

          เป็นอ้นว่าเสร็จในการติดตั้งเพื่อใช้งาน จะเห็นว่าสะดวกดี หากเราติดตั้งเสริมเข้าไปในเว็บไซต์ของเรา แต่ หากเราติดตั้งเพื่อใช้งานด้านบริการ เฉพาะ Nextcloud อย่างเดียว ต้องมีการปรับแต่งค่าต่างๆๆ เพิ่มเติมอีกหลายอย่าง

          ยกตัวอย่าง คำสั่งในการติดตั้งในกรณีที่เราสร้างเพื่อใช้งาน Nextcloud

          init 0
            3  apt update
            4  sudo apt update && sudo apt upgrade -y
            5  apt update && sudo apt upgrade -y
            6  apt update && apt upgrade -y
            7  apt-get install ca-certificates apt-transport-https software-properties-common wget curl lsb-release -y
            8  apt update
            9  apt upgrade
           10  apt install php8.1 libapache2-mod-php8.1
           11  apt install php8.1-{bcmath,fpm,xml,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi}
           12  php --modules
           17  php --version
           18  apt upgrade
           19  apt install php8.1 libapache2-mod-php8.1
           20  apt install apt-transport-https lsb-release ca-certificates wget -y
           21  wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
           22  sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
           23  apt update
           24  apt upgrade -y
           26  apt install php8.1 libapache2-mod-php8.1
           27  php --version
           28  apt install php8.1-{bcmath,fpm,xml,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi}
           29  apt install php8.1-{dom,gmagick,SimpleXML,ssh2,xml,xmlreader,curl,date,exif,filter,ftp,gd,hash,iconv,imagick,json,libxml,openssl,pcre,posix,sockets,SPL,tokenizerz,lib,mbstring,mysqli}
           30  apt install php8.1-{dom,gmagick,SimpleXML,ssh2,xml,xmlreader,curl,date,exif,filter,ftp,gd,hash,iconv,imagick,json,libxml,openssl,pcre,posix,sockets,SPL,tokenizerz,lib,mbstring,mysqli}
           31  sudo apt update
           32  apt update
           33  apt upgrade
           34  apt install php8.1-{dom,gmagick,SimpleXML,ssh2,xml,xmlreader,curl,date,exif,filter,ftp,gd,hash,iconv,imagick,json,libxml,openssl,pcre,posix,sockets,SPL,tokenizerz,lib,mbstring,mysqli}
           35  apt-cache search php8.1-curl
           36  apt-cache search php8.1-hash
           37  apt update && apt install -y software-properties-common
           38   add-apt-repository ppa:ondrej/php
           39  apt install php8.1-{dom,gmagick,SimpleXML,ssh2,xml,xmlreader,curl,date,exif,filter,ftp,gd,hash,iconv,imagick,json,libxml,openssl,pcre,posix,sockets,SPL,tokenizerz,lib,mbstring,mysqli}
           40  apt update
           41  cd /etc/apt
           42  ls
           43  vi sources.list
           44  ls
           45  cd sources.list.d/
           46  ls
           47  vi php.list
           48   add-apt-repository --remove ppa:ondrej/php
           49  apt update
           50  apt install php8.1-bcmath -y
           51  apt install php8.1-zip -y
           52  apt install php8.1-gmagick -y
           53  apt install php8.1-dom
           54  apt install php8.1-SimpleXML
           55  apt install php8.1-ssh2
           56  apt install php8.1-xmlreader
           57  apt install php8.1-curl
           58  apt install php8.1-date
           59  apt install php8.1-exif
           60  apt install php8.1-filter
           61  apt install php8.1-ftp
           62  apt install php8.1-gd
           63  apt install php8.1-hash
           64  apt install php8.1-iconv
           65  apt install php8.1-imgick
           66  apt install php8.1-json
           67  apt install php8.1-libxml
           68  apt install php8.1-openssl
           69  apt install php8.1-pcre
           70  apt install php8.1-posix
           71  apt install php8.1-spl
           72  apt install php8.1-tokenizerz
           73  apt install php8.1-lib
           74  apt install php8.1-mbstring
           75  apt install php8.1-mysqli
           76  a2enmod ssl rewrite headers
           77  systemctl restart apache2
           78  apt install -y libmagickcore-dev
           79  cd /etc/php/8.0/apache2/
           80  cd /etc/php/8.1/apache2/
           81  vi php.ini
           82  systemctl restart apache2
           83  apt install mariadb-server mariadb-client
           84  systemctl is-enabled mariadb
           85  systemctl status mariadb
           86  mysql_secure_installation
           87  mysql -u root -p
           88  apt install certbot
           89  mkdir -p /var/lib/letsencrypt/.well-known
           90  chgrp www-data /var/lib/letsencrypt
           91  chmod g+s /var/lib/letsencrypt
           92  cd /etc/apache2/conf-available/
           93  vi well-known.conf
           94  ln -s /etc/apache2/conf-available/well-known.conf /etc/apache2/conf-enabled/
           95  apachectl configtest
           96  systemctl restart apache2
           97  sudo certbot certonly --agree-tos --email user@email.com --webroot -w /var/lib/letsencrypt/ -d www.green-nst.com
           98   certbot certonly --agree-tos --email user@email.com --webroot -w /var/lib/letsencrypt/ -d www.green-nst.com
           99  cd /etc/apache2/sites-available/
          100  vi nextcloud.conf
          101  a2ensite nextcloud.conf
          102  systemctl reload apache2
          103  apachectl configtest
          104  systemctl restart apache2
          105  cd /var/www
          106  ls
          107  curl -o nextcloud.zip    https://download.nextcloud.com/server/releases/latest.zip
          108  cd /tmp/
          109  fetch http://wordpress.org/latest.tar.gz
          110   apt install php8.1 libapache2-mod-php8.1 php8.1-cli php8.1-common php8.1-mbstring php8.1-xmlrpc php8.1-soap php8.1-gd php8.1-xml php8.1-intl php8.1-mysql php8.1-cli php8.1-ldap php8.1-zip php8.1-mcrypt php8.1-curl php8.1-opcache php8.1-readline php8.1-xml php8.1-gd
          111  a2enmod php8.1
          112  systemctl restart apache2
          113  wget https://wordpress.org/latest.zip
          114  unzip latest.zip
          115  unzip latest.zip
          116  apt install unzip
          117  unzip latest.zip
          118  ls
          119  cp -pr wordpress/* /var/www/
          120  find /var/www/wordpress -type d -exec chmod 755 {} \;
          121  find /var/www -type d -exec chmod 755 {} \;
          122  find /var/www -type f -exec chmod 644 {} \;
          123  chown -R www-data:www-data /var/www
          124  chmod 755  /var/www
          125  cd /var/www
          126  ls
          127  vi wp-config.php
          128  ls
          129  cd wp-content/
          130  ls
          131  cd themes/
          132  ls
          133  cd wplms/
          134  ls
          135  mkdir PLUNGINS
          136  chmod -R 775 PLUNGINS/
          137  chmod 755 PLUNGINS/
          138  systemctl restart apache2
          139  ls
          140  rm -rf PLUNGINS/
          141  mkdir plugins
          142  chmod 755  plugins
          143  a2enmod rewrite
          144  systemctl restart apache2
          145  vi /etc/apache2/sites-available/000-default.conf
          146  cd /etc/apache2/
          147  cd sites-available/
          148  ls
          149  vi nextcloud.conf
          150  apache2ctl configtest
          151  vi /etc/apache2/apache2.conf
          152  systemctl restart apache2
          153  cd /tmp
          154  git clone https://github.com/Imagick/imagick
          155  apt install php8.1-imagick
          156  systemctl restart apache2
          157  cd /var/www
          158  ls
          159  cd /tmp
          160  ls
          161  cd /var/www
          162  unzip nextcloud.zip
          163  ls
          164  CD nextcloud
          165  ls
          166  cd nextcloud/
          167  ls
          168  mkdir /var/nc_data
          169  chown -R www-data:www-data /var/www
          170  chmod 755  /var/www
          171  chmod 755  /var/nc_data
          172  chmod 755  /var/nc_data
          173  chown -R www-data:www-data /var/nc_data
          174  systemctl restart apache2
          175  cd /etc/apache2/
          176  ls
          177  cd ..
          178  ls
          179  php8.1
          180  cd php8.1
          181  cd php/8.1/
          
          186  cd /etc/php/8.1/apache2/
           195  vi php.ini
          196  systemctl restart apache2
          197  apt install php8.1-gmp
          198  apt install php8.1-bcmath
          199  systemctl restart apache2
          200  vi php.ini
          201  systemctl restart apache2
          202  cd /var/www/nextcloud/
          203  ls
          204  cd config/
          205  ls
          206  vi config.php
          207  history
          208  cd /var/www
          209  ls
          210  cat wp-config.php
          211  mysql -u root -p
          
          
          
          235  cd /tmp
          236  wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip
          237  sudo apt-get update
          238   apt-get update
          239  apt-get install unzip
          240  unzip phpMyAdmin-5.1.3-all-languages.zip
          241  ls
          242  mv phpMyAdmin-5.1.3-all-languages /var/www/phpmyadmin
          243  cd /var/www/phpmyadmin/
          244  cp config.sample.inc.php  config.inc.php
          245  vi config.inc.php
          246  systemctl restart apache2
          247  chown -R www-data:www-data /var/www/
          248  chmod -R  755  /var/www
          249  systemctl restart apache2
          250  ls
          251  ls -ls
          252  vi config.inc.php
          253  systemctl restart apache2
          254  cd /tmp
          255  ls
          256  cd /var/www/
          257  vi wp-config.php
          258  systemctl restart apache2
          259  hitory
          260  history
          261  cd phpmyadmin/
          262  vi config.inc.php
          263  cat config.inc.php
          264  history
          265  chown -R www-data:www-data /var/www/
          266  chmod -R  755  /var/www
          267  systemctl restart apache2
          
          Tags:  

          Leave a Reply

          Your email address will not be published. Required fields are marked *