Skip to content

Install OwnCloud4 on Debian12

Linux Systems Guides
  • sudo apt install lsb-release ca-certificates curl -y
    

    GPG key and repo for php 7.4

    sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
    
    sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
    

    Update the system with the new repository in place

    sudo apt update
    

    Install the dependencies for OwnCloud (LAMP ect) Certbot, or LetsEncrypt is being installed as well, if you are using this installation in a public domain

    sudo apt install apache2 mariadb-server imagemagick certbot python3-certbot-apache smbclient redis-server unzip rsync libapache2-mod-php7.4 php7.4 php7.4-intl php7.4-mysql php7.4-mbstring php7.4-imagick php7.4-igbinary php7.4-gmp php7.4-bcmath php7.4-curl php7.4-gd php7.4-zip php7.4-imap php7.4-ldap php7.4-bz2 php7.4-ssh2 php7.4-common php7.4-json php7.4-xml php7.4-dev php7.4-apcu php7.4-redis libsmbclient-dev php-pear php-phpseclib
    

    Enable apache2 and then verify it’s status

    sudo systemctl is-enabled apache2
    
    sudo systemctl status apache2
    

    oc-apache.png Enable MariaDB and verify status

    sudo systemctl is-enabled mariadb
    
    sudo systemctl status mariadb
    

    oc-maria.png Enable Redis and verify status

    sudo systemctl is-enabled redis
    
    sudo systemctl status redis
    

    oc-redis.png

    Configure default php version

    sudo update-alternatives --config php
    

    oc-php-alternatives.png oc-php-ver.png

    Configure php OwnCloud dependencies

    sudo update-alternatives --set phar /usr/bin/phar7.4
    
    sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
    
    sudo update-alternatives --set phpize /usr/bin/phpize7.4
    
    sudo update-alternatives --set php-config /usr/bin/php-config7.4
    

    Upgrade Pear to OwnCloud4 requirements

    sudo mkdir -p /tmp/pear/cache
    
    sudo pear upgrade --force --alldeps http://pear.php.net/get/PEAR-1.10.13
    

    oc-pear-up.png

    sudo pear clear-cache
    
    sudo pear update-channels
    
    sudo pear upgrade --force
    
    sudo pear upgrade-all
    

    Verify Pear version

    pear version
    

    oc-pear-ver.png

    Configure MariaDB

    sudo mariadb-secure-installation
    

    oc-mariadb-setup.png

    Log into MariaDB

    sudo mariadb -u root -p
    

    Create the OwnCloud database:

    This is where many go wrong, we do not use ‘password’ we replace password, with our own password.

    CREATE DATABASE owncloud;
    

    We just created a database with the name owncloud

    CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'password';
    

    We just created a database user called owncloud

    GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
    

    We just allowed user owncloud, full privileges on database owncloud

    FLUSH PRIVILEGES;
    

    Now verify what we have just done:

    SHOW GRANTS FOR 'owncloud'@'localhost';
    

    You can see below I named this database ‘oc’ and the ‘oc’ user has privileges on database ‘owncloud’

    oc-db-priv.png

    quit;
    

    wget the OwnCloud source

    cd /var/www
    
    wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
    

    Grab sha256 to verify the download

    wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256
    

    BEFORE installing, verify if the download of OwnCloud matches what the OwnCloud team wanted you to have, this is important always.

    sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2
    

    Out put should say ‘OK’ if everything matches.

    Change ownership of the directory to www-data user.

    sudo chown -R www-data:www-data /var/www/owncloud
    

    Configure Vhost for OwnCloud

    This will open a new file in 'sites-available and name this file ‘owncloud.conf’

    Change the ServerName and ServerAlias, as well as log file names, to whatever your domain is. There are many ways to do this keep in mind.

    sudo nano /etc/apache2/sites-available/owncloud.conf
    
    <VirtualHost *:80>
      ServerName oc
      ServerAlias www.oc
    
      DocumentRoot /var/www/owncloud
      
      ErrorLog ${APACHE_LOG_DIR}/oc.io-error.log
      CustomLog ${APACHE_LOG_DIR}/oc.io-access.log combined
    
      Alias /owncloud "/var/www/owncloud/"
    
      <Directory /var/www/owncloud/>
        Options +FollowSymlinks
        AllowOverride All
    
        <IfModule mod_dav.c>
        Dav off
        </IfModule>
    
        SetEnv HOME /var/www/owncloud
        SetEnv HTTP_HOME /var/www/owncloud
    
      </Directory>
     
    </VirtualHost>
    

    Enable and verify the owncloud vhost

    sudo a2ensite owncloud.conf
    
    sudo apachectl configtest
    

    oc-apache.png


    Now install OwnCloud

    Change the database name, user, and password to whatever you named the OwnCloud database earlier;

    Change the ‘admin user’ and ‘admin pass’ to whatever you want the new OwnCloud admin account to be.

    sudo -u www-data /var/www/owncloud/occ maintenance:install \
       --database "mysql" \
       --database-name "owncloud" \
       --database-user "owncloud"\
       --database-pass "password" \
       --admin-user "admin" \
       --admin-pass "your new owncloud admin password"
    

    Edit the OwnCloud config file to add the domain you used earlier in the Apache2 vhost file:

    sudo nano /var/www/owncloud/config/config.php
    
    'trusted_domains' =>
      array (
        0 => 'localhost',
        1 => 'whatever your domain is goes here',
      ),
    

    Personally I restart the server at this point, which will restart all services. Then visit the domain / IP of your settings and you should see the OwnCloud login page. Use the credentials you setup for the admin user.


    System cron setting:

    sudo crontab -u www-data -e
    
    */15  *  *  *  * /usr/bin/php -f /var/www/owncloud/occ system:cron
    

    Memcache with Redis we installed earlier:

    sudo nano /var/www/owncloud/config/config.php
    
        'filelocking.enabled' => true,
        'memcache.local' => '\OC\Memcache\APCu',
        'memcache.locking' => '\OC\Memcache\Redis',
        'redis' => [
            'host' => 'localhost',
            'port' => 6379,
        ],
    

    Go restart the server again and enjoy!

FreeBSD Notes
  • rickR

    Screen recording can use webm as their format, it can be more simple to use a gif to embed into a website or forum, than adding scripts to host different video format.

    In this case I grabbed a screen record of the progress for writing zeros to a hard drive with dd

    Use ffmpeg to convert webm to gif:

    First create a pallet:

    Move into the directory which the webm is located, or type in the path

    Where ‘dd.webm’ is the screen recording

    ffmpeg -y -i dd.webm -vf palettegen palette.png

    Output:

    dd-ffmpeg.png

    Then convert the webm to gif:

    ffmpeg -y -i dd.webm -i palette.png -filter_complex paletteuse -r 10 dd.gif

    dd-webm-2.png

    This is what I ended up with, looks like any image of any alien on the interwebz, as if shot through a potato, some tweaking of the command is in my future. None the less.

    dd.gif

    read more

  • rickR

    Write zeros to all sectors

    Use the command ‘lsblk’ to find the drive you wish to erase

    I’m using ‘dd’ to erase things

    In this case I’m torching sdb

    Only use status=progress if you care it’s not necessary

    dd if=/dev/zero of=/dev/sdb bs=12M status=progress

    dd.gif

    read more

  • rickR

    Remove old kernel images that are cluttering the system

    zstd-no-space-error.png

    Most of these errors are due to low or not enough space left in the root partition.

    If you are using a Debian flavor:

    sudo apt-get autoremove --purge

    zstd-error.png

    Inform grub whenever an old kernel is removed:

    update grub

    update-grub.png

    Remove the un-used kernel config files:

    These will be the files pre cursed as ‘rc’ where installed kernels use ‘ii’

    … As well as files no longer used or required due to dependencies

    This command will detect, print, and remove left over cruft from previously installed packages or scripts, that have been removed or updated.

    sudo dpkg --purge $(dpkg -l | awk '/^rc/{print $2}')

    purge.png

    You can re-run the following to view the installed kernel(s):

    dpkg --list | grep linux-image

    installed-kernels.png

    read more

  • rickR

    To list all files in current directory including dot files (hidden files or directories), as well as print permissions :

    ls -la
    read more

  • rickR
    Install Ruby on Debian

    Install rbenv

    sudo apt install rbenv

    Then initialize the environment:

    rbenv init

    rbenv-init.png

    nano ~/.bashrc

    Type or paste the output above, Ctrl +x to save

    Apply:

    source .bashrc

    Install ruby-build

    Install git:

    sudo apt install git

    install-git.png

    mkdir -p "$(rbenv root)"/plugins

    Clone to local:

    git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build

    clone-ruby.png

    curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash

    ruby-doctor.png

    Now install Ruby:

    print ruby versions available

    rbenv install --list

    rb-list.png

    Install the latest version unless you have a reason otherwise:

    rbenv install 3.3.0

    On this system there was an error compiling at this point with fiddle, as well as psych: ruby-failed.png

    Therefore manually installing the following filled dependencies

    sudo apt install libtool sudo apt install libffi-dev

    rb-compile.png

    rbenv global 3.3.0

    print installed ruby version

    ruby -v

    ruby-version-installed.png

    read more