- 安装 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 生效。
0 条评论