Owncloud网盘的安装作为一个练手项目,网上有很多的教程。这里以天翼云为例,做一次实验。
准备云资源
首先登录天翼云,准备一下资源。
这个实验可以有多种做法。我们先用最简单的一台云主机上安装,就是数据库和应用都在一台主机上。这种方式,资源的耗费最少,当然应用的可扩展性也比较差,没有负载均衡,应付不了高并发的访问。后面我们还会测试其他方式。
天翼云上做实验,最省钱的方式是用按需模式购买资源。我们这个实验,使用一个弹性IP,一台2vcpu4G内存的云主机,每个小时的费用大概在0.5元左右。一般2个小时内可以做好,大致费用在1元作用,当然做好实验就赶紧把资源释放掉,否则放在那里还是要收费的。
我们可以选择“西安2”资源池,基本操作不熟悉的话,可以参考我的前一篇文章《天翼云基本操作》
先创建一个VPC,后面的资源都开在这个VPC里面,VPC会带一个默认的安全组,这些都是免费资源。
弹性IP是收费的,我们选择按需计费,然后在计费模式里面选择“按流量计费”,这样的话,每小时IP地址的保有费用0.1元,每G流量是0.36元。带宽对费用不影响,因此我们就选择100M,传文件速度比较快。对于我们做实验来说,流量很小,这种方式最省钱。
接着申请弹性云主机,还是选择按需计费,选择2vcpu、4G,这个配置的弹性云主机,运行速度和性能都还可以,不会卡顿。操作系统选择64位的centos7.6操作系统。IP地址就用刚才申请的IP地址。选一个自己好记的root密码。开通云主机。
由于默认安全组只运行vpc内部互相通信,因此现在我们登录不了云主机。需要在安全组里增加一条SSH登录的规则,就是放行22端口的所有主机的入流量。增加规则中选tcp类型的22端口,源主机地址0.0.0.0/0.
另外,我们的网盘是互联网应用,本来应该是用默认的80端口,但是云平台上,因为互联网安全的要求,80,443等端口是默认关闭,要备案后才能开放。所以实验的时候,我们会改一个端口来跑apache网站,比如8000端口,因此也一起加到安全组里。tcp类型端口号8000,源主机地址0.0.0.0/0。
其实mysql数据也会用到一个端口号,默认是3306端口,好在是自己主机访问自己的端口,跟外界无关,因此不用额外设置。
安装数据库
设好安全组,就可以用SSH登录工具登录主机了,我用的是MobaXterm工具,免费的,功能也比较强大。
登录主机后,因为我们要用mysql 8.0,所以先把系统里面原来的mysql卸载掉。
先查一下是否有mysql:
rpm -qa|grep mariadb
发现的确有,下面语句下载了mysql和相关软件包:
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 // 强力删除模式,连带删除依赖
再看看有没有剩下的东西:
find / -name mysql
还真有,那就继续删除干净:
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /usr/lib64/mysql
下载mysql8.0的rpm文件
wget -i -c http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
安装rpm文件
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
更新命令
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
否则可能会有报错:Public key for mysql80-community-release-el7-7.noarch.rpm is not installed
yum update
安装mysql-server
yum install mysql-server
初始化
mysqld --initialize
权限配置
find / -name mysql
chown mysql:mysql -R /var/lib/mysql
启动数据库服务
systemctl start mysqld
查看版本
mysqladmin --version
配置数据库
修改用户密码
安装时系统使用了临时密码,查看临时密码
[root@host]# grep 'temporary password' /var/log/mysqld.log
查到后记下来
连接mysql,回车后出现"Enter password:"提示时,输入刚才查到的密码,然后回车确认
[root@host]# mysql -u root -p
修改root密码
mysql> alter user 'root'@'localhost' identified by 'MySQL12#$56';
添加用于owncloud的数据库用户,名字也叫owncloud吧:
mysql> CREATE USER 'owncloud'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword!@34';
创建数据库
mysql> CREATE DATABASE IF NOT EXISTS owncloud_db;
确认创建成功
mysql> show databases;
为数据库用户赋权:
mysql> GRANT ALL PRIVILEGES ON owncloud_db.* TO 'owncloud'@'%';
退出mysql客户端
mysql> exit;
修改mysql的鉴权方式
vim /etc/my.cnf
把下面一行的注释符合“#”删除,得到:
default_authentication_plugin=mysql_native_password
保存退出。
启动数据库
systemctl restart mysqld
如果没有报错,说明数据库服务器安装成功。
设置开机启动数据库
systemctl enable mysqld
安装owncloud的应用程序。
owncloud官方网站提示新版本的linux安装包要到其他网站下了。
测试了一下,如果用命令安装,下载速度太慢。建议用二进制软件包安装。点击“直接抓取二进制软件包”得到下载链接,拷贝一下,用迅雷下载。这样可以很快下载到本地,下载好之后,用MobaXterm上传到云主机,缺省是上传到/root目录,也就是我们现在用的目录。
直接安装:
rpm -ivh owncloud-complete-files-10.10.0-20.1.noarch.rpm
查看安装之后,用下面命令查看是否有owncloud目录,如果有,说明安装正确:
ll /var/www/html
安装apache服务器
yum install httpd –y
修改apache配置文件
vim /etc/httpd/conf/httpd.conf
修改2个地方。
一个是“listen 80”修改为“listen 8000”,这个是网站服务器的监听端口
第二个是在
<Directory>
...
</Directory>
后面增加一段:# owncloud config
Alias /owncloud "/var/www/html/owncloud/"
<Directory /var/www/html/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/owncloud
SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>
保存退出。
启动apache服务器
systemctl start httpd.service
设置开机启动
systemctl enable httpd.service
本地计算机的浏览器输入
http://你的主机地址:8000
可以看到test界面,说明apache服务器安装正常。
安装PHP 7.3
使用remi源安装指定版本的PHP7.3
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --disable 'remi-php*'
sudo yum-config-manager --enable remi-php73
sudo yum -y install php php-{cli,fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json,intl}
检查PHP版本是否为7.3
php --version
重启 httpd 服务:
systemctl restart httpd.service
完成owncloud网盘的初始化
浏览器地址输入:
http://你的主机地址:8000/owncloud
应该出现owncloud的管理初始化页面。
定一个网盘管理员的名字和密码。
数据设置中,选择mariadb数据库
然后数据库用户名是刚才我们建的owncloud,数据库使用owncloud_db,数据库链接是local host:3306
点击安装。
安装好之后,可以用网盘管理员用户进入网盘,上传文件做一下测试。
释放云资源
测试完毕后及时释放云资源,因为即便时云主机停机,vcpu和内存不收费,但是系统盘还是被占用的,还会收费。IP地址有占用费。
因此一旦实验完毕,就立即释放云资源,避免不必要的浪费。
实验小结:
1、这是最简单的单机版owncloud网盘,不过麻雀虽小,五脏俱全,企业信息化应用用到云资源、数据库、应用软件等等都有,是一个不错的例子。
2、一个真正的企业网盘,为了性能和安全,一般会采取应用和数据库分离,应用服务器可能需要负载均衡、数据库也可能会采取主备模式,加强业务处理能力。
3、对于大多数的中小企业来说,自己搭建网盘不如购买商业版的企业网盘。商业版的网盘,性价比比较高,有专业的维护,功能也比较免费的网盘要多,特别时企业内部协助办公方面的功能会比较实用。
参考资料:
jackletter:《linux下安装mysql8(基于yum安装和mysql安装包离线安装两种方式)》
薯条没茄酱:《CentOS 7.6 安装mysql》
MrSpirit:《centos7.6下安装MySQL数据库(亲自验证可行)》
searlas:《centos yum安装mysql出现Public key for mysql-community-server-5.7.37-1.el7.x86_64.rpm is not installed》
哲哲别:《The server requested authentication method unknown to the client 》