编写一键部署owncloud云网盘应用系统的shell脚本
时间: 2024-03-15 15:14:13 浏览: 156
下面是一个简单的Shell脚本示例,用于一键部署ownCloud云网盘应用系统:
```bash
#!/bin/bash
# 检查是否以root用户执行脚本
if [[ $EUID -ne 0 ]]; then
echo "请使用root用户执行此脚本。"
exit 1
fi
# 定义ownCloud版本和下载链接
owncloud_version="10.8.0"
owncloud_download_url="https://download.owncloud.org/community/owncloud-${owncloud_version}.tar.bz2"
# 安装必要的软件包
apt-get update
apt-get install -y apache2 mariadb-server libapache2-mod-php7.4 \
openssl php-imagick php7.4-common php7.4-curl php7.4-gd \
php7.4-imap php7.4-intl php7.4-json php7.4-ldap \
php7.4-mbstring php7.4-mysql php7.4-pgsql php-smbclient \
php-ssh2 php7.4-sqlite3 php7.4-xml php7.4-zip
# 下载ownCloud
wget "$owncloud_download_url" -O owncloud.tar.bz2
# 解压缩ownCloud
tar -xjf owncloud.tar.bz2 -C /var/www/html/
# 设置文件权限
chown -R www-data:www-data /var/www/html/owncloud/
chmod -R 755 /var/www/html/owncloud/
# 创建ownCloud数据目录
mkdir -p /var/www/html/owncloud/data
chown -R www-data:www-data /var/www/html/owncloud/data
# 创建Apache虚拟主机配置
cat > /etc/apache2/sites-available/owncloud.conf <<EOF
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/owncloud
<Directory /var/www/html/owncloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/owncloud
SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
# 启用Apache rewrite模块和ownCloud虚拟主机
a2enmod rewrite
a2ensite owncloud.conf
# 重启Apache服务
systemctl restart apache2
# 配置MariaDB数据库
mysql_secure_installation
# 创建ownCloud数据库和用户
mysql -u root -p <<EOF
CREATE DATABASE owncloud;
GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT
EOF
# 完成安装
echo "ownCloud安装完成。请访问 http://your-domain.com/owncloud 进行配置。"
# 清理临时文件
rm owncloud.tar.bz2
```
请注意,此脚本假定你正在使用Debian或基于Debian的系统(如Ubuntu)。如果你使用其他Linux发行版,可能需要进行适当的调整。
在运行脚本之前,请确保已经安装了必要的软件包,并根据实际情况修改ownCloud版本、下载链接和数据库配置。
另外,记得在脚本执行前备份重要的数据和配置文件,以防止意外情况发生。
阅读全文