Konfigurasi Nextcloud di FreeBSD dengan Apache dan OpenSSL port HTTPS
· 2 min read · Label UnixBSD
Dalam artikel ini, kita akan menyiapkan Server NextCloud dari awal dengan menambahkan Sertifikat SSL. Ada banyak tutorial yang membahas topik yang sama, tetapi sangat sedikit tutorial untuk mengonfigurasi Nextcloud pada server FreeBSD yang menyediakan sertifikat SSL. Pada kesempatan ini, sertifikat SSL akan disediakan oleh OpenSSL dan server web yang akan kita gunakan adalah Apache24. Sebelum Anda mengikuti seluruh panduan dalam artikel ini, pastikan server Apache, server MySQL, PHP, mod PHP, dan PHP-PFM telah terinstal di server FreeBSD Anda.
Panduan ini mengasumsikan Nextcloud akan diakses melalui IP pribadi, https://192.168.5.2/nextcloud. Kita akan menempatkan sertifikat SSL di Apache VHOST yang merujuk ke jalur direktori /usr/local/www/nextcloud, tempat semua file Nextcloud disimpan.
Untuk membuat basis data Nextcloud, Anda harus masuk ke server MySQL, setelah berhasil masuk, lanjutkan dengan membuat basis data Nextcloud. Berikut adalah panduan yang dapat Anda ikuti.
User: usernextcloud
Host: Localhost
Database name: nextcloud
Password: router123
FreeBSD memudahkan Anda, karena repositori Nextcloud tersedia dalam paket PKG atau port sistem. Anda dapat memilih salah satu, kami sarankan menggunakan sistem port untuk menginstal Nextcloud. Berikut caranya.
Ubah izin dan kepemilikan.
Pada bagian ini, kami tidak akan menjelaskan proses konfigurasi memcached secara lengkap, Anda dapat membaca artikel kami sebelumnya.
"Bermain-main dengan FreeBSD Memcached Cara mengimplementasikan layanan caching data dalam memori"
Buka file config.php, dan tambahkan skrip memcached di bawah ini.
Anda dapat melihat skrip lengkap file "config.php" di bawah.
Setelah itu, anda lanjutkan dengan membuat sertifikat SSL.
Ubah izin kepemilikan file.
Sekarang kita akan menyiapkan Apache dengan sertifikat yang ditandatangani sendiri sebagai bagian dari instalasi Nextcloud, jadi untuk panduan ini kita akan menggunakannya. Buka file httpd-ssl.conf dan hapus semua skrip lalu ganti dengan skrip di bawah ini.
Setelah Anda selesai mengonfigurasi semuanya, kini saatnya menjalankan Nextcloud. Buka Google Chrome dan ketik "https://192.168.5.2/nextcloud/". Lihat hasilnya di layar monitor Anda. Jika tidak ada yang salah dengan konfigurasi, server Nextcloud akan muncul di layar monitor Anda.
Dalam tutorial lengkap ini, kami telah menjelaskan proses pengaktifan sertifikat SSL di Apache dengan OpenSSL. Dengan mengikuti semua panduan dalam artikel ini, Anda dapat memastikan bahwa server web Anda menggunakan versi protokol TLS terbaru dan teraman, sehingga meningkatkan keamanan dan kinerja server Nextcloud Anda.
Panduan ini mengasumsikan Nextcloud akan diakses melalui IP pribadi, https://192.168.5.2/nextcloud. Kita akan menempatkan sertifikat SSL di Apache VHOST yang merujuk ke jalur direktori /usr/local/www/nextcloud, tempat semua file Nextcloud disimpan.
Panduan instalasi Nextcloud ini menjelaskan instalasi, konfigurasi, dan penguatan serta beberapa opsi perluasan Nextcloud pada server FreeBSD. Instalasi Nextcloud didasarkan pada komponen Apache24 dan OpenSSL untuk menyediakan sertifikat SSL. Anda dapat mengubah konten skrip dalam panduan ini sesuai dengan spesifikasi server FreeBSD Anda seperti alamat IP pribadi dan domain.
"Sebelum kita mulai, pastikan web server Apache24, server MySQL, PHP, PHP mod dan PHP-PFM sudah terinstal dan berjalan normal di server FreeBSD Anda"
1. Buat Database Nextcloud
Di Nextcloud, basis data sangatlah penting. Basis data di Nextcloud digunakan untuk menyimpan semua konfigurasi dan data yang Anda masukkan di Nextcloud. Nextcloud mendukung banyak basis data, tetapi dalam artikel ini kita akan menggunakan basis data server MySQL.Untuk membuat basis data Nextcloud, Anda harus masuk ke server MySQL, setelah berhasil masuk, lanjutkan dengan membuat basis data Nextcloud. Berikut adalah panduan yang dapat Anda ikuti.
User: usernextcloud
Host: Localhost
Database name: nextcloud
Password: router123
CREATE DATABASE
root@ns3:~ # mysql -u root -p
Enter password:
root@localhost [(none)]> CREATE DATABASE nextcloud;
root@localhost [(none)]> CREATE USER 'usernextcloud'@'localhost' IDENTIFIED BY 'router123';
root@localhost [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'usernextcloud'@'localhost';
root@localhost [(none)]> FLUSH PRIVILEGES;
root@localhost [(none)]> exit;
root@ns3:~ #
2. Proses Instal Nextcloud
Langkah pertama, kita akan menginstal dependensi Nextcloud. Dependensi ini terdiri dari aplikasi PHP yang akan membentuk file pustaka.Install Nextcloud Dependencies
root@ns3:~ # pkg install php82-ctype pkgconf php82-filter php82-iconv php82-xmlwriter php82-bz2 php82-mbstring php82-pdo_mysql php82-opcache php82-xmlreader
root@ns3:~ # pkg install php82-xsl php82-dom php82-gmp php82-pcntl php82-pdo php82-posix php82-simplexml php82-intl php82-ldap php82-sysvsem php82-bcmath
/usr/ports/www/nextcloud
root@ns3:~ # cd /usr/ports/www/nextcloud
root@ns3:/usr/ports/www/nextcloud # make install clean
/usr/local/www/nextcloud
root@ns3:/usr/ports/www/nextcloud # chown -R www:www /usr/local/www/nextcloud
root@ns3:/usr/ports/www/nextcloud # chmod -R 775 /usr/local/www/nextcloud
3. Konfigurasi config.php Crontab php.ini
config.php merupakan file konfigurasi utama Nextcloud, Anda harus mengubah skrip pada file ini agar Nextcloud dapat berjalan dengan sempurna. Ada beberapa konfigurasi yang harus Anda lakukan, antara lain:a. Aktifkan caching
Cache digunakan untuk meningkatkan kecepatan Nextcloud. Perbedaan kecepatan jika Anda menggunakan Nextcloud tanpa cache dan dengan cache sangatlah besar. Terutama karena jumlah file dan folder bertambah dan lebih banyak file multimedia masuk ke server, caching menjadi semakin penting untuk menjaga kecepatan dan kinerja. Ada banyak cache yang digunakan oleh Nextcloud, APCU, redis dan memcached. Dalam artikel ini kita akan menggunakan memcached. Jalankan perintah berikut untuk menginstal memcached./usr/ports/databases/memcached
root@ns3:~ # cd /usr/ports/databases/memcached
root@ns3:/usr/ports/databases/memcached # make install clean
"Bermain-main dengan FreeBSD Memcached Cara mengimplementasikan layanan caching data dalam memori"
Buka file config.php, dan tambahkan skrip memcached di bawah ini.
/usr/local/www/nextcloud/config/config.php
root@ns3:~ # ee /usr/local/www/nextcloud/config/config.php
'memcache.local' => '\\OC\\Memcache\\Memcached',
'memcache.distributed' => '\\OC\\Memcache\\Memcached',
'memcache.locking' => '\\OC\\Memcache\\Memcached',
'memcached_servers' =>
array (
0 =>
array (
0 => '192.168.5.2',
1 => 11211,
),
),
b. Aktifkan Pretty links
Sama seperti membuat tema di Joomla atau Wordpress, tautan cantik tidak wajib, tetapi tautan tersebut menambah estetika keseluruhan server. Anda harus mengaktifkan "Tautan cantik" di berkas config.php./usr/local/www/nextcloud/config/config.php
root@ns3:~ # ee /usr/local/www/nextcloud/config/config.php
'overwrite.cli.url' => 'https://192.168.5.2/nextcloud',
'htaccess.RewriteBase' => '/nextcloud',
c. Aktifkan Phone Region
Aktifkan wilayah telepon default, sangat penting untuk memvalidasi nomor telepon di pengaturan profil Nextcloud. Anda dapat menambahkan "default_phone_region" dengan kode ISO 3166-1 setiap wilayah ke berkas konfigurasi config.php. Sesuaikan kode dengan negara Anda./usr/local/www/nextcloud/config/config.php
root@ns3:~ # ee /usr/local/www/nextcloud/config/config.php
'default_phone_region' => 'US',
d. Aktifkan Maintenance Window
Proses pemeliharaan sangatlah penting, Anda dapat mulai mengonfigurasi jendela pemeliharaan Nextcloud. Proses ini akan melakukan pekerjaan latar belakang harian yang intensif selama waktu penggunaan utama Nextcloud. Karena Anda menggunakan server FreeBSD, kami sarankan untuk mengaturnya ke waktu penggunaan rendah, sehingga pengguna tidak terlalu terpengaruh oleh beban yang disebabkan oleh tugas-tugas berat./usr/local/www/nextcloud/config/config.php
root@ns3:~ # ee /usr/local/www/nextcloud/config/config.php
'maintenance_window_start' => 1,
e. Aktifkan Crontab
Setelah memasang Nextcloud, tugas latar belakang dilakukan menggunakan AJAX saat pengguna mengunjungi halaman Nextcloud. Ini akan mencegah Anda menjalankan tugas penjadwal saat tidak ada aktivitas. Untuk mengatasi masalah ini, buka file crontab dan tambahkan skrip di bawah ini./etc/crontab
root@ns3:~ # ee /etc/crontab
*/15 * * * * /usr/local/bin/php -f /usr/local/www/apache24/data/nextcloud/cron.php
*/5 * * * * php -f /usr/local/www/nextcloud/occ dav:send-event-reminders
f. Konfigurasi PHP Opcache
Pada server FreeBSD, pengaturan PHP Opcache sangat diperlukan untuk menyimpan bytecode yang telah dikompilasi sebelumnya. Pengaturan PHP Opcache yang tepat akan meningkatkan kinerja Nextcloud. Aktifkan skrip di bawah ini dalam file php.ini./usr/local/etc/php.ini
root@ns3:~ # ee /usr/local/etc/php.ini
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
memory_limit = 512M
cgi.fix_pathinfo=0
post_max_size = 32M
upload_max_filesize = 32M
g. Aktifkan Nextcloud Providers
Mengaktifkan opsi "Nextcloud Providers" bertujuan untuk mempercepat pembuatan pratinjau menggunakan layanan mikro eksternal. Untuk menerapkan opsi ini, Anda perlu menyebarkan layanan dan memastikan bahwa layanan tersebut tidak dapat diakses dari luar server Anda. Kemudian Anda dapat mengonfigurasi Nextcloud untuk menggunakan Imaginary dengan mengedit file config.php./usr/local/www/nextcloud/config/config.php
root@ns3:~ # ee /usr/local/www/nextcloud/config/config.php
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OCPreviewPNG',
1 => 'OCPreviewJPEG',
2 => 'OCPreviewGIF',
3 => 'OCPreviewBMP',
4 => 'OCPreviewXBitmap',
5 => 'OCPreviewMarkDown',
6 => 'OCPreviewMP3',
7 => 'OCPreviewTXT',
8 => 'OCPreviewIllustrator',
9 => 'OCPreviewMovie',
10 => 'OCPreviewMSOffice2017',
12 => 'OCPreviewMSOfficeDoc',
13 => 'OCPreviewOpenDocument',
14 => 'OCPreviewPDF',
15 => 'OCPreviewPhotoshop',
16 => 'OCPreviewPostscript',
17 => 'OCPreviewStarOffice',
18 => 'OCPreviewSVG',
19 => 'OCPreviewTIFF',
20 => 'OCPreviewFont',
),
/usr/local/www/nextcloud/config/config.php
<?php
$CONFIG = array (
'apps_paths' =>
array (
0 =>
array (
'path' => '/usr/local/www/nextcloud/apps',
'url' => '/apps',
'writable' => true,
),
1 =>
array (
'path' => '/usr/local/www/nextcloud/apps-pkg',
'url' => '/apps-pkg',
'writable' => false,
),
),
'logfile' => '/var/log/nextcloud/nextcloud.log',
'memcache.local' => '\\OC\\Memcache\\Memcached',
'instanceid' => 'oc4umminut1v',
'passwordsalt' => 'B+tTSN3tC1SdPMaRxkZVZPXe+Bg0Lp',
'secret' => 'unz4KEhJPBuXC+lrRZx8brzvlFlHJimMC6zv+XmlzS7gNc4L',
'trusted_domains' =>
array (
0 => '192.168.5.2',
),
'datadirectory' => '/usr/local/www/nextcloud/data',
'dbtype' => 'mysql',
'version' => '28.0.3.2',
'overwrite.cli.url' => 'https://192.168.5.2/nextcloud',
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'mary',
'dbpassword' => 'mary123',
'installed' => true,
'memcache.distributed' => '\\OC\\Memcache\\Memcached',
'memcache.locking' => '\\OC\\Memcache\\Memcached',
'memcached_servers' =>
array (
0 =>
array (
0 => '192.168.5.2',
1 => 11211,
),
),
'htaccess.RewriteBase' => '/nextcloud',
'default_phone_region' => 'US',
'maintenance_window_start' => 1,
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OCPreviewPNG',
1 => 'OCPreviewJPEG',
2 => 'OCPreviewGIF',
3 => 'OCPreviewBMP',
4 => 'OCPreviewXBitmap',
5 => 'OCPreviewMarkDown',
6 => 'OCPreviewMP3',
7 => 'OCPreviewTXT',
8 => 'OCPreviewIllustrator',
9 => 'OCPreviewMovie',
10 => 'OCPreviewMSOffice2017',
12 => 'OCPreviewMSOfficeDoc',
13 => 'OCPreviewOpenDocument',
14 => 'OCPreviewPDF',
15 => 'OCPreviewPhotoshop',
16 => 'OCPreviewPostscript',
17 => 'OCPreviewStarOffice',
18 => 'OCPreviewSVG',
19 => 'OCPreviewTIFF',
20 => 'OCPreviewFont',
),
);
4. Konfigurasi SSL using OpenSSL
Seperti yang kami tulis pada judul di atas, Nextcloud dikonfigurasi dengan https, oleh karena itu Anda perlu membuat sertifikat SSL. Jika penandatanganan CA tidak diperlukan, sertifikat yang ditandatangani sendiri dapat dibuat. Untuk melakukannya, pertama-tama mari kita buat kunci privat RSA yang akan kita gunakan untuk membuat sertifikat CSR atau CRT. Namun sebelum kita membuat sertifikat SSL, pertama-tama buat direktori SSL./usr/local/etc/apache24
root@ns3:~ # cd /usr/local/etc/apache24
root@ns3:/usr/local/etc/apache24 # mkdir -p ssl
root@ns3:/usr/local/etc/apache24 # cd ssl
root@ns3:/usr/local/etc/apache24/ssl #
/usr/local/etc/apache24/ssl
root@ns3:/usr/local/etc/apache24/ssl # openssl genrsa -out server.key 2048
root@ns3:/usr/local/etc/apache24/ssl # openssl req -new -key server.key -out server.csr
root@ns3:/usr/local/etc/apache24/ssl # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
root@ns3:/usr/local/etc/apache24/ssl # cat server.crt server.key > server.bundle.pem
/usr/local/etc/apache24/ssl
root@ns3:/usr/local/etc/apache24/ssl # chmod -R 640 /usr/local/etc/apache24/ssl
5. Membuat Vhost SSL di Apache
Karena web server Apache24 berjalan normal, kita dapat langsung mengaktifkan Vhost. Buka file httpd.conf dan aktifkan skrip di bawah ini./usr/local/etc/apache24/httpd.conf
root@ns3:~ # ee /usr/local/etc/apache24/httpd.conf
Listen 80
ServerAdmin datainchi@gmail.com
ServerName datainchi.com
LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
Include etc/apache24/extra/httpd-ssl.conf
/usr/local/etc/apache24/extra/httpd-ssl.conf
root@ns3:~ # ee /usr/local/etc/apache24/extra/httpd-ssl.conf
Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on
SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/var/run/ssl_scache(512000)"
SSLSessionCacheTimeout 300
SSLUseStapling On
SSLStaplingCache "shmcb:/var/run/ssl_stapling(32768)"
SSLStaplingStandardCacheTimeout 3600
SSLStaplingErrorCacheTimeout 600
SSLCompression off
<VirtualHost _default_:443>
DocumentRoot "/usr/local/www/apache24/data"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"
SSLEngine on
SSLCertificateFile "/usr/local/etc/apache24/mycert/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache24/mycert/server.key"
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>
Alias /nextcloud /usr/local/www/nextcloud
AcceptPathInfo On
<Directory /usr/local/www/nextcloud>
Options Indexes ExecCGI FollowSymLinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
Header unset Content-Security-Policy
Header always unset Content-Security-Policy
SetEnv HOME /usr/local/www/nextcloud
SetEnv HTTP_HOME /usr/local/www/nextcloud
Satisfy Any
</Directory>
<Directory /usr/local/www/nextcloud/apps/sip_trip_phone/phone/>
DirectoryIndex index.html
</Directory>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/www/apache24/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd-ssl_request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
Setelah Anda selesai mengonfigurasi semuanya, kini saatnya menjalankan Nextcloud. Buka Google Chrome dan ketik "https://192.168.5.2/nextcloud/". Lihat hasilnya di layar monitor Anda. Jika tidak ada yang salah dengan konfigurasi, server Nextcloud akan muncul di layar monitor Anda.
Dalam tutorial lengkap ini, kami telah menjelaskan proses pengaktifan sertifikat SSL di Apache dengan OpenSSL. Dengan mengikuti semua panduan dalam artikel ini, Anda dapat memastikan bahwa server web Anda menggunakan versi protokol TLS terbaru dan teraman, sehingga meningkatkan keamanan dan kinerja server Nextcloud Anda.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar