• Centos7 安装LAMP以及nextcloud


    第一步:安装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 "

    mkdir -p $ocpath/data

    mkdir -p $ocpath/assets

    mkdir -p $ocpath/updater

     

    printf "chmod Files and Directories "

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

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

     

    printf "chown Directories "

    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 "

    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已关闭。

    纵有白头俱老意,奈何缘浅路芊芊.
  • 相关阅读:
    利用itextsharp.dll 导出pdf格式文件
    Oracle 连接失去联系、链接空闲例程
    Log4net用法
    oracle 用户锁定(ORA28000:the account is locked)的解锁方法:
    智能提示框设计 仿携程
    利用System.Net.Mail 的SmtpClient发送邮件
    CTE实现嵌套递归
    读入excel中的数据到数据库中
    项目发布遇见的问题的整理
    JavaScript substring() 方法
  • 原文地址:https://www.cnblogs.com/hanby/p/14151009.html
Copyright © 2020-2023  润新知