Cara Mengatasi Pesan Security & Setup Warnings di Nextcloud
Pada artikel sebelumnya, kita telah membahas bagaimana cara install Nextcloud dengan Nginx di Ubuntu 24.04. Namun, masih ada beberapa konfigurasi tambahan yang perlu dilakukan, sesuai pesan dan rekomendasi yang diberikan oleh Nextcloud. Pesan tersebut dapat dilihat melalui menu Profile > Administration Settings > Overview
, baca pada bagian Security & setup warnings
. Beberapa pesan peringatan dan rekomendasi yang disarankan berhubungan konfigurasi PHP dan memory cache.
Security & Setup Warnings
Berikut ini pesan yang ditampilkan dan bagaimana cara mengatasinya:
PHP memory limit
Pesan: The PHP memory limit is below the recommended value of 512 MB..
Batas memory yang diperbolehkan untuk digunakan oleh PHP di server kurang dari 512 MB, yang merupakan nilai yang direkomendasikan untuk memastikan kinerja optimal Nextcloud. Batas memori ini menentukan seberapa banyak memori yang dapat digunakan oleh script PHP pada satu waktu.
Cara mengatasi
Membuka file konfigurasi php.ini, misal memakai PHP-FPM v8.3:
1 | sudo nano /etc/php/8.3/fpm/php.ini |
Mengubah nilai memory_limit
menjadi 512M
:
1 | memory_limit = 512M |
Restart server PHP-FPM:
1 | sudo systemctl restart php8.3-fpm |
Refresh kembali halaman Overview
, apakah pesan tersebut masih ada.
Maintenance windows start time
Pesan: Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.
Pengaturan background jobs untuk maintenance belum diatur.
Cara mengatasi
Membuka file konfigurasi Nextcloud, misal berada di /var/www/nextcloud/config/config.php
:
1 | sudo nano /var/www/nextcloud/config/config.php |
Tambahkan baris konfigurasi maintenance_window_start
:
1 2 3 4 | ... 'installed' => true, 'maintenance_window_start' => 1, ); |
Nilai 1
, maka background jobs hanya akan dijalankan antara pukul 01:00 UTC dan 05:00 UTC.
Strict-Transport-Security HTTP header
Pesan: Some headers are not set correctly on your instance – The Strict-Transport-Security
HTTP header is not set (should be at least 15552000
seconds).
Header HTTP Strict Transport Security (HSTS) belum diatur dengan benar di web server, nilai minimal 15552000
detik (atau 180 hari). HSTS adalah mekanisme keamanan web yang membantu melindungi dari serangan man-in-the-middle dengan memastikan bahwa semua koneksi ke website menggunakan HTTPS.
Cara mengatasi
Jika menggunakan Nginx, membuka file konfigurasi server block:
1 | sudo nano /etc/nginx/sites-available/cloud.example.com.conf |
Tambahkan konfigurasi berikut:
1 | add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" always; |
Restart nginx:
1 | sudo systemctl restart nginx |
Jika menggunakan Apache, membuka file konfigurasi virtual host:
1 | sudo nano /etc/apache2/sites-available/cloud.example.com.conf |
Tambahkan konfigurasi berikut:
1 | Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" |
Restart apache:
1 | sudo systemctl restart apache2 |
System environment variables
Pesan: PHP does not seem to be setup properly to query system environment variables. The test with getenv(“PATH”) only returns an empty response.
PHP tidak dikonfigurasi dengan benar untuk membaca system environment variables. Saat menggunakan PHP-FPM, environment variables seperti PATH
, TMP
, atau lainnya tidak secara otomatis diisi. Oleh karena itu, pemanggilan PHP seperti getenv('PATH')
bisa mengembalikan hasil kosong.
Cara mengatasi
Membuka file konfigurasi PHP-FPM pool untuk PHP v8.3:
1 | sudo nano /etc/php/8.3/fpm/pool.d/www.conf |
Tambahkan konfigurasi berikut:
1 2 3 4 5 6 | env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp clear_env = no |
Restart service PHP-FPM.
PHP OPcache module
Pesan: The PHP OPcache module is not properly configured. The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply “opcache.interned_strings_buffer” to your PHP configuration with a value higher than “8”.
Modul OPcache PHP tidak dikonfigurasi dengan benar. Secara spesifik, buffer string interned OPcache hampir penuh. Interned strings adalah string yang disimpan hanya sekali dalam memori dan digunakan kembali oleh aplikasi, yang dapat meningkatkan kinerja.
Cara mengatasi
Pada file konfigurasi php.ini
, aktifkan dan sesuaikan baris konfigurasi berikut:
1 | opcache.interned_strings_buffer=16 |
Restart service web server atau PHP-FPM.
Memory cache (memcache)
Pesan
The database is used for transactional file locking. To enhance performance, please configure memcache, if available.
Database digunakan untuk mengunci file secara transaksional (transactional file locking). Hal ini dilakukan untuk menghindari kerusakan file selama operasi normal. Namun, untuk meningkatkan kinerja, disarankan untuk mengkonfigurasi memcache jika tersedia.
No memory cache has been configured. To enhance performance, please configure a memcache, if available.
Belum ada memory cache yang dikonfigurasi. Memory cache dapat meningkatkan kinerja server Nextcloud secara signifikan dengan menyimpan objek yang sering diminta di dalam memori untuk pengambilan data yang lebih cepat.
Cara mengatasi
Install APCu dan Redis:
1 | sudo apt install php8.3-apcu php8.3-redis redis-server -y |
Tambahkan konfigurasi berikut pada file konfigurasi Nextcloud config.php
:
1 2 3 4 5 6 7 | 'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'localhost', 'port' => 6379, ], |
Default phone region
Pesan: Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add “default_phone_region” with the respective ISO 3166-1 code of the region to your config file.
Default phone region belum ditetapkan. Hal itu diperlukan untuk memvalidasi nomor telepon dalam pengaturan profil tanpa kode negara. Dengan kata lain, jika pengguna memasukkan nomor telepon tanpa kode negara, Nextcloud akan kesulitan untuk memvalidasi nomor tersebut kecuali wilayah telepon default sudah ditetapkan.
Cara mengatasi
Tambahkan konfigurasi berikut pada konfigurasi Nextcloud config.php
:
1 | 'default_phone_region' => 'ID', |
Email server
Pesan: You have not set or verified your email server configuration, yet. Please head over to the “Basic settings” in order to set them. Afterwards, use the “Send email” button below the form to verify your settings.
Belum melakukan pengaturan email server yang digunakan untuk pengiriman notifikasi seperti notifikasi reset password, file share, perubahan file, dan notifikasi aktivitas.
Cara mengatasi
Sebelumnya sudah harus memiliki akun email dengan layanan SMTP server.
Buka menu Administration settings > Basic settings
. Pada bagian Email server
masukkan:
- Send mode: SMTP
- Encryption: SSL
- From address: alamat email
- Server address: SMTP server dan nomor port
- Authentication: dicentang
- Credentials: alamat email dan password
Lalu klik Save
dan klik Send email
untuk menguji pengiriman email.
Recommended PHP modules
Pesan: This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: – bcmath for WebAuthn passwordless login – gmp for WebAuthn passwordless login, and SFTP storage – intl increases language translation performance and fixes sorting of non-ASCII characters.
Beberapa modul PHP yang direkomendasikan tidak terpasang. Modul-modul ini dapat meningkatkan kinerja dan kompatibilitas Nextcloud.
- bcmath: Digunakan untuk login tanpa password menggunakan WebAuthn. Modul ini menyediakan fungsi matematika presisi tinggi yang diperlukan untuk autentikasi WebAuthn.
- gmp: Juga digunakan untuk login tanpa password menggunakan WebAuthn, serta untuk penyimpanan SFTP. Modul ini menyediakan fungsi aritmatika untuk angka besar yang diperlukan oleh WebAuthn dan SFTP.
- intl: Meningkatkan kinerja terjemahan bahasa dan memperbaiki pengurutan karakter non-ASCII. Modul ini menyediakan fungsi internasionalisasi seperti pemrosesan teks, format waktu dan tanggal, serta pengurutan string.
Cara mengatasi
Install modul PHP yang direkomendasikan:
1 | sudo apt install php8.3-bcmath php8.3-gmp php8.3-intl -y |
Restart web server atau PHP-FPM.
PHP module imagick
Pesan: The PHP module “imagick” is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module.
Modul PHP “imagick” tidak diaktifkan, meskipun aplikasi theming diaktifkan. Modul “imagick” diperlukan untuk menghasilkan favicon dengan benar di Nextcloud. Favicon adalah ikon kecil yang muncul di tab browser saat membuka situs web, dan imagick membantu dalam proses pembuatan ikon ini.
Pesan: The PHP module “imagick” in this instance has no SVG support. For better compatibility it is recommended to install it.
Modul PHP “imagick” yang terpasang tidak memiliki dukungan untuk format file SVG (Scalable Vector Graphics). Dukungan SVG penting untuk kompatibilitas yang lebih baik, terutama dalam hal penanganan gambar vektor di Nextcloud. Tanpa dukungan SVG, beberapa fungsi atau fitur yang bergantung pada format SVG mungkin tidak berfungsi dengan benar.
Cara mengatasi
Install modul PHP imagick:
1 | sudo apt install php8.3-imagick libmagickcore-dev libmagickwand-dev -y |
Restart web server atau PHP-FPM.