第一步:安装apache

在centos中 apache叫httpd

yum update #更新源

yum install httpd #安装apache

systemctl stop firewalld           #关闭防火墙

systemctl start httpd              #开启httpd服务

systemctl enable httpd.service     #开启httpd开机自启

systemctl status httpd.service     #查看httpd状态

第二步:安装php (见下面)

systemctl start php-fpm.service #启动

systemctl stop php-fpm.service #关闭

systemctl restart php-fpm.service #重启

第三步:安装mariadb (不行就用yum)

(https://mp.weixin.qq.com/s/VzJD3nmAb0ob5h--Lz8gaQ)

yum install dnf

dnf update -y

install -y mariadb mariadb-server

dnf install -y mariadb mariadb-server

yum -y install mariadb-server mariadb mariadb-client mariadb-devel

 

启动数据库

systemctl enable mariadb.service
systemctl start mariadb.service

安装完成以后是没有设置密码的,运行下面的命令可以非常方便的配置

mysql_secure_installation

第四步:安装nextcloud

wget https://download.nextcloud.com/server/releases/nextcloud-18.0.3.zip(网上自己下载,这种方式下载慢,可以不成功。)
unzip nextcloud-*.zip

解压后,拷贝项目目录到 Apache 目录

cp -R nextcloud/ /var/www/html/

创建数据存放目录,用于存放日志、文件等

mkdir /var/www/html/nextcloud/data

设置权限并重启

chown -R apache:apache /var/www/html/nextcloud
systemctl restart httpd.service

http://IP/nextcloud

第五步:享受就行了

所有的文件会存储在下面的目录,如果你想存放云,当然也可以,不过本文就不叙述了

/var/www/html/nextcloud/data/admin/files

 

其他ip登錄編輯/var/www/html/nextcloud/conf/config.php

 

<?php

$CONFIG = array (

'instanceid' => 'oc9ncnswcrlk',

'passwordsalt' => 'RPQLtGsS+8O5Ug5FvN/2Sd9owriZHo',

'secret' => '8sBjxe8TYtnrd2ImZjcYP3JC1CH34AGuc2xCJ+GdzwXy5v+1',

'trusted_domains' =>

array (

0 => '192.168.237.135',

#添加如下代碼--------------

1 => preg_match('/cli/i',php_sapi_name())?'127.0.0.1':$_SERVER['SERVER_NAME'],

),

'datadirectory' => '/var/www/html/nextcloud/data',

'dbtype' => 'sqlite3',

'version' => '18.0.3.0',

'overwrite.cli.url' => 'http://192.168.237.135/nextcloud',

'installed' => true,

'app_install_overwrite' =>

array (

0 => 'onlyoffice',

),

);

 

 

 

解决CentOS中安装Nextcloud出现“内部服务器错误”

直入正题

这个问题的出现是由于文件夹权限设置的不到位。

如果直接简单地去设置权限,比如:

chown apache:apache nextcloud

chmod 770 nextcloud -Rf

那么你就会得到“内部服务器错误”的提示。

正确的做法是,

1.使用下面的配置脚本(这个脚本大概已经是第三遍被贴出来了):

随便找个地方(不要在Nextcloud的程序目录下),创建一个shell脚本:

vim permission.sh

然后把下面的内容粘贴进去(在vim中,你需要先按i,然后insert+shift键粘贴)

注:以下代码可能导致系统权限混乱!!!原因不明!!!慎用!!!(如果你发现错误所在请告诉我!!!)

#!/bin/bash

ocpath='/var/www/nextcloud/'   #修改为你Nextcloud所放置的目录

htuser='apache'                #网页服务器用户

htgroup='apache'               #网页服务器的组

rootuser='root'

printf "Creating possible missing Directories\n"

mkdir -p $ocpath/data

mkdir -p $ocpath/assets

mkdir -p $ocpath/updater

printf "chmod Files and Directories\n"

find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640

find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"

chown -R ${rootuser}:${htgroup} ${ocpath}/

chown -R ${htuser}:${htgroup} ${ocpath}/apps/

chown -R ${htuser}:${htgroup} ${ocpath}/assets/

chown -R ${htuser}:${htgroup} ${ocpath}/config/

chown -R ${htuser}:${htgroup} ${ocpath}/data/

chown -R ${htuser}:${htgroup} ${ocpath}/themes/

chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ

printf "chmod/chown .htaccess\n"

if [ -f ${ocpath}/.htaccess ]

then

chmod 0644 ${ocpath}/.htaccess

chown ${rootuser}:${htgroup} ${ocpath}/.htaccess

fi

if [ -f ${ocpath}/data/.htaccess ]

then

chmod 0644 ${ocpath}/data/.htaccess

chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess

fi

按ESC键切换到普通模式,然后输入:wq保存退出。

2.关闭或正确地配置SELinux(最直接的方式)

临时的关闭可以用:

setenforce 0

永久关闭则可以编辑/etc/selinux/config 文件:

vim /etc/selinux/config

找到SELINUX=enforcing,将它改为SELINUX=disabled。

再刷新页面,错误信息就消失了:

解决过程

按CentOS中通常的步骤,YUM安装httpd、php、maraidb,然后下载Nextcloud的安装包,解压,简单地设置了一下权限,关掉防火墙、SELinux,然后浏览器里访问,提示错误。

如果上述步骤是在Debian/Ubuntu中做,现在已经可以看到安装界面了,而这个是什么情况?!

按提示中所说,错误记录在了日志里,于是检查了一下error.log(一般位于/etc/httpd/logs里,取决于你的配置),发现了这样的错误信息:

[Sat Nov 18 19:54:20.198935 2017] [php7:notice] [pid 24868] [client 192.168.3.66:65387] {"reqId":"WhAfbEVDNMLHuXKdeyBnUAAAAAI","level":3,"time":"2017-11-18T11:54:20+00:00","remoteAddr":"192.168.3.66","user":"--","app":"PHP","method":"GET","url":"\\/index.php","message":"chmod(): No such file or directory at \\/var\\/www\\/nextcloudtest\\/lib\\/private\\/Log\\/File.php#134","userAgent":"Mozilla\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\/537.36 (KHTML, like Gecko) Chrome\\/62.0.3202.94 Safari\\/537.36","version":""}

呃………原来是一个PHP函数的报错。然而,chmod(): No such file or directory???

赶紧看下:

[root@imagineocean nextcloudtest]# ls lib/private/Log

ErrorHandler.php  Errorlog.php  File.php  Rotate.php  Syslog.php

这些文件明明好好地躺在那里!

第一反应是SELinux在捣鬼,于是检查了一下:

[root@imagineocean nextcloud]# getenforce

Permissive

SELinux已关闭。

Centos7 安装LAMP以及nextcloud的更多相关文章

  1. centos7安装lamp

    一.准备工作 1.   下载并安装CentOS7.2,配置好网络环境,确保centos能上网,可以获取到yum源. centos7.2的网络配置: vim /etc/sysconfig/network ...

  2. centos7 安装lamp

    1升级gcc4.8以上  yum update gcc2升级openssl     yum update openssl 3安装apache a 安装apr   ./configure --prefi ...

  3. CentOS7 安装LAMP环境

    1.使用yum安装 yum -y install httpd mysql mysql-server php php-mysql postgresql postgresql-server php-pos ...

  4. centos7安装 lamp

    1.安装apache yum install httpd #根据提示,输入Y安装即可成功安装 systemctl start httpd.service #启动apache systemctl sto ...

  5. centos7.2 yum安装lamp环境

    一.准备工作 1.   下载并安装centos7.2,配置好网络环境,确保centos能上网,可以获取到yum源. centos7.2的下载地址:http://pan.baidu.com/s/1eRT ...

  6. CentOS 6.5系统使用yum方式安装LAMP环境和phpMyAdmin,mysql8.0.1/mysql5.7.22+centos7,windows mysql安装、配置

    介绍如何在CentOs6.2下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&am ...

  7. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

  8. CentOS7 安装LNMP(Linux+Nginx+MySQL+PHP)

    由于工作须要,须要学习php,本来想安装lamp的可是考虑到如今nginxserver有良好的性能且应用广泛. 这里我决定搭建Linux(CentOS7+Nginx+MySQL+PHP)下的webse ...

  9. Centos7 安装 zabbix3.2

    简介: Zabbix的一个很优秀的分布式监控服务器, 它有两部分组成: 1. “zabbix-server”用来收集并且在web端展示数据 2. “zabbix-agent”用来采集数据,发送给ser ...

随机推荐

  1. MyBatis通过注解实现映射中的嵌套语句和嵌套结果

    案例描述:查看订单或购物车订单信息的同时查询出该订单中所有书籍的信息. 一.嵌套语句 @Select("select* from shopcart where shopcartid = #{ ...

  2. markDodn使用技巧

    markdown 标题 一级标题书写语法: 井符(#)加上空格加上标题名称 二级标题书写语法: 两个井符(#)加上空格加上标题名称 三级标题书写语法: 三个井符(#)加上空格加上标题名称 字体 字体加 ...

  3. 一个超好用的 Python 标准库,彻底玩透路径操作

    pathlib 学习 Python 时,尤其是在进行文件操作和数据处理时,经常会处理路径问题.最常用和常见的是 os.path 模块,它将路径当做字符串进行处理,如果使用不当可能导致难以察觉的错误,而 ...

  4. Mysql资料 视图

    目录 一.简介 二.例子 三.好处 四.工作机制 一.简介 视图是数据库中的一个虚拟的表是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 但是,视图并不在数据库中以 ...

  5. Docker 快速删除无用(none)镜像

    Dockerfile 代码更新频繁,自然docker build构建同名镜像也频繁的很,产生了众多名为none的无用镜像. 分别执行以下三行可清除 docker ps -a | grep " ...

  6. LuoguP5139 z小f的函数 题解

    Content 给定 \(T\) 个二次函数 \(y=ax^2+bx+c\),有若干次操作,有一个操作编号 \(p\),保证仅为以下这五种: 操作 \(1\):给定 \(k\),将函数图像向上移动 \ ...

  7. NAT各种模式

    https://blog.csdn.net/u011245325/article/details/9294229

  8. InnoDB学习(五)之数据库锁

    InnoDB存储引擎的默认隔离级别事可重复读,MVCC多版本并发控制仅仅解决了快照读情况下的数据隔离,而对于当前读,InnoDB通过锁来进行并发控制. InnoDB锁 本文主要参考了MySQL官方文档 ...

  9. 使用docker logs -f 打印日志中文无法正常显示

    打印docker日志的时候 中文无法显示 显示了问号 在Dockerfile加入 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US ...

  10. SpringBoot整合quartz实现动态启动,停止定时任务功能

    注意:这个方法当程序重启之后会失效,所以必须将定时任务持久化到数据库,然后程序启动的时候重新把数据库的定时任务加载到quartz中 springboot程序启动初始化代码参考:https://www. ...