This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
computing:nextcloud [2019/06/15 23:47] – oemb1905 | computing:nextcloud [2023/12/16 23:50] – oemb1905 | ||
---|---|---|---|
Line 11: | Line 11: | ||
------------------------------------------- | ------------------------------------------- | ||
- | This tutorial is for users of Debian GNU/ | + | This tutorial is for a Nextcloud instance on Debian GNU/ |
- | sudo apt install | + | sudo apt install |
| | ||
- | Ok, now let's download Nextcloud 15.x and proceed as follows, assuming you have left the webroot in / | + | Or ... |
| | ||
- | | + | sudo apt-get install php-{xml, |
- | | + | |
- | sudo unzip nextcloud-15.0.8.zip | + | Once these are installed, make sure you can enable them and that you have no errors in your configurations: |
- | | + | |
- | sudo mv / | + | |
- | sudo mv / | + | |
- | sudo rm -r nextcloudsudo -u www-data php occ db:convert-filecache-bigint | + | |
- | sudo -u www-data php occ db: | + | |
- | sudo rm nextcloud-15.0.8.zip | + | sudo a2enmod ssl |
- | sudo chown www-data: | + | sudo a2enmod headers |
- | sudo mkdir / | + | sudo a2enmod proxy_fcgi |
- | sudo chown www-data: | + | sudo a2enmod setenvif |
- | sudo mkdir assets | + | sudo a2enconf php8.2-fpm |
- | sudo mkdir data | + | sudo a2enconf php8.2-cgi |
+ | sudo sudo apache2ctl configtest | ||
+ | |||
+ | There may be some others for your use case. | ||
+ | |||
+ | cd / | ||
+ | sudo wget https:// | ||
+ | sudo unzip latest.zip | ||
+ | sudo rm latest.zip | ||
+ | sudo rm public_html | ||
+ | sudo mv nextcloud public_html | ||
+ | cd public_html | ||
+ | sudo chown www-data: | ||
+ | sudo mkdir /var/www/ | ||
+ | sudo chown www-data: | ||
+ | sudo chmod 750 -R / | ||
+ | sudo mkdir -p / | ||
sudo chmod 0640 *.php *.txt *.html AUTHORS COPYING | sudo chmod 0640 *.php *.txt *.html AUTHORS COPYING | ||
- | sudo chmod 0750 {3rdparty, | + | sudo chmod 0750 {3rdparty, |
- | sudo chown root: | + | sudo chown root: |
- | sudo chown www-data: | + | sudo chown www-data: |
- | sudo chmod 0755 /var/www/html/occ | + | sudo chmod 0755 /var/www/nextcloud.jonathanhaack.com/ |
- | sudo chmod 0644 /var/www/html/ | + | sudo chmod 0644 /var/www/nextcloud.jonathanhaack.com/ |
- | sudo chown root: | + | sudo chown root: |
sudo systemctl restart mysql | sudo systemctl restart mysql | ||
sudo systemctl restart mysqld | sudo systemctl restart mysqld | ||
sudo systemctl restart apache2 | sudo systemctl restart apache2 | ||
- | sudo systemctl restart php7.0-fpm.service | + | sudo systemctl restart php7.3-fpm.service |
- | Prepate | + | Prepare |
- | sudo nano mariadb.conf.d/ | + | sudo nano /etc/mysql/mariadb.conf.d/ |
| | ||
Once inside that file, copy these configurations under the [mysqld] block and restart the service: | Once inside that file, copy these configurations under the [mysqld] block and restart the service: | ||
Line 58: | Line 69: | ||
sudo mysql -u root -p | sudo mysql -u root -p | ||
- | Enter your password for sudo and then for MySQL. | + | Enter your password for sudo and then for MySQL. |
- | | + | CREATE DATABASE nextcloud; |
- | | + | CREATE USER nextclouduser@localhost IDENTIFIED BY ' |
- | | + | GRANT ALL PRIVILEGES ON nextcloud.* to nextclouduser@localhost IDENTIFIED BY ' |
- | | + | FLUSH PRIVILEGES; |
- | | + | EXIT; |
- | Okay, you can now proceed to the website test.com and make finish the remaining set up using the Nextcloud website that is now active. | + | Let's first restart the web server, php, and mysql: |
| | ||
sudo systemctl restart mysql | sudo systemctl restart mysql | ||
sudo systemctl restart apache2 | sudo systemctl restart apache2 | ||
+ | sudo systemctl restart php7.3-fpm.service | ||
- | Ok, now that those services are restarted, you should be able to access your website. | + | Now, visit test.com in your browser |
- | * create new user name: < | + | * create new user name: adminname |
- | * create new user pass: <this is public facing and is the admin user, so make it a bit beefy> | + | * create new user pass: password |
- | * specify data folder: /var/www/test.com/ | + | * specify data folder: / |
- | * database user name: nextcloud | + | * database user name: nextclouduser |
* database name: nextcloud | * database name: nextcloud | ||
* database location: localhost | * database location: localhost | ||
- | Once you are done, you can now use Nextcloud at will. | + | The first thing to do is to navigate to Settings, Overview. |
- | + | ||
- | Nextcloud offered this: | + | |
- | + | ||
- | sudo find / | + | |
- | sudo find / | + | |
- | + | ||
- | But that gives me errors, so I developed this (also two lines), from within ServerRoot... | + | |
- | + | ||
- | cd / | + | |
- | sudo chmod 0640 *.php *.txt *.html AUTHORS COPYING | + | |
- | sudo chmod 0750 {3rdparty, | + | |
- | sudo chown -R root: | + | |
- | sudo chown www-data: | + | |
- | sudo chmod 0755 / | + | |
- | sudo chmod 0644 / | + | |
- | sudo chown root: | + | |
- | + | ||
- | And finally you have an instance ... [[https:// | + | |
- | + | ||
- | Update: | + | |
- | nano /etc/php/7.0/ | + | |
| | ||
- | The settings | + | I entered the following |
| | ||
opcache.enable=1 | opcache.enable=1 | ||
opcache.enable_cli=1 | opcache.enable_cli=1 | ||
- | opcache.interned_strings_buffer=8 | + | opcache.interned_strings_buffer=16 |
opcache.max_accelerated_files=10000 | opcache.max_accelerated_files=10000 | ||
opcache.memory_consumption=128 | opcache.memory_consumption=128 | ||
Line 114: | Line 106: | ||
opcache.revalidate_freq=1 | opcache.revalidate_freq=1 | ||
- | Adjust the memory limit for php by finding the line `memory_limit = ` and changing it to 1G: | + | To adjust php memory limit and post size, navigate |
- | sudo nano /etc/php/7.2/ | + | sudo nano /etc/php/7.3/ |
+ | sudo nano / | ||
+ | sudo nano / | ||
+ | sudo nano / | ||
+ | upload_max_filesize=2G | ||
+ | post_max_size=2G | ||
+ | memory_limit=512M | ||
+ | |||
+ | Next, adjust your max age header in your ssl vhost: | ||
- | Find the `memory_limit = ` line and change the value to 1G. | + | sudo nano / |
+ | <Header | ||
- | sudo nano /etc/ | + | Enable overrides so that cal/card dav will work without cumbersome vhost entries: |
- | Add the following Header parameter with the other parameters, or anywhere before | + | sudo nano / |
+ | < | ||
+ | |||
+ | If you do not want to allow overrides, then manually set the redirects for cal/card dav as follows: | ||
- | | + | |
+ | < | ||
+ | < | ||
- | Lastly, | + | Lastly, |
- | sudo nano /etc/apache2/apache2.conf | + | sudo -u www-data php occ db: |
+ | |||
+ | To configure cron to refresh php every 5 minutes: | ||
+ | |||
+ | sudo crontab -e -u www-data | ||
+ | < | ||
+ | <*/5 * * * * php -f /var/www/ | ||
| | ||
- | Scroll down to the web server root section and adjust it to read as follows: | + | To fine tune php: |
- | | + | |
- | | + | |
- | | + | |
- | | + | For a 4GB server: |
- | | + | |
+ | pm = dynamic | ||
+ | pm.max_children = 120 | ||
+ | pm.start_servers = 12 | ||
+ | pm.min_spare_servers = 6 | ||
+ | pm.max_spare_servers = 18 | ||
+ | |||
+ | For a 1GB server, use defaults: | ||
- | Also, your cal and card dav need redirects for some reasons a bit unclear to me, so adjust your ssl.conf as follows: | + | pm = dynamic |
+ | pm.max_children = 5 | ||
+ | pm.start_servers = 2 | ||
+ | pm.min_spare_servers = 1 | ||
+ | pm.max_spare_servers = 3 | ||
- | | + | To reset permissions after an update: |
+ | cd / | ||
+ | | ||
+ | sudo chown www-data: | ||
+ | sudo chmod 0640 *.php *.txt *.html AUTHORS COPYING | ||
+ | sudo chmod 0750 {3rdparty, | ||
+ | sudo chown root: | ||
+ | sudo chown www-data: | ||
+ | sudo chmod 0755 / | ||
+ | sudo chmod 0644 / | ||
+ | sudo chown root: | ||
+ | sudo systemctl restart mysql | ||
+ | sudo systemctl restart mysqld | ||
+ | sudo systemctl restart apache2pm = dynamic | ||
+ | sudo systemctl restart php7.3-fpm.service | ||
+ | |||
+ | Need to manually move files from an old NAS or elsewhere to Nextcloud: | ||
+ | |||
+ | sudo -u www-data php / | ||
+ | sudo -u www-data php occ files:scan --path=/ | ||
+ | sudo -u www-data php occ files:scan --path=/ | ||
+ | sudo -u www-data php occ files:scan --help | ||
+ | |||
+ | Okay, and for Nextcloud Talk configuration, | ||
+ | |||
+ | sudo apt install coturn | ||
+ | sudo nano / | ||
+ | openssl rand -hex 32 | ||
| | ||
- | Place the following redirects after < | + | The Nextcloud [[https://nextcloud-talk.readthedocs.io/ |
- | | + | |
- | | + | |
+ | use-auth-secret | ||
+ | static-auth-secret=< | ||
+ | realm=your.domain.org | ||
+ | total-quota=100 | ||
+ | bps-capacity=0 | ||
+ | stale-nonce | ||
+ | no-multicast-peers | ||
+ | systemctl restart coturn | ||
| | ||
- | Okay, that is the majority of fundamental configuration details required | + | After doing this, go to Nextcloud / Settings / Talk, and enter localhost: |
- | sudo apt install php7.0-apcu | + | sudo nano /etc/php/7.3/ |
+ | sudo nano / | ||
+ | sudo nano / | ||
+ | sudo nano / | ||
+ | max_excution_time = 240 (for all of them) | ||
- | After installing | + | If you get the missing indexes error on an upgrade, use: |
- | sudo nano /var/www/ | + | sudo -u www-data php occ db:add-missing-indices |
- | + | ||
- | Add the following line to the config file so that Nextcloud knows which program is handling your caching: | + | |
- | | + | Brute force won't permit log in |
- | Lastly, I ran into an error that stated that the database | + | select |
+ | delete FROM oc_bruteforce_attempts; | ||
+ | flush privileges; | ||
+ | exit; | ||
+ | |||
+ | Log in normally after that. | ||
- | sudo systemctl stop apache2 | + | sudo -u www-data php occ trashbin: |
- | | + | |
+ | Phone region issue | ||
- | Now that your service is sudo -u www-data php occ db: | + | |
- | stopped, you can safely run Netcloud' | + | |
- | sudo -u www-data php occ db: | + | New weird error about svg support for phpimagick |
- | Follow the prompts, and then run it again once it completes in order to verify that "All tables are already up to date!" | + | sudo apt install libmagickcore-6.q16-6-extra |
| | ||
- | sudo systemctl restart mysql | + | Upgrade & Update: |
- | sudo systemctl restart mysqld | + | |
- | sudo systemctl restart apache2 | + | |
- | sudo systemctl restart php7.0-fpm.service | + | |
- | sudo reboot | + | |
- | Happy clouding | + | cd / |
+ | sudo -u www-data php occ upgrade | ||
+ | cd / | ||
+ | sudo -u www-data php updater.phar | ||
+ | |||
+ | Use redis for everything except local memcache which uses apcu. Also, in this configuration, | ||
- | sudo a2enmod ssl | + | sudo apt install redis memcached php-apcu php-redis redis-server php-memcache php-memcached |
- | sudo a2enmod headers | + | sudo apt install |
- | sudo a2enconf ssl-params | + | |
- | sudo a2enmod proxy_fcgi setenvif | + | |
- | sudo a2enconf php7.0-fpm | + | |
- | All the best ... | + | Then, right underneath |
+ | |||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | |||
+ | |||
+ | Configure apcu in php mods: | ||
+ | |||
+ | sudo nano / | ||
+ | < | ||
+ | |||
+ | To get Social working, these rewrite rules are needed. However, these need to actually point to a .well-known directory which is configured properly. If, however, override All did not make that or your instance was upgraded and does not have it, these rewrites in .htaccess will not be enough on their own. | ||
+ | |||
+ | RewriteRule ^\.well-known/ | ||
+ | RewriteRule ^\.well-known/ | ||
+ | |||
+ | Enable rotation of logs, delete the log contents (removes errors from admin settings GUI) | ||
- | -- -- -- -- -- | + | ' |
- | This tutorial is a designated " | + | This will put the logs on a schedule and remove old errors in due time. |
- | --- //[[netcmnd@jonathanhaack.com|oemb1905]] | + | --- //[[jonathan@haacksnetworking.org|oemb1905]] |