• 安装 php 7.1 和 Nextcloud 需要的包
yum install -y epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y php71w-fpm php71w-gd php71w-mbstring php71w-mysqlnd php71w-opcache php71w-cli php71w-xml php71w-mcrypt php71w-common php71w-pdo php71w-pecl-apcu php71w-pear
  • 安装 Apache 和 MariaDB
yum -y install mariadb mariadb-server
yum install -y apache
  • 配置 MariaDB 数据库

启动 MariaDB 并添加到开机启动的服务。

systemctl start mariadb
systemctl enable mariadb

设置 MariaDB 的 root 用户的密码执行 mysql_secure_installation 按照提示操作即可,然后为 Nextcloud 创建一个新的数据路 nextcloud_db 和用户 nextclouduser。

运行 mysql -u root -p 输入刚才的密码即可登录 mysql shell,输入下面的命令创建数据库和用户。

create database nextcloud_db;
create user nextclouduser@localhost identified by 'passwd';
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'passwd';
flush privileges;
exit
  • 下载安装 Nextcloud
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.tar.bz2
tar -xjvf nextcloud-13.0.4.tar.bz2 
mv nextcloud /var/www/html/
chown -R apache:apache /var/www/html/nextcloud
chmod -R 755 /var/www/html/nextcloud
  • 为 Nextcloud 新建虚拟主机

新建配置文件 /etc/httpd/conf.d/nextcloud.conf,把类似以下的内容粘贴到配置文件中。

<VirtualHost *:80>
    <Directory /var/www/html/nextcloud/>
        AllowOverride All
    </Directory>
    ServerName domain.com
    IndexOptions Charset=UTF-8
    DocumentRoot "/var/www/html/nextcloud/"
    RewriteEngine on
</VirtualHost>

/etc/httpd/conf/httpd.conf 的最后加上以下内容。

<FilesMatch \.php$>
# SetHandler application/x-httpd-php
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

启动 php-fpm 和 Apache,并且将它们设置为开机启动的服务。

systemctl start php-fpm
systemctl enable php-fpm
systemctl start httpd
systemctl enable httpd
  • 防火墙的配置

开放 http 和 https 服务。

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

然后可以通过 certbot 启用 https,访问 domain.com 即可完成安装。

  • SELinux 的问题

如果按照上面的步骤安装好后,无法访问 domain.com,则有可能就是 SELinux 的问题。先运行 setenforce 0,如果仍不能访问,则有可能是那个地方没做好,如果能访问则执行以下命令解决。

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'
restorecon -Rv '/var/www/html/nextcloud/'

更多 SELinux 相关的问题请看这里

  • 安全及设置警告

在基本设置中有可能会看到安全及设置警告。

安全及设置警告 你的每项配置对于实例的安全性和性能都至关重要。 为了帮助您,我们正在做一些自动检查。
有关详细信息,请参阅提示与技巧部分和文档。 HTTP 请求头 “Strict-Transport-Security” 没有配置为至少
“15552000” 秒。 出于增强安全性考虑, 推荐按照安全提示中的说明启用 HSTS。
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档PHP的组件 OPcache没有正确配置。为了提供更好的性能,我们建议在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
请仔细检查安装指南,并检查日志中是否有错误或警告。

完全可以不管它的,有强迫症的,按以下步骤解决。

/var/www/html/nextcloud/.htaccess 最后加上

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

在 Nextcloud 的 config.php 文件加上 'memcache.local' => '\OC\Memcache\APCu'。 编辑 /etc/php.d/opcache.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

最后重启一下服务即可。

  • 外部存储

在应用管理界面启用 External storage support,打开外部存储设置页面,可能会提示“没有安装 "smbclient". 无法挂载 "SMB/CIFS", "SMB/CIFS 使用 OC 登录信息,请联系您的系统管理员安装.”

安装 samba-client 即可解决。

yum -y install samba-client

最后重启 php-fpm 生效。

分类: Linux

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注

CAPTCHA ImageChange Image