如何在CentOS 7上安装NextCloud 9

・9 分钟阅读

正如它名称所示,NextCloud是另一个开源文件托管解决方案,有替代OwnCloud方案的前途。

在本文中我将向你展示如何在CentOS 7服务器实例上安装NextCloud。

前提条件

  • 新创建的CentOS 7服务器实例,
  • 用于登录的sudo用户

步骤1更新系统

以sudo用户身份登录CentOS 7系统,然后将系统更新到最新的稳定状态:


sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

重新引导后,仍使用相同的sudo用户登录。

步骤2安装Apache

将Apache安装为NextCloud的网络服务器:


sudo yum install httpd -y

禁用预设置Apache欢迎页面:


sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

为了安全目的,禁止Apache在web root目录/var/www/html中显示内容:


sudo sed -i"s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

根据NextCloud的要求,禁止Apache加载web dav模块:


sudo sed -i 's/^/#&/g' /etc/httpd/conf.modules.d/00-dav.conf

启动Apache服务并使其在开机时启动:


sudo systemctl start httpd.service
sudo systemctl enable httpd.service

步骤3安装PHP和必要的PHP扩展

NextCloud建议使用PHP 5.6 ,在这里,你可以使用IUS库安装PHP 5.6和必要的PHP扩展。

安装IUS库:


cd
wget https://centos7.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release.rpm

Install PHP 5.6和使用IUS repo的必要扩展:


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

将上传文件大小增加到适当的值,例如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

重新启动Apache以应用上修改:


sudo systemctl restart httpd.service

步骤4安装MariaDB,并且为NextCloud设置数据库

安装MariaDB :


sudo yum install mariadb mariadb-server -y

启动MariaDB服务,并且使它在开机时启动:


sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

安全MariaDB安装:


sudo /usr/bin/mysql_secure_installation

安装过程中,按如下方式回答问题:


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

现在,是时候为NextCloud设置数据库了:


mysql -u root -p

输入先前设置的MariaDB root密码以登录。

在MySQL shell中,需要创建一个数据库和数据库用户,然后向此数据库用户授予特权。

使用以下命令完成工作,确保将数据库名"nextcloud",数据库用户名"nextclouduser"和数据库用户密码"yourpassword"替换为你自己数据库的信息。


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;

步骤5安装NextCloud

从官方网站下载最新的稳定版本NextCloud ,在编写本教程时,最新的稳定版本号为9.0.53.


cd
wget https://download.nextcloud.com/server/releases/nextcloud-9.0.53.zip

解压NextCloud归档文件:


sudo yum install unzip -y
unzip nextcloud-9.0.53.zip

将所有NextCloud文件移动到web root目录,然后向它们授予适当的权限:


sudo mv nextcloud/* /var/www/html && sudo chown apache:apache -R /var/www/html

使用以下例子参数从命令行安装NextCloud ,一定要用自己的替换它们。

  • 数据库名称nextcloud
  • 数据库用户nextclouduser
  • 数据库密码yourpassword
  • 管理员用户:admin
  • 管理员密码: nextcloudadminpassword

运行:


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"

如果一切正常,输出将读取:


Nextcloud is not installed - only a limited number of commands are available
ownCloud was successfully installed

添加你的服务器IP (说是203.0.113.1 )和域名(说明它是NextCloud域列表信任的www.example.com)):


sudo vi /var/www/html/config/config.php

查找行:

 
0 =>'localhost',

 

将下面两行插入到下面:


1 => '203.0.113.1',
2 => 'www.example.com',

保存和退出:

 
:wq

 
!

为了安全起见,你需要在安装后,设置对NextCloud文件和目录的强权限:


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

另外,记住有一个目录,它没有被命名为/var/www/html/assets ,如果以后创建此目录,还需要运行以下命令:


sudo chown -R apache:apache /var/www/html/assets

这些设置有助于防止NextCloud未授权访问。

注意:如果将来需要更新NextCloud,可以使用以下命令暂时松开权限:


sudo chown apache:apache -R /var/www/html

更新后,仍设置了强权限,如下所示。

重启Apache以使你的更改生效:


sudo systemctl restart httpd.service

修改防火墙规则以允许访问:


sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

就是这样,现在你可以将web浏览器指向http://203.0.113.1,并使用NextCloud管理帐户登录。

感谢你阅读。

Anne655 profile image