Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
os_nextcloud [2025/03/18 01:59] – [Nextcloud-Specific Tweaks] Júne Park | os_nextcloud [2025/04/14 08:48] (current) – [Edit - Panel] Júne Park | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nextcloud™ ====== | + | ====== Nextcloud™ ====== |
---- | ---- | ||
+ | ===== Required packages ===== | ||
+ | |||
+ | <code bash> | ||
+ | sudo apt install php8.x php8.x-common php8.x-gmp php8.x-mbstring php8.x-readline php8.x-xmlrpc php8.x-bcmath php8.x-curl php8.x-igbinary php8.x-mcrypt php8.x-redis php8.x-zip php8.x-bz2 php8.x-fpm php8.x-imagick php8.x-mysql php8.x-soap php8.x-cli php8.x-gd php8.x-intl php8.x-opcache php8.x-xml | ||
+ | </ | ||
+ | |||
+ | ---- | ||
==== Optimized PHP Configuration ==== | ==== Optimized PHP Configuration ==== | ||
Line 135: | Line 142: | ||
=== Additional PHP-FPM Settings === | === Additional PHP-FPM Settings === | ||
+ | Edit ''/ | ||
+ | |||
+ | < | ||
<code ini> | <code ini> | ||
request_terminate_timeout = 300 | request_terminate_timeout = 300 | ||
Line 145: | Line 155: | ||
---- | ---- | ||
+ | Optimal configuration for ''/ | ||
+ | |||
+ | <panel title=" | ||
+ | <code ini> | ||
+ | ; configuration for php opcache module | ||
+ | ; priority=10 | ||
+ | opcache.enable = 1 | ||
+ | ; Enable OPcache. | ||
+ | |||
+ | opcache.memory_consumption = 128 | ||
+ | ; Memory for cached scripts (128 MB is a good starting point; increase to 256 MB if RAM allows). | ||
+ | |||
+ | opcache.interned_strings_buffer = 8 | ||
+ | ; Memory for string interning (8 MB is sufficient for most cases). | ||
+ | |||
+ | opcache.max_accelerated_files = 10000 | ||
+ | ; Max number of files to cache; adjust based on Nextcloud’s file count. | ||
+ | |||
+ | opcache.revalidate_freq = 60 | ||
+ | ; How often to check for file changes (60 seconds balances performance and freshness). | ||
+ | |||
+ | opcache.save_comments = 1 | ||
+ | ; Required by Nextcloud to preserve code comments in bytecode. | ||
+ | |||
+ | zend_extension=opcache.so | ||
+ | opcache.enable_cli = 1 | ||
+ | ; Disable for CLI to avoid unnecessary overhead in cron jobs. | ||
+ | ; | ||
+ | opcache.jit_buffer_size = 100M | ||
+ | opcache.jit = tracing | ||
+ | ; " | ||
+ | ; | ||
+ | opcache.interned_strings_buffer = 16 | ||
+ | opcache.memory_consumption = 256 | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ---- | ||
==== Nextcloud-Specific Tweaks ==== | ==== Nextcloud-Specific Tweaks ==== | ||
+ | |||
+ | {{mdi> | ||
* Memory Caching: Use Redis for local and file-locking caches to reduce database load. Edit ''/ | * Memory Caching: Use Redis for local and file-locking caches to reduce database load. Edit ''/ | ||
Line 156: | Line 208: | ||
], | ], | ||
</ | </ | ||
+ | | ||
+ | <code php> | ||
+ | <?php | ||
+ | $CONFIG = array ( | ||
+ | ... ... ... | ||
+ | ... | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | array ( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ); | ||
+ | </ | ||
Install Redis (sudo apt install redis-server on Debian) and ensure it’s running. | Install Redis (sudo apt install redis-server on Debian) and ensure it’s running. | ||
+ | |||
+ | <code bash> | ||
+ | sudo apt install redis-server php-redis | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | sudo ps ax | grep redis | ||
+ | sudo netstat -tlnp | grep redis | ||
+ | </ | ||
+ | |||
+ | Clearing Redis Cache | ||
+ | |||
+ | <code bash> | ||
+ | sudo redis-cli | ||
+ | SELECT < | ||
+ | FLUSHDB | ||
+ | </ | ||
+ | |||
* Cron Jobs: Use a system cron job instead of AJAX for background tasks. Add to ''/ | * Cron Jobs: Use a system cron job instead of AJAX for background tasks. Add to ''/ | ||
Line 190: | Line 280: | ||
---- | ---- | ||
+ | ===== Alter datadirectory after installation ===== | ||
+ | |||
+ | <code ini> | ||
+ | ncdir='/ | ||
+ | olddata='/ | ||
+ | newdata='/ | ||
+ | </ | ||
+ | |||
+ | Turn maintenance mode on | ||
+ | |||
+ | <code bash> | ||
+ | sudo -u www-data php " | ||
+ | </ | ||
+ | |||
+ | Move / Copy datadirectory for your purpose. | ||
+ | |||
+ | Change '' | ||
+ | |||
+ | <code bash> | ||
+ | sudo sed -i " | ||
+ | </ | ||
+ | |||
+ | Before change database dataset, backup database for your safety. | ||
+ | |||
+ | Adjust '' | ||
+ | |||
+ | <code mysql> | ||
+ | mysql -u" | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
===== Solved Problems ===== | ===== Solved Problems ===== | ||
- | === mjs configuration error === | + | ==== mjs configuration error ==== |
== Error description == | == Error description == | ||
Line 213: | Line 335: | ||
# } | # } | ||
</ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== PHP imagick module ==== | ||
+ | |||
+ | == Error description == | ||
+ | |||
+ | <text type=" | ||
+ | |||
+ | == Solution == | ||
+ | |||
+ | Install php-imagick moduel with associated packages | ||
+ | |||
+ | <code bash> | ||
+ | sudo apt install php-imagick imagemagick | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Incorrect row format found ==== | ||
+ | |||
+ | == Error description == | ||
+ | |||
+ | <text type=" | ||
+ | |||
+ | == Solution == | ||
+ | |||
+ | Create the script and run with root permission with following: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Prompt for database credentials | ||
+ | read -p "Enter Database Name: " DB_NAME | ||
+ | read -p "Enter Username: " DB_USER | ||
+ | read -s -p "Enter Password: " DB_PASS | ||
+ | echo | ||
+ | |||
+ | # Execute all ALTER TABLE statements in one query | ||
+ | mysql -u " | ||
+ | SELECT CONCAT(' | ||
+ | FROM INFORMATION_SCHEMA.TABLES | ||
+ | WHERE TABLE_SCHEMA = ' | ||
+ | AND ENGINE = ' | ||
+ | " | mysql -u " | ||
+ | |||
+ | </ | ||
+ | |||
+ | ---- |