本教程首发于百度贴吧
ID:科尔森的发际线
我发现网上的一些教程已经很老了,大多是12年13年的,参考意义不大,吧友自己研究往往会有一些问题发生。于是决定在这里建个贴来写教程
教程亲测可行,owncloud自检信息只有2条:建议使用https和内存缓存(Memory cache),无严重错误
搭建成功如图(9.1.0Beta)


搭建环境:Windows10 下VMware Workstation12
安装系统:CentOS 7(以后有空做下Win系统的教程,毕竟oc8.0后就不支持Windows了)
系统安装可以是虚拟机或实体机
具体安装教程可以百度,我可能会在后面发出来
安装建议:最小化安装、固定ip(VMware请使用桥接网络)、自动配置硬盘
\
1.1
之后需要不断输入Linux命令,推荐使用SSH工具(比如SecureCRT)
①首先
#yum update
检查更新,也可以测试网络是否正常
②安装http服务(Apache)
#yum install httpd -y启动httpd服务
# systemctl start httpd
这时候如果在电脑浏览器输入centos的地址,是无法载入网页的
因为有firewalld(防火墙)
方法1:关闭
暂时关闭:# systemctl stop firewalld
永久关闭:# chkconfig firewalld off
方法2:开放80/tcp端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent刷新浏览器,可以看到以下页面,证明成功

1.2配置PHP+MariaDB环境
①Owncloud推荐使用php7,CentOS默认只能安装php5.4
为了方便,直接使用Webtstic的yum源
# rpm -Uvh
http://repo.webtatic.com/yum/el7/x86_64/RPMS/webtatic-release-7-3.noarch.rpm
# rpm -Uvh
https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
出现问题可以尝试以下命令
# yum install
http://repo.webtatic.com/yum/el7/x86_64/RPMS/webtatic-release-7-3.noarch.rpm
# rpm -Uvh
https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
②安装php7
#yum install php70w -y
# php -v
PHP 7.0.8 (cli) (built: Jun 23 2016 16:24:08) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
# systemctl restart httpd
检查:
# cd /var/www/html
# vi phpinfo.php
按i
输入
<?php
phpinfo();
?>
按esc
:wq保存退出
在浏览器输入地址 (我这儿是192.168.3.101/phpinfo.php 如图即为php正常安装)

③安装Mariadb
#yum list|grep mariadbmariadb-libs.x86_64 1:5.5.44-2.el7.centos @anaconda
mariadb.x86_64 1:5.5.47-1.el7_2 updates
mariadb-bench.x86_64 1:5.5.47-1.el7_2 updates
mariadb-devel.i686 1:5.5.47-1.el7_2 updates
mariadb-devel.x86_64 1:5.5.47-1.el7_2 updates
mariadb-embedded.i686 1:5.5.47-1.el7_2 updates
mariadb-embedded.x86_64 1:5.5.47-1.el7_2 updates
mariadb-embedded-devel.i686 1:5.5.47-1.el7_2 updates
mariadb-embedded-devel.x86_64 1:5.5.47-1.el7_2 updates
mariadb-libs.i686 1:5.5.47-1.el7_2 updates
mariadb-libs.x86_64 1:5.5.47-1.el7_2 updates
mariadb-server.x86_64 1:5.5.47-1.el7_2 updates
mariadb-test.x86_64
# yum install mariadb-server.x86_64 -y
# systemctl start mariadb
现在环境已经差不多了
1.3安装phpMyAdmin来管理数据库()
①先给数据库的root用户设置一个密码
# mysqladmin -u root password "密码"
其实root账户也可以用来安装owncloud,但为了安全起见,也建议大家养成好习惯,最好按照以下方式创建一个独立的用户并给予有限的权限
首先从官网上下载phpMyAdmin,
②解压程序包,然后找到里面的phpMyAdmin文件夹
上传程序包,使用FileZilla、FlashFXP之类的ftp/sftp上传工具,我这儿使用FIleZilla
打开FileZilla,点击 “文件-》站点管理器-》新站点
然后对照我的,
输入你的centos的ip
协议选择sftp
登录方式选择 正常,然后输入root账号和密码
把phpMyAdmin文件夹拖入
在浏览器地址栏输入
ip/phpMyAdmin
会有以下提示
安装mbstring即可
# yum install php70w-mbstring -y
# systemctl restart httpd
刷新页面,输入之前设置的mysql用户名(root)和密码
执行
点击 用户——》创建用户,然后按照图片输入
注意勾选 “创建域用户同名的数据库并授予所有权限。”
执行
上传完毕,浏览器输入地址,比如192.168.3.100
根据提示,为/var/www/html 目录设置权限
# cd /var/www/html
# chown apache owncloud -Rf
# chmod 770 owncloud -Rf
刷新后仍然是这样
这是因为selinux阻止
临时关闭:# setenfoce 0
永久关闭(重启后生效):
# vi /etc/selinux/config
将其中SELINUX=enforcing
改为SELINUX=disabled
按esc
输入:wq保存退出
③刷新

根据提示安装模块
# yum install php70w-dom
# yum install php70w-gd
# systemctl restart httpd
刷新浏览器2.2配置
①
设置管理员账号
点击“储存和数据库”
选择 Mysql/Mariadb

关于安装目录,最好是不把储存目录放在网页目录里,因为其他人可能会在不登录的情况下直接下载你的文件
要将文件储存到网页目录之外,比如我这儿要将文件存储到/var/owncloudfile目录里
# cd /var
# mkdir owncloudfile
给这个目录设置权限
# chown apache owncloudfile -Rf
# chmod 770 owncloudfile -Rf
然后将存储目录改为/var/owncloudfile
②输入mysql信息

点击“安装完成”
③这里还不能直接修改上传文件大小

只需要启用.htaccess就行了
这儿简单说一下
# vi /etc/httpd/conf/httpd.conf
找到以下字段

将AllowOverride None改为
AllowOverride All

esc
:wq保存退出
现在可以修改上传限制了


2017.4.12更新
没想到会有这么多人看到这篇文章!开心。
相关教程:
Nextcloud/ownCloud配置APCu本地缓存+Memcached分布式缓存
CentOS下配置https
针对评论中提出的MySQL、Apache开机自启的问题,可以使用ckconfig或systemctl命令设置:
#以httpd为例
chkconfig httpd on #以此类推,httpd可以换成mariadb等等
#也可以使用
systemctl httpd enable
感谢分享
在安装phpmyadmin的时候出错了。上传那个东西的图已经看不到了。不知道怎么操作
大佬,我在安装Mariadb这个步骤输入这个代码时#yum list|grep mariadbmariadb-libs.x86_64 1:5.5.44-2.el7.centos @anaconda提示grep: 1:5.5.44-2.el7.centos: 没有那个文件或目录
grep: @anaconda: 没有那个文件或目录
由于管道被破坏而退出
就继续输入下面代码,# yum install mariadb-server.x86_64 -y和# systemctl start mariadb,把phpMyAdmin文件夹拖入ip/phpMyAdmin
提示:phpMyAdmin – 错误
缺少 mysqli 扩展。请检查 PHP 配置。 详情请查看我们的文档。
我在网上看的在文件里找什么东西都没有,求大佬看看怎么回事?
你好我更换了owncloud存储位置的时候显示异常,请问有解决的方法吗
Exception occurred while logging exception: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [14] unable to open database file
#0 /var/www/html/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(992): OC\DB\Connection->connect()
#1 /var/www/html/lib/private/DB/Connection.php(207): Doctrine\DBAL\Connection->executeUpdate(‘PRAGMA read_unc…’, Array, Array)
#2 /var/www/html/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(623): OC\DB\Connection->executeUpdate(‘PRAGMA read_unc…’)
#3 /var/www/html/lib/private/DB/Connection.php(144): Doctrine\DBAL\Connection->setTransactionIsolation(2)
#4 /var/www/html/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(172): OC\DB\Connection->__construct(Array, Object(Doctrine\DBAL\Driver\PDOSqlite\Driver), Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
#5 /var/www/html/lib/private/DB/ConnectionFactory.php(145): Doctrine\DBAL\DriverManager::getConnection(Array, Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
#6 /var/www/html/lib/private/Server.php(529): OC\DB\ConnectionFactory->getConnection(‘sqlite3’, Array)
#7 /var/www/html/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
#8 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet(‘DatabaseConnect…’)
#9 /var/www/html/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query(‘DatabaseConnect…’)
#10 /var/www/html/lib/private/Server.php(1213): OC\ServerContainer->query(‘DatabaseConnect…’)
#11 /var/www/html/lib/private/Server.php(404): OC\Server->getDatabaseConnection()
#12 /var/www/html/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
#13 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet(‘AppConfig’)
#14 /var/www/html/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query(‘AppConfig’)
#15 /var/www/html/lib/private/Server.php(1143): OC\ServerContainer->query(‘AppConfig’)
#16 /var/www/html/lib/private/Server.php(583): OC\Server->getAppConfig()
#17 /var/www/html/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
#18 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet(‘AppManager’)
#19 /var/www/html/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query(‘AppManager’)
#20 /var/www/html/lib/private/Server.php(1411): OC\ServerContainer->query(‘AppManager’)
#21 /var/www/html/lib/private/legacy/app.php(346): OC\Server->getAppManager()
#22 /var/www/html/lib/private/legacy/app.php(110): OC_App::getEnabledApps()
#23 /var/www/html/lib/base.php(577): OC_App::loadApps(Array)
#24 /var/www/html/lib/base.php(994): OC::init()
#25 /var/www/html/index.php(53): require_once(‘/var/www/html/l…’)
#26 {main}
是你重启后数据库IP地址变了
有没有方法上传文件夹啊 为什么只能单个文件上传啊
534777566是你们的Q群吗?能加一下?
在index.php 界面 css无法加载是为什么啊?
Content Security Policy: 指令 ‘frame-src’ 已不赞成使用。请使用指令 ‘child-src’ 替换。
样式表单 http://192.168.1.7/owncloud/core/css/styles.css?v=ba222ded25d957b900c03bef914333cd 未载入,因为它的MIME类型 “text/plain” 不是 “text/css”。
感谢你的教程!我在考虑在自己的笔记本电脑上通过vm安装centos74 ,并以此为server 配置 owncloude,但是本机硬盘空间不足,请问可以将移动硬盘作为云储存目录吗,需要使用云端备份的时候就插上移动硬盘打开vm,或者直接安装centos在移动硬盘上,然后顺着一路配置下去,着两条思路那条可行啊。先谢谢了!
可以把vm的虚拟机文件保存到移动硬盘,插上硬盘后用vmware player加载虚拟机文件
非常感谢!
为什么我已经关闭了selinux,打网页依然提示Can’t write into config directory!
This can usually be fixed by giving the webserver write access to the config directory.
请问楼主,Apache PHP都测试好了,权限也好了,然后提示:“服务器发送一个内部错误并且无法完成你的请求。
请联系服务器管理员,如果多次出现这个错误,请把下面的技术细节包含在您的报告里。
尝试:cd /var/www/owncloud
chown -R apache .
chmod -R u+w .
也试过了,还是不行。
版本:
PHP 7.1.19 (cli)
Apache/2.2.15 (Unix)
owncloud-10.0.8
求指点,谢谢!
centos下吗?参见:解决CentOS中安装Nextcloud出现“内部服务器错误”
请问楼主,Apache PHP都测试好了,权限也好了,然后提示:“服务器发送一个内部错误并且无法完成你的请求。
请联系服务器管理员,如果多次出现这个错误,请把下面的技术细节包含在您的报告里。
更多细节能在服务器日志中找到。” 这是什么回事?
尝试:
cd /var/www/html/owncloud
chown -R www-data .
chmod -R u+w .
请问楼主,“在浏览器地址栏输入ip/phpMyAdmin”这一步继续不下去了,页面404报错,该怎么解决?
确认一下phpMyAdmin的目录的名称是什么,
nextcloud怎么我安装出来的是英文UI呢?请问您的中文UI怎么设置的?
在【用户】可以设置的
我这里在personal info下找到language只有英文?
请问如何让systemctl restart httpd开机自启呢?
已在文章底部更新
这个好,正需要,帮我解决了问题,感谢!
楼主,我按照你的教程成功了,,,但是怎么实现外网访问owncloud,现在只能自己的电脑能访问到owncloud,我是小白,希望楼主能及时解决我的困扰
这个需要通过路由器进行端口映射/内网穿透的。通过修改路由器设置来实现,可以网上搜索教程。具体操作方法和效果根据你的路由器而定,也可以使用花生壳之类的内网穿透工具。
请问一下,我按照你的方式安装成功以后,第二天再重新开启虚拟机,但是打开owncloud网页报错HTTP ERROR 500!你有遇到过这种情况吗?
重新启动以下MySQL、彻底关闭selinux就可以
好的我试试
我按照你的文档修改了上传设置,网页上也改为4G了,还是不能上传超过512M的文件,这是为何?
你好,我到了owncloud安装页面的时候总是有这个“Can’t create or write into the data directory ”错误,我的selinux也关了,也按照你的方法设置了权限,请问有没有什么方法能解决?
我在一键自搭的lnmp环境中弄好了owncloud,但是按照你的教程在网站根目录外新建了空间文件,完成操作时却一直提示该新建文件不能写入,权限是已经777了,能指教下什么原因吗?
执行chown apache owncloudfile -Rf时提示chown: invalid user: ‘apache’,请问是搭建的环境问题吗?
既然你装的是lnmp,那么user不应该是apache,而应该是nginx或者www或者www-data
完成设置时是提示不能创建或写入数据目录
检查一下selinux和用户
如何检查,小白不懂啊,就差最后一步了
为什么无法提交?啊啊
为什么无法提交?
期待windows下安装最新版,我现在没办法啊,找了个7.0版本在win下跑着,
8.0后已经不再支持Windows……
请教一下,如何安装liberoffice,并于owncloud整合;看提示说是要安装liberoffice,然后修改一个配置文件,但是我两个都不会。非常感谢老大。
安装liberoffice然后在index.php中指定安装目录。。。。官方文档上是这么说的,然而我试了,没成功
我得再研究研究
报这个错误 PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/smbclient.so' – /usr/lib64/php/modules/smbclient.so: undefined symbol: _zend_list_delete at Unknown#0
请问楼主owncloud挂载SMB/CIFS外部储存成功了吗?我以前用的php5.4时可以挂载,升级php以后就挂载不上了,目前推测php5-libsmbclient这个包未升级的问题,网上找了很久找不到升级包,求助
我试了一下,可惜没成功,我再研究一下
请问如何跟ldap连携
有相关插件的
能不能制作一个ocDownloader安装的教程,官网的wiki进不去
博主 我按照你的教程搭建好了 但是修改上传限制时候 怎么修改都会变成2MB
开启.htaccess那部分教程没仔细看吧?如果觉得图片不清楚,可以百度上搜“apache 开启.htaccess”。
phpMyAdmin – 错误
缺少 mysqli 扩展。请检查 PHP 配置
全部按操作步骤来,在phpmyadmin那里出错了。。
yum install php70w-mysqli
好的,谢谢,改天有空再试一下
我也有这个错误,yum install php70w-mysqli后还是不行,是不是还要修改配置
这个有用,我也卡到这了,用这个可以继续了,查了半天了,顶!
你也使用七牛云啊?
有考虑,后来用了又拍云,因为七牛云不给二级域名了
小米自来水路过 表示我以前不知道还有phpmyadmin这个东西 现在用这个东西配置mariadb 表 简单多了 也很方便在远程都可以进行数据库的配置
phpMyAdmin很灵活,大部分主机厂商都选择这个
yum