1. prereqs

source /etc/cid.conf
export php="8.1"
curl -ns http://${rdsserver}/sharel/bin/inst-httpd | sh
curl -ns http://${rdsserver}/sharel/bin/inst-mariadb-server | sh
yum -y install \
       php-apcu \
       php-bcmath \
       php-ctype \
       php-curl \
       php-gd \
       php-gmp \
       php-iconv \
       php-imagick \
       php-intl \
       php-json \
       php-libxml \
       php-mysqlnd \
       php-openssl \
       php-pdo \
       php-posix \
       php-redis \
       php-session \
       php-xml \
       php-zip \
       php-zlib \
       redis
wget -N -nv http://${rdsserver}/sharel/etc/php.d/10-opcache.ini -P /etc/php.d/
wget -N -nv http://${rdsserver}/sharel/etc/php.d/99-nextcloud.ini -P /etc/php.d/
systemctl enable php-fpm.service redis.service
systemctl restart httpd.service php-fpm.service redis.service

2. installation

source /etc/cid.conf
wget -Nq --show-progress https://download.nextcloud.com/server/releases/latest.zip -P /tmp/
unzip -q /tmp/latest.zip -d /opt/
rm -f /tmp/latest.zip
chown apache:apache /opt/nextcloud/ -R
wget -N -nv http://${rdsserver}/sharel/etc/httpd/conf.d/nextcloud.conf -P /etc/httpd/conf.d/
cube /etc/httpd/conf.d/nextcloud.conf "%dnsdomainname%" with "$(dnsdomainname)"
systemctl reload httpd.service
mkdir -p /data1/opt/nextcloud/data
chown apache:apache -R /data1/opt/nextcloud/data/

3. configuration

rm -fr /data1/opt/nextcloud/data/* /opt/nextcloud/config/config.php
mysql -u"root" -p"Passw0rd" -e "drop database if exists nextcloud;"
mysql -u"root" -p"Passw0rd" \
      -e "create database if not exists nextcloud character set utf8 collate utf8_bin;"
mysql -u"root" -p"Passw0rd" -e "grant all privileges on nextcloud.* to 'oc_admin'@'%' identified by 'Passw0rd';"
mysql -u"root" -p"Passw0rd" -e "grant all privileges on nextcloud.* to 'oc_admin'@'localhost' identified by 'Passw0rd';"
mysql -u"root" -p"Passw0rd" -e "flush privileges;"
sudo -u apache php /opt/nextcloud/occ maintenance:install \
     --database "mysql" \
     --database-host "localhost" --database-port "3306" \
     --database-name "nextcloud" \
     --database-user "oc_admin" --database-pass "Passw0rd" \
     --admin-user "admin" --admin-pass "Passw0rd" \
     --admin-email "remon@warpit.be" \
     --data-dir "/data1/opt/nextcloud/data/"
prvline="    0 => 'localhost',"
newline="    1 => '*',"
sed -i "s/${prvline}/${prvline}\n${newline}/" /opt/nextcloud/config/config.php

4. mysql tables upgrade (optional)

sudo -u apache php /opt/nextcloud/occ db:convert-filecache-bigint

5. upgrade

sudo -u apache php /opt/nextcloud/occ upgrade

6. references

7. bug

Error while trying to create admin user: Failed to connect to the database:
An exception occurred in driver: SQLSTATE[HY000] [1045]
Access denied for user 'oc_admin'@'localhost' (using password: YES)
mysql -u"root" -p"Passw0rd" -e "select user,host,grant_priv from mysql.user;"

8. xtras

8.1. ldap

./pic/nc01.png

./pic/nc02.png

./pic/nc03.png

./pic/nc04.png

9. aftercares

  • enable email authentication

10. references