[NextCloud] NextCloud 12.0 installation with MariaDB and PHP 7.1

Valentine
Valentine

NextCloud puts your data at your fingertips, under your control. You store your photos, calendar, contacts and documents on a server of your choosing, be it at home, a rented server or at one of our providers. Your existing data can stay at that FTP drive at work, Dropbox or a NAS you have at home, while you get at it through NextCloud.

A trusted solution giving you access to all data you care about in one convenient place!

The tutorial was prepared with our "CentOS 7" template and is meant to work on our self-managed virtual private servers.

0. Preliminary requirements:
"CentOS 7" template installed on server;
Fully updates server software (yum update);
"Nano" text editor installed (yum install nano -y).

1. MariaDB installation

yum install mariadb-server

Enable MariaDB to automatically start after server reboot:

systemctl enable mariadb

Start MariaDB:

systemctl start mariadb

Now run the post installation security script:

mysql_secure_installation

When script asks you to enter MariaDB root password, press enter because you have not set the root password yet. Then enter y to set the root password for MariaDB server. And proceed with Enter press to answer all the remaining questions.

2. PHP 7 installation

Since PHP 7.1 is not yet packaged in official repositories for the major distributions, we'll have to rely on a third-party source. We will be using Webtatic YUM repository:

sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Install the new PHP 7 packages from IUS repository:

yum install -y mod_php71w php71w-cli php71w-common php71w-gd php71w-mbstring php71w-mcrypt php71w-mysqlnd php71w-xml

Restart Apache to load the new version of PHP:

systemctl restart httpd

3. Creating MariaDB database and user

Login to your MariaDB:

mysql -u root -p

Create database:

CREATE DATABASE nextcloud;

Create user:

CREATE USER [email protected] IDENTIFIED BY 'your-password';

Grant privileges for user and exit:

GRANT ALL PRIVILEGES ON nextcloud.* to [email protected] IDENTIFIED BY 'your-password';

FLUSH PRIVILEGES;

exit;

4. Enable Binary Logging in MariaDB

nano /etc/my.cnf

Add the following three lines in [mysqld] section:

log-basename=master
log-bin
binlog-format=mixed

Restart MariaDB:

systemctl restart mariadb

5. Download NextCloud files:

Download latest NextCloud package:

wget https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip

Latest release can be found at: https://nextcloud.com/install/#instructions-server

Extract it:

unzip nextcloud-12.0.0.zip

Move files to your Apache directory:

mv nextcloud/* nextcloud/.* /var/www/html/

6. Setting strong directory permissions

Create "permissions.sh" file:

nano permissions.sh

Insert the content:
#!/bin/bash
ncpath='/var/www/html/'
htuser='apache'
htgroup='apache'
rootuser='root'

printf "Creating possible missing Directories\n"
mkdir -p $ncpath/data
mkdir -p $ncpath/assets
mkdir -p $ncpath/updater

printf "chmod Files and Directories\n"
find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ncpath}/
chown -R ${htuser}:${htgroup} ${ncpath}/apps/
chown -R ${htuser}:${htgroup} ${ncpath}/assets/
chown -R ${htuser}:${htgroup} ${ncpath}/config/
chown -R ${htuser}:${htgroup} ${ncpath}/data/
chown -R ${htuser}:${htgroup} ${ncpath}/themes/
chown -R ${htuser}:${htgroup} ${ncpath}/updater/

chmod +x ${ncpath}/occ

printf "chmod/chown .htaccess\n"
if [ -f ${ncpath}/.htaccess ]
then
chmod 0644 ${ncpath}/.htaccess
chown ${rootuser}:${htgroup} ${ncpath}/.htaccess
fi
if [ -f ${ncpath}/data/.htaccess ]
then
chmod 0644 ${ncpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ncpath}/data/.htaccess
fi
Run the file:

bash permissions.sh

7. NextCloud installation

Open your server hostname or IP address in browser and finish the installation.



More information about NextCloud project can be found at: https://nextcloud.com/








Comments

  • Morphin
    Morphin
    Member
    Hi
    Are you sure with Step 5? (mv nextcloud/* nextcloud/.* /var/www/html/)
    I get the following:


    [[email protected] ~]# mv nextcloud/* nextcloud/.* /var/www/html/
    mv: overwrite '/var/www/html/.'? Y
    mv: cannot move 'nextcloud/.' to '/var/www/html/.': Device or resource busy


    May you can look at this issue? That would be great. I made excactly what you wrote. (Otherwise a very good instruction. Thank you very much!!)
    Andy
  • Morphin
    Morphin
    Member
    That is my structure:
    [email protected] ~]# ls -a
    . .. .bash_logout .bash_profile .bashrc .cshrc .mysql_history .pki .tcshrc nextcloud nextcloud-9.0.53.zip setup-ius.sh
    [[email protected] ~]#
  • Morphin
    Morphin
    Member
    Maybe mv nextcloud/{.,}* /var/www/html/ is better?
  • Valentine
    Valentine
    Administrator
    When prompted with a line:
    mv: overwrite '/var/www/html/.'?
    And:
    mv: overwrite '/var/www/html/..'?
    Just press "Enter" do not write "Y" or "y".

    There can be another ways to move everything from "nextcloud" folder to "html" folder.
  • Morphin
    Morphin
    Member
    Thank's Valentine. Great!
  • DaVince
    DaVince
    Member
    These instructions are ancient by now, and the custom installation of PHP 7.0 from this article is obsolete now. A colleague of mine used the instructions, however, and now it's causing conflicts when I want to install NextCloud through yum.

    I'm not too familiar with CentOS, so I don't know how to remove the repository that offers the obsolete PHP 7.0. Could anyone help?
  • Valentine
    Valentine
    Administrator edited August 2
    DaVince said:
    These instructions are ancient by now, and the custom installation of PHP 7.0 from this article is obsolete now. A colleague of mine used the instructions, however, and now it's causing conflicts when I want to install NextCloud through yum.

    I'm not too familiar with CentOS, so I don't know how to remove the repository that offers the obsolete PHP 7.0. Could anyone help?
    You can't follow two or more instructions on the same thing if you are not sure what you're doing. In our instructions there is no NextCloud installation through yum and that is why you get an error.

    We will update this instruction in future with PHP 7.1 and NextCloud 12 version.

    Regarding repository you can simply disable it by opening its file in /etc/yum.repos.d/ and replacing:
    enabled=1

    to

    enabled=0


Sign In or Register to comment.
© 2013 - 2017 Time4VPS. All rights reserved. Powered by Vanilla
The opinions or views of users on the forum are those of the author and not of Time4VPS.