准备工作
- 一台装有Centos系统的服务器
- root权限
第一步:更新系统
用root用户登陆系统并执行以下代码将系统进行更新。
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
重启后用root用户再次登陆
第二步:部署Apache服务器
安装Apache服务器作为nextcloud的运行环境。
sudo yum install httpd -y
关闭apache服务器的欢迎界面
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
为了安全起见,请防止Apache在Web根目录中显示内容/var/www/html
:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
防止apache加载WebDAV模块
sudo sed -i 's/^/#&/g' /etc/httpd/conf.modules.d/00-dav.conf
启动apache服务并设置为开机启动
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
第三步:安装PHP和必要的PHP扩展
cd
wget https://centos7.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release.rpm
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
将上传文件大小增加到适当的值,比如50MB:
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
Step 4: 第四步:安装MariaDB
安装MariaDB:
sudo yum install mariadb mariadb-server -y
设置为开机启动
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
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控制台中,您需要创建一个数据库和一个数据库用户,然后授予该数据库用户的权限。
使用以下命令完成工作。务必更换数据库名称”nextcloud”,数据库用户名”nextclouduser”和数据库用户密码“密码”在每一个命令,你自己的东西。
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;
第五步:安装NextCloud
下载最新的安装包
cd
wget https://download.nextcloud.com/server/releases/nextcloud-9.0.53.zip
解压
sudo yum install unzip -y
unzip nextcloud-9.0.53.zip
把所有的nextcloud文件到网站的根目录,然后给予他们适当的权限:
sudo mv nextcloud/* /var/www/html && sudo chown apache:apache -R /var/www/html
从下列样本参数的命令行界面安装NextCloud。一定要用你自己的换掉。
- database-name: nextcloud
- database-user: nextclouduser
- database-pass: yourpassword
- admin-user: admin
- admin-pass 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)和域名(说它是www.example.com)添加为NextCloud的信任域列表:
sudo vi /var/www/html/config/config.php
找到行:
0 => 'localhost',
插入以下内容:
1 => '203.0.113.1',
2 => 'www.example.com',
保存并退出
:wq!
为了安全起见,你需要建立强大的权限在nextcloud文件和目录安装z后:
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
访问
http://203.0.113.1 进行登陆