Skip to content Skip to main navigation Skip to footer

Cài đặt NextCloud (Apache + PostgreSQL + PHP8.1) trên Ubuntu 22.04

NextCloud là gì?

Nextcloud là một phần mềm (Mã nguồn mở) miễn phí giống như Dropbox, Google Drive, một nhánh của dự án ownCloud. Nextcloud được viết bằng PHP và JavaScript, nó hỗ trợ nhiều hệ thống cơ sở dữ liệu như MySQL / MariaDB, PostgreSQL, Oracle Database và SQLite. Để giữ cho các tệp của bạn được đồng bộ hóa giữa Máy tính để bàn và máy chủ của riêng bạn, Nextcloud cung cấp các ứng dụng cho máy tính để bàn Windows, Linux và Mac và một ứng dụng di động cho Android và iOS. Nextcloud không chỉ là một bản sao dropbox, nó cung cấp các tính năng bổ sung như Lịch, Danh bạ, Lên lịch tác vụ và phát trực tuyến phương tiện với Ampache.

Cài đặt NextCloud trên Ubuntu 22.04

Chuẩn bị:

  • Máy chủ sử dụng Ubuntu 20.04 (Tham khảo các dịch vụ VPS tốt nhất tại đây)
  • RAM: 1GB (Tối thiểu, nhưng để hoạt động tốt hơn bạn nên dùng VPS có cấu hình RAM cao)
  • CPU: 1Core
  • Disk: 20GB

Bước 1: Download NextCloud trên Ubuntu 22.04

Đầu tiên các bạn hãy SSH vào máy chủ Ubuntu 22.04 của mình, tiếp đó bạn hãy Download NextCloud từ kho lưu trữ về máy chủ của mình. Tại thời điểm mình viết bài này thì phiên bản mới nhất của NextCloud là 24.0.0, các bạn có thể truy cập trang chủ theo liên kết https://nextcloud.com/install/ , vào phần DOWNLOAD SERVER >> ARCHIVE FILE để xem và Download bản mới nhất.

  • Để Download nhanh chóng, tại máy chủ của mình các bạn hãy copy và chạy lệnh bên dưới:
AZDIGI Tutorial
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.0.zip
    

Lưu ý: Nếu bạn muốn sử dụng phiên bản Nextcloud khác, bạn chỉ cần thay thế 24.0.0 bằng phiên bản mà bạn cần.

  • Cài đặt unzip để giải nén file
AZDIGI Tutorial
sudo apt install unzip
    
  • Tạo thư mục /var/www/ và giải nén File vào đường dẫn này.
AZDIGI Tutorial
sudo mkdir -p /var/www/
sudo unzip nextcloud-24.0.0.zip -d /var/www/
    
  • Set lại owner cho thư mục thành www-data
AZDIGI Tutorial
sudo chown www-data:www-data /var/www/nextcloud/ -R
    

Bước 2: Cài đặt PostgreSQL và tạo cơ sở dữ liệu cho Nextcloud

Nextcloud tương thích với PostgreSQL , MariaDB / MySQL và SQLite, tuy nhiên nếu hoạt động trên PostgreSQL thì Nextcloud sẽ có hiệu xuất nhanh và ổn định hơn nhiều, do đó mình sẽ cài đặt Nextcloud với PostgreSQL.

  • Cài đặt PostgreSQL
AZDIGI Tutorial
echo "deb [arch=amd64] http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
sudo apt update
sudo apt install -y postgresql-14 postgresql-client-14
sudo systemctl enable postgresql  
sudo systemctl restart postgresql
sudo systemctl status postgresql  
    
  • Đăng nhập vào PostgreSQL với người dùng postgres
AZDIGI Tutorial
sudo -u postgres psql
    
  • Tạo cơ sở dữ liệu với tên nextcloud
AZDIGI Tutorial
CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE';
    
  • Tạo user tên nextclouduser và đặt mật khẩu
AZDIGI Tutorial
CREATE USER nextclouduser WITH PASSWORD 'nextclouduser_password';
    
  • Cấp quyền sử dụng cở sở dữ liệu cho user
AZDIGI Tutorial
ALTER DATABASE nextcloud OWNER TO nextclouduser;
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextclouduser;
    

Bây giờ bạn nhấn Ctrl+D để thoát khỏi giao diện PostgreSQL.

  • Để đăng nhập vào PostgreSQL với user nextclouduser vừa tạo, bạn sử dụng lệnh bên dưới
AZDIGI Tutorial
psql -h 127.0.0.1 -d nextcloud -U nextclouduser -W
    

Bây giờ bạn nhấn Ctrl+D để thoát khỏi giao diện PostgreSQL.

Bước 3: Cài đặt Apache và cấu hình Virtual Host cho Nextcloud

  • Cài đặt Apache
AZDIGI Tutorial
sudo apt install -y apache2 apache2-utils
sudo systemctl enable apache2  
sudo systemctl restart apache2
sudo systemctl status apache2  
    
  • Tạo file nextcloud.conf trong thư mục /etc/apache2/sites-available/
AZDIGI Tutorial
sudo nano /etc/apache2/sites-available/nextcloud.conf
    

Và thêm nội dung bên dưới vào và save lại.

<VirtualHost *:80>
        DocumentRoot "/var/www/nextcloud"
        ServerName nextcloud.azdigi.space

        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>

</VirtualHost>

Lưu ý: Thay thế nextcloud.azdigi.space bằng tên miền mà bạn muốn sử dụng để truy cập vào Nextcloud

  • Kích hoạt virtual host vừa tạo
AZDIGI Tutorial
sudo a2ensite nextcloud.conf
    
  • Bật các modules cần thiết của Apache
AZDIGI Tutorial
sudo a2enmod rewrite headers env dir mime setenvif ssl
    
  • Kiểm tra cấu hình và khởi động lại Apache
AZDIGI Tutorial
sudo apache2ctl -t
sudo systemctl restart apache2
    

Bước 4: Cài đặt PHP và kích hoạt các Modules PHP

  • Cài đặt PHP và các Modules PHP được NextCloud đề xuất
AZDIGI Tutorial
sudo apt install -y imagemagick php-imagick php8.1-common php8.1-pgsql php8.1-fpm php8.1-gd php8.1-curl php8.1-imagick php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-bcmath php8.1-gmp
    
  • Kích hoạt các modules và php8.1-fpm
AZDIGI Tutorial
a2enmod proxy_fcgi setenvif mpm_event rewrite headers env dir mime ssl http2
a2enconf php8.1-fpm
    
  • Tùy chỉnh cấu hình apache2.conf để cho phép sử dụng .htaccess
AZDIGI Tutorial
sudo nano /etc/apache2/apache2.conf
    

Tìm và sửa lại giá trị

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Thành


<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
  • Bật sử dụng HTTP/2 thì bạn thêm dòng bên dưới vào file apache2.conf
AZDIGI Tutorial
Protocols h2 h2c http/1.1
    
  • Chỉnh sửa file php.ini
AZDIGI Tutorial
sudo nano /etc/php/8.1/fpm/php.ini
    

Điểu chỉnh các thông số bên dưới

opcache.enable = 1
opcache.enable_cli = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

max_execution_time = 300
max_input_time = 600
memory_limit = 512M
upload_max_filesize = 10240M
  • Khởi động lại Apache và php8.1-fpm
AZDIGI Tutorial
sudo systemctl restart apache2 php8.1-fpm
    

Bước 5: Cài đặt SSL cho Server name

Ở phần cấu hình Virtual Host cho Nextcloud (Bước 3) , thì mình có đặt Server name cho Nextcloud là nextcloud.azdigi.space , nên bây giờ mình sẽ thực hiện cài đặt SSL cho nó bảo mật và nhìn chuyên nghiệp hơn.

  • Cài đặt Cerbot Apache
AZDIGI Tutorial
sudo apt install -y certbot python3-certbot-apache
    
  • Cho phép ‘Apache Full’ thông qua tường lửa, để sử dụng cả HTTP & HTTPS
AZDIGI Tutorial
sudo ufw allow 'Apache Full'
    
  • Cài đặt SSL cho Server name
AZDIGI Tutorial
sudo certbot --apache -d nextcloud.azdigi.space
    
root@ubuntu-2204:~# sudo certbot --apache -d nextcloud.azdigi.space
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): kiendt@azdigi.com          (Nhập email của bạn)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y                   (Nhấn y để đồng ý các điều khoản)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N                   (Nhận các thông tin khác từ Let's Encrypt)
Account registered.
Requesting a certificate for nextcloud.azdigi.space

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/nextcloud.azdigi.space/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/nextcloud.azdigi.space/privkey.pem
This certificate expires on 2022-08-19.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for nextcloud.azdigi.space to /etc/apache2/sites-available/nextcloud-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://nextcloud.azdigi.space

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bước 5: Thiết lập Nextcloud

Sau khi đã cài đặt các dịch vụ cần thiết ở trên. Bây giờ các bạn truy cập

Nhấn Install để bắt đầu cài đặt.
Nhấn Install recommended apps để tiếp tục cài đặt.

Khi cài đặt hoàn tất, giao diện Nextcloud sẽ hiển thị như bên dưới. Đến phần này thì bạn đã cài đặt xong Nextcloud rồi nhé.

Chúc bạn thực hiện thành công.

Các bạn có thể tham khảo thêm các hướng dẫn sử dụng khác tại link bên dưới

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới: