前言:本文采用Ubuntu18.04系统,搭载基于lamp的服web务器环境,并在该环境下配置owncloud网盘服务器,阐述的安装方法以及安装过程中相关问题的解决方法。
适合人群:想搭载属于自己的私人网盘,或者想在室内局域网搭载一个文件共享平台
注:
1、安装apache,这里用的是最新版Apache/2.4.29 (Ubuntu)
sudo apt install apache2 -y
查看版本
apache2 -v
2、安装php,这里用的是最新版PHP 7.2.24-0ubuntu0.18.04.1
sudo apt install php -y
查看版本
php -v
3、安装mysql-server,版本mariadb-server-10.1 1:10.1.41-0ubuntu0.18.04.1
查看版本
dpkg -l | grep mariadb
4、安装下面的模块
sudo apt -y install php-mysql php-json php-xml php-mbstring php-zip php-gd curl php-curl php-pdo php-intl
从owncloud下载文件 https://owncloud.org/download/
切换到Ubuntu服务器,将下载好的文件放到/var/www/html
中
cd /var/www/html //进入安装目录
mkdir owncloud //创建文件 owncloud,并将下载好的文件解压到该目录下
设置文件权限,用户权限更改为www,文件访问权限更改为755
chown -R www-data:www-data html // 更改owncloud安装目录的用户,组
chmod -R 755 /var/www/html //更改文件夹访问权限
此时输入服务器的ip地址进行访问,会出现以下界面
重启apache服务,在命令行终端中输入一下命令:
$ sudo /etc/init.d/apache2 restart
进入apache文件目录
cd /etc/apache2/
编辑配置文件
nano apache2.conf
更改下面的选项:
AllowOverride All
/etc/init.d/apache2 restart
到此完成了配置,需要提前创建数据库
进行数据库登陆账号与密码的配置
可参考官方文件
先设置数据库的登陆账号密码
mysql -u root -p
这里就设置为用户名为root
密码123456
然后再输入一下的内容,用户名与密码要做修改
CREATE DATABASE IF NOT EXISTS owncloud; GRANT ALL PRIVILEGES ON
owncloud.* TO ‘username’@‘localhost’ IDENTIFIED BY ‘password’;
修改后的
CREATE DATABASE IF NOT EXISTS owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'root'@'localhost' IDENTIFIED BY '123456';
退出mysql
quit
从新回到owncloud登陆界面
输入要设置的用户跟密码
账户root
密码123456
用户组 root
===========================================
2020/2/21更新------------------登陆后,黄色条条提示异常的解决方法
进入网盘后出现以下提示,本文采用宝塔面板搭载了lamp环境。所以会出现一些问题
点击提示,进入,可以看到安全及设置警告
一、用 getenv(\”PATH\”)
测试只返回一个空值
使用宝塔的文件管理修改php配置文件(下面的70代表php7.0版本,如果是php5.6就把70换成56)
文件地址:/www/server/php/70/etc/php-fpm.conf 看里面有没有这五个环境变量没有的话就在文件末尾新增
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
二、HSTS
选择站点–配置文件,添加ssl设置,前提是你的站点有开启ssl
server
{
listen 80;
listen 443 ssl http2;
#启用HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
三、PHP模块’文件信息’丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果.
在宝塔的软件商店找到你安装的php版本程序,点设置后安装扩展 fileinfo 即可
四、 /dev/urandom 无法被 PHP 读取,出于安全原因,这是强烈不推荐的
可以在宝塔中选择站点后点击设置,网站目录里面有 防跨站攻击(open_basedir) 关闭即可,但是如果关闭可能会导致夸站攻击!所以建议打开防跨站攻击,然后使用文件管理找到网站根目录下的 .user.ini
在open_basedir
后面添加owncloud需要跨目录访问的文件路径 /dev/urandom
,添加以下语句
open_basedir=/www/wwwroot/wps/owncloud/:/tmp/:/proc/:/dev/urandom
五、ownCloud“事务文件锁定应配置为使用基于内存的锁定”(参考: https://www.orgleaf.com/3052.html)
首先在宝塔面板安装Redis扩展
另外,在owncloud的 config/config.php
文件中添加以下内容以便启用Redis ,注意不是在文件最末尾添加(是在最后的);
上面进行添加)!!下面是我的config.php最后的内容,
'memcache.local' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],
'memcache.locking' => '\OC\Memcache\Redis', //使用Redis来管理事务文件锁定
);//插入的内容在本行上面
以下两个不知道为什么失败,我试了行不通
六、我们建议启用系统 cron,任何其他 cron 方法可能对性能和可靠性有影响。
官网的解决方法: https://doc.owncloud.org/server/10.0/admin_manual/configuration/server/background_jobs_configuration.html
非root用户无法运行cron任务,只能使用root用户来运行。
sudo gedit /etc/crontab
默认每15分钟运行一次,添加:
*/15 * * * * root sudo -u www-data php /path/to/your/owncloud/cron.php
10.3.2需要进行以下设置:
crontab -u www -e
/usr/bin/php -f /path/to/your/owncloud/cron.php
crontab -u www -l
/usr/bin/php -f /path/to/your/owncloud/cron.php
具体内容为:
*/15 * * * * /usr/bin/php -f /www/wwwroot/wps/owncloud/occ system:cron -q
重启cron:
/sbin/service crond restart
/usr/bin/php -f /www/wwwroot/wps/owncloud/cron.php
select-editor
七、SQLite 被用作数据库。对于较大数据量的安装和使用,我们建议您切换到不同的数据库后端。
特别当使用桌面客户端来同步文件时,不鼓励使用 SQLite
https://doc.owncloud.org/server/10.3/admin_manual/configuration/database/db_conversion.html