Alpine 安装 Nextcloud

记录 Apline 安装 LAMP 栈,部署 Nextcloud 开源网盘。

更换为国内源。

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
apk update

安装 sshd 。(可选)

apk add openssh
service sshd start
rc-update add sshd

安装 LAMP Stack

安装 Apache PHP Mariadb。

apk add apache2 apache2-ssl apache2-proxy apache-mod-fcgid apache2-http2 mariadb mariadb-client php83 php83-apache2 php83-pdo_mysql

安装 Nextcloud 相关 PHP 模块

apk add php83-common php83-ctype php83-curl php83-dom php83-fileinfo php83-gd php83-json php83-xml php83-mbstring php83-openssl php83-posix php83-session php83-simplexml php83-xmlreader php83-xmlwriter php83-zip php83-bz2 php83-intl php83-pecl-imagick php83-gmp php83-bcmath php83-pcntl php83-sodium php83-opcache php83-exif php83-sysvsem imagemagick-svg icu-data-full

配置数据库

rc-service mariadb setup
rc-service mariadb start
mysql_secure_installation

安装 Nextcloud

下载最新的 Nextcloud ,设置权限。

wget https://download.nextcloud.com/server/releases/latest.zip
tar -xjvf latest.tar.bz2 -C /srv
chown -R apache:apache /srv/nextcloud

创建 Nextcloud 数据库

mysql -u root -p

替换 usernamepassword

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
EXIT

配置 Apache

上传 SSL 证书到 /etc/ssl/your.server.com 文件夹。 修改 your.server.com

cat > /etc/apache2/conf.d/nextcloud.conf <<EOF
<VirtualHost *:80>
   ServerName your.server.com
   Redirect permanent / https://your.server.com/
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /srv/nextcloud/
  ServerName  your.server.com
  <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  </IfModule>

  SSLEngine on
  SSLCertificateFile /etc/ssl/your.server.com/fullchain.pem
  SSLCertificateKeyFile /etc/ssl/your.server.com/privkey.pem

  <Directory /srv/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>
EOF

启用 rewrite 模块。 编辑 etc/apache2/httpd.conf ,搜索 rewrite_module,取消注释。

sed -i 's@^#LoadModule rewrite_module modules/mod_rewrite\.so@LoadModule rewrite_module modules/mod_rewrite.so@' /etc/apache2/httpd.conf

启动 LAMP

启动服务并添加自启服务。

rc-service apache2 start

rc-update add apache2
rc-update add mariadb

优化

PHP 内存限制

修改 /etc/php83/php.ini 。查找 memory_limit ,改为大于等于 512M 的值。

大文件上传

修改 /srv/nextcloud/.user.ini ,添加下面内容。

upload_max_filesize=16G
post_max_size=16G
max_input_time=3600
max_execution_time=3600

客户端修改

Windows 客户端修改 %APPDATA%\Nextcloud\nextcloud.cfg,[General] 下添加:

maxChunkSize=99999999

使用内存缓存

apk add php83-pecl-apcu

修改 Nextcloud 配置,设置 apcu。

vi /srv/nextcloud/config/config.php

添加一行。

  'memcache.local' => '\OC\Memcache\APCu',

配置 Redis 事务文件锁定

apk add redis php83-pecl-redis
addgroup apache redis
rc-service redis start
rc-update add redis

修改 Nextcloud 配置,设置 Redis。

  'filelocking.enabled' => true,
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => array(
       'host' => '/var/run/redis/redis.sock',
       'port' => 0,
       'timeout' => 0.0,
        ),

配置后台服务

crontab -u apache -e

添加一行。

*/5  *  *  *  * php83 --define apc.enable_cli=1 -f /srv/nextcloud/cron.php

修改 Nextcloud 配置。

  'maintenance_window_start' => 1,

重启 apache 生效。

service apache2 restart

其他

配置电话国际区号。修改 Nextcloud 配置。

  'default_phone_region' => 'CN',

发表评论

目录