NextCloud, come suggerisce il nome, è un'alternativa promettente a un'altra soluzione di hosting di file open source OwnCloud.
In questo articolo, ti mostrerò come installare NextCloud su un'istanza del server Vultr CentOS 7.
Prerequisiti
- Un'istanza del server Vultr CentOS 7 appena creata.
- Un utente sudo per l'accesso.
Passaggio 1: aggiornare il sistema
Accedere al sistema CentOS 7 come utente sudo, quindi aggiornare il sistema all'ultimo stato stabile:
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Dopo il riavvio, utilizzare ancora lo stesso utente sudo per accedere.
Passaggio 2: installare Apache
Installa Apache come server web per NextCloud:
sudo yum install httpd -y
Disabilita la pagina di benvenuto di Apache preimpostata:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Per motivi di sicurezza, impedire ad Apache di visualizzare i contenuti nella directory principale del Web /var/www/html:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Impedire ad Apache di caricare i moduli WebDAV, come richiesto da NextCloud:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.modules.d/00-dav.conf
Avviare il servizio Apache e avviarlo all'avvio:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Passaggio 3: installa PHP e le estensioni PHP necessarie
NextCloud consiglia di utilizzare PHP 5.6. Qui puoi installare PHP 5.6 e le estensioni PHP necessarie usando il repository IUS YUM.
Installa il repository IUS YUM:
cd
wget https://centos7.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release.rpm
Installa PHP 5.6 e le estensioni necessarie usando il repository IUS YUM:
sudo yum install php56u php56u-common php56u-xml php56u-gd php56u-mbstring php56u-process php56u-mysqlnd php56u-intl php56u-mcrypt php56u-imap php56u-cli -y
Aumenta le dimensioni del file di caricamento su un valore appropriato, ad esempio 50 MB:
sudo cp /etc/php.ini /etc/php.ini.bak
sudo sed -i "s/post_max_size = 8M/post_max_size = 50M/" /etc/php.ini
sudo sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/" /etc/php.ini
Riavvia Apache per applicare le modifiche sopra:
sudo systemctl restart httpd.service
Passaggio 4: installare MariaDB e configurare un database per NextCloud
Installa MariaDB:
sudo yum install mariadb mariadb-server -y
Avviare il servizio MariaDB e avviarlo all'avvio:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Installazione sicura di MariaDB:
sudo /usr/bin/mysql_secure_installation
Durante il processo, rispondi alle domande una ad una come di seguito:
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Ora è il momento di configurare un database per NextCloud:
mysql -u root -p
Immettere la password di root MariaDB impostata in precedenza per accedere.
Nella shell MySQL, è necessario creare un database e un utente del database, quindi concedere i privilegi a questo utente del database.
Utilizzare i seguenti comandi per terminare il lavoro. Assicurarsi di sostituire il nome del database "nextcloud", il nome utente del database "nextclouduser" e la password dell'utente del database "yourpassword" in ogni comando con i propri.
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Passaggio 5: installare NextCloud
Scarica l'ultima versione stabile di NextCloud dal suo sito ufficiale. Al momento in cui scrivo, l'ultimo numero di versione stabile è 9.0.53.
cd
wget https://download.nextcloud.com/server/releases/nextcloud-9.0.53.zip
Decomprimi l'archivio NextCloud:
sudo yum install unzip -y
unzip nextcloud-9.0.53.zip
Spostare tutti i file NextCloud nella directory principale Web, quindi concedere loro le autorizzazioni appropriate:
sudo mv nextcloud/* /var/www/html && sudo chown apache:apache -R /var/www/html
Installa NextCloud dall'interfaccia della riga di comando con i seguenti parametri di esempio. Assicurati di sostituirli con i tuoi.
- nome-database: nextcloud
- database-user: nextclouduser
- database-pass: yourpassword
- admin-user: admin
- admin-pass nextcloudadminpassword
Correre:
cd /var/www/html/
sudo -u apache php occ maintenance:install --database "mysql" --database-name "nextcloud" --database-user "nextclouduser" --database-pass "yourpassword" --admin-user "admin" --admin-pass "nextcloudadminpassword"
Se tutto va bene, l'output leggerà:
Nextcloud is not installed - only a limited number of commands are available
ownCloud was successfully installed
Aggiungi il tuo IP del server (supponiamo che sia 203.0.113.1) e il nome del dominio (supponiamo che sia www.example.com) all'elenco dei domini attendibili di NextCloud:
sudo vi /var/www/html/config/config.php
Trova la linea:
0 => 'localhost',
Inserisci le seguenti due righe proprio sotto di essa:
1 => '203.0.113.1',
2 => 'www.example.com',
Salva ed esci:
:wq!
Per motivi di sicurezza, è necessario impostare autorizzazioni forti per i file e le directory Nextcloud dopo l'installazione:
sudo find /var/www/html -type f -print0 | sudo xargs -0 chmod 0640
sudo find /var/www/html -type d -print0 | sudo xargs -0 chmod 0750
sudo chown -R root:apache /var/www/html
sudo chown -R apache:apache /var/www/html/apps
sudo chown -R apache:apache /var/www/html/config
sudo chown -R apache:apache /var/www/html/data
sudo chown -R apache:apache /var/www/html/themes
sudo chown -R apache:apache /var/www/html/updater
sudo chmod 0644 /var/www/html/.htaccess
sudo chown root:apache /var/www/html/.htaccess
sudo chmod 0644 /var/www/html/data/.htaccess
sudo chown root:apache /var/www/html/data/.htaccess
Inoltre, ricorda che esiste una directory che non è stata creata con il nome /var/www/html/assets. Se si crea questa directory in futuro, è necessario eseguire anche il comando seguente:
sudo chown -R apache:apache /var/www/html/assets
Queste impostazioni aiutano a prevenire l'accesso non autorizzato a NextCloud.
Nota: se è necessario aggiornare NextCloud in futuro, è possibile allentare temporaneamente le autorizzazioni utilizzando il comando seguente:
sudo chown apache:apache -R /var/www/html
Dopo l'aggiornamento, imposta ancora permessi forti come sopra.
Riavvia Apache per rendere effettive le modifiche:
sudo systemctl restart httpd.service
Modifica le regole del firewall per consentire l'accesso ai visitatori:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Questo è tutto. Ora puoi puntare il tuo browser Web http://203.0.113.1e utilizzare l'account amministratore NextCloud per accedere.
Grazie per aver letto.