Installing ownCloud 9 on CentOS 7



  • Starting with a clean, minimal install of CentOS, we will want to add additional storage space as this is a file server and using the default storage space would be rather inadequate.

    clone centos 7 owncloud on scale hc3

    make extra block device on scale hc3

    I use a 200GB VirtIO block device here for high performance and decent storage space. In my example I mounted this block device to /data and my example reflects this.

    Installing ownCloud is reasonably straightforward:

    yum -y install wget mariadb-server php-mysql
    yum -y update
    rpm --import https://download.owncloud.org/download/repositories/stable/CentOS_7/repodata/repomd.xml.key
    wget http://download.owncloud.org/download/repositories/stable/CentOS_7/ce:stable.repo -O /etc/yum.repos.d/ce:stable.repo
    setenforce permissive
    yum clean expire-cache
    yum -y install owncloud
    chown -R apache:apache /var/www/html/owncloud
    chown -R apache:apache /data
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --zone=public --add-port=443/tcp --permanent
    firewall-cmd --reload
    systemctl start httpd
    systemctl enable httpd
    

    After this is complete you can access your ownCloud web interface at http://yourserversipaddress/owncloud

    If you are just testing, you can just use SQLite at this point and move on. If you are doing this for production you should use MariaDB either locally (as shown in the example) or externally (often for a very large install.) You can create a database on MariaDB, set the username and password and ownCloud will simply ask for these details in the web setup screens.

    owncloud 9 setup

    Change the Data Folder to /data if you are setting up as I have.



  • Did you use vultr?



  • @aaronstuder said:

    Did you use vultr?

    Scale HC3. If you are looking for cloud hosted, Vultr is pretty ideal for ownCloud and we have built there in the past and have some OC workloads there.

    Vultr does not use the "second" block device, though. You'd see the space as one large pool, not two.



  • What if I want owncloud on the root of the domain?



  • @aaronstuder said:

    What if I want owncloud on the root of the domain?

    I'm not sure that I understand the question.



  • @scottalanmiller said:

    I want domain.com to bring me to the owncloud login, not domain.com/owncloud



  • @aaronstuder said:

    @scottalanmiller said:

    I want domain.com to bring me to the owncloud login, not domain.com/owncloud

    OH!! LOL, that makes sense. I wasn't thinking about that at all.

    Then go into your Apache configuration settings and move the "root" up one level to include the owncloud directory. There will be a line that points to /var/www/html/ and instead change that to /var/www/html/owncloud.

    You can do this after installation is all done. No need to do it during the installation.



  • @scottalanmiller said:

    @aaronstuder said:

    @scottalanmiller said:

    I want domain.com to bring me to the owncloud login, not domain.com/owncloud

    OH!! LOL, that makes sense. I wasn't thinking about that at all.

    Then go into your Apache configuration settings and move the "root" up one level to include the owncloud directory. There will be a line that points to /var/www/html/ and instead change that to /var/www/html/owncloud.

    You can do this after installation is all done. No need to do it during the installation.

    I never have the owncloud instance on the root of a domain so I always use it as a sub domain. Typically oc.domain.com and I have never bothered to remove the owncloud directory.



  • @JaredBusch said:

    I never have the owncloud instance on the root of a domain so I always use it as a sub domain. Typically oc.domain.com and I have never bothered to remove the owncloud directory.

    That's normally what we do. https://oc.companydomain.com/



  • @scottalanmiller said:

    If you are just testing, you can just use SQLite at this point and move on. If you are doing this for production you should use MariaDB either locally (as shown in the example) or externally (often for a very large install.) You can create a database on MariaDB, set the username and password and ownCloud will simply ask for these details in the web setup screens.

    This is really not clear to someone that has not done this before.
    You cannot create the MariaDB instancefrom the GUI. it needs to be done during setup. See my 8.2 documentation for details.



  • Couple of things:

    1. Your missing:

      mkdir /data
      
    2. I hate disabling SELinux - Let's fix it not turn it off 🙂

    3. You should have database setup instructions 🙂



  • You forget to turn on the database 🙂

    systemctl start mariadb
    systemctl enable mariadb


  • @aaronstuder said:

    You forget to turn on the database 🙂

    systemctl start mariadb
    systemctl enable mariadb
    

    No, he did not. he is not using MariaDB in this example.



  • @aaronstuder said:

    Couple of things:

    1. Your missing:

      mkdir /data
      
    2. I hate disabling SELinux - Let's fix it not turn it off 🙂

    3. You should have database setup instructions 🙂

    You are assuming things here that are not true.



  • @aaronstuder said:

    1. I hate disabling SELinux - Let's fix it not turn it off 🙂

    It's just turned off for the install, it's not off in general.



  • @JaredBusch said:

    No, he did not. he is not using MariaDB in this example.

    Then why install it?



  • @aaronstuder said:

    You forget to turn on the database 🙂

    systemctl start mariadb
    systemctl enable mariadb
    

    You'd need to do that for the database creation steps that I mentinoed in the description 🙂



  • @aaronstuder said:

    @JaredBusch said:

    No, he did not. he is not using MariaDB in this example.

    Then why install it?

    Just to have it at the ready.





  • We run with an external MariaDB system. So the third option 🙂



  • What if I want my data encrypted? Is there a option for this?



  • @aaronstuder said:

    What if I want my data encrypted? Is there a option for this?

    Not without ownCloud itself, that would not be the right place as they only handle the application layer. Encryption would be handled by the storage layer which is LVM and XFS here, in Linux. So a good example and, I think, the most likely candidate for this would be using LUKS to encrypt the storage layer. LUKS is very enterprise and included in Linux, so nothing third party. If you use the separate /data block device like I would recommend for production, you can encrypt that without encrypting the / filesystem making things vastly easier.



  • @scottalanmiller Great!

    So I did create /data now how do I encrypt it?



  • @aaronstuder said:

    @scottalanmiller Great!

    So I did create /data now how do I encrypt it?

    I'm going to need to write a whole article on this. It's been a while since I did this. But I did build the encryption infrastructure for a major financial firm, so I'm used to working with it.



  • @scottalanmiller said:

    @aaronstuder said:

    @scottalanmiller Great!

    So I did create /data now how do I encrypt it?

    I'm going to need to write a whole article on this. It's been a while since I did this. But I did build the encryption infrastructure for a major financial firm, so I'm used to working with it.

    What about using a library or something like encfs (https://github.com/vgough/encfs) ?

    I am using it on my Plex server that is connected to my Amazon Cloud Drive. It works well.



  • @dafyre said:

    @scottalanmiller said:

    @aaronstuder said:

    @scottalanmiller Great!

    So I did create /data now how do I encrypt it?

    I'm going to need to write a whole article on this. It's been a while since I did this. But I did build the encryption infrastructure for a major financial firm, so I'm used to working with it.

    What about using a library or something like encfs (https://github.com/vgough/encfs) ?

    I am using it on my Plex server that is connected to my Amazon Cloud Drive. It works well.

    You don't want FUSE if you can avoid it. Why not use the built in system?



  • @scottalanmiller said:

    @dafyre said:

    @scottalanmiller said:

    @aaronstuder said:

    @scottalanmiller Great!

    So I did create /data now how do I encrypt it?

    I'm going to need to write a whole article on this. It's been a while since I did this. But I did build the encryption infrastructure for a major financial firm, so I'm used to working with it.

    What about using a library or something like encfs (https://github.com/vgough/encfs) ?

    I am using it on my Plex server that is connected to my Amazon Cloud Drive. It works well.

    You don't want FUSE if you can avoid it. Why not use the built in system?

    I was testing out a guide using EncFS to encrypt data stored on Amazon Cloud. It works, so I haven't bothered with changing it, lol.

    What are the built-in options? I'm not aware of disk / partition encryption options on Linux these days.



  • dm-crypt is the system in the kernel. Been there since 2.6.



  • Just did a new internal install with this as well. Using CentOS 7, adding the REMI Repos and moved to PHP7 and added the memory cache. Also using an external MariaDB database, also on CentOS 7.



  • @scottalanmiller said:

    Just did a new internal install with this as well. Using CentOS 7, adding the REMI Repos and moved to PHP7 and added the memory cache. Also using an external MariaDB database, also on CentOS 7.

    PHP 7? that is not in the normal Remi repos. That was still beta in the repo i thought.