nano /etc/ssh/sshd_config
PermitRootLogin yes
service ssh restart
apt-get update
apt-get upgrade
apt-get install apache2 mariadb-server libapache2-mod-php php-gd php-json php-mysql php-curl php-mbstring php-intl php-imagick php-xml php-zip
mysql_secure_installation
mysql -uroot -p
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '123@mosigra';
GRANT ALL PRIVILEGES ON `nextcloud`.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
QUIT
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.5.tar.bz2
tar -xvjf nextcloud-13.0.5.tar.bz2
cp -r nextcloud /var/www
mkdir /srv/nextcloud
chown -R www-data:www-data /var/www/nextcloud/
chown -R www-data:www-data /srv/nextcloud/
# rm -Rf /var/www/nextcloud/data
nano /etc/apache2/sites-available/next.mosigra.com.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin tech@mosigra.ru
DocumentRoot /var/www/nextcloud
ServerName next.mosigra.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>
</IfModule>
a2ensite next.mosigra.com.conf
a2enmod rewrite headers env dir mime ssl
service apache2 restart
# переходим в web wizard и настраиваем админа локальный каталог /srv/nextcloud/ и подключение к базе
# далее настройки -> Администрирование -> основные настройки
# и выполняем настройки безопасности
apt-get install memcached php-memcached
nano /var/www/nextcloud/config/config.php
'memcache.local' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
array('localhost', 11211),
),
в этом же файле проверяем trusted_domains
'trusted_domains' =>
array (
0 => 'next.mosigra.com',
),
настройка opcache
nano /etc/php/7.2/apache2/php.ini
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
настроить фоновые задания CRON
crontab -u www-data -e
*/15 * * * * php -f /var/www/nextcloud/cron.php
и поменять это в веб интерфейсе
Настроить Strict-Transport-Security
nano /etc/apache2/conf-enabled/security.conf
Header always set Strict-Transport-Security "max-age=15552000"
service apache2 restart