• [Openwrt 扩展下篇] Openwrt搭建私有云Owncloud 9


    网上很多资料讲用Linux打造owncloud构建私有云 ,花了些时间研究了下,我将之前的需求打造成了Openwrt下的Owncloud 9。其实网上还有Seafile。大家对比来看下知乎的评论,其实主要是自己用不必要那么挑剔。

    https://www.zhihu.com/question/23929945

    软件版本:

      Nginx  1.4.7 

      PHP   5.6.17 

      Sqlite3   自带数据库 ,这里要说下openwrt下的mysql不能使用,版本5.1.X,而且Owncloud 7以上版本Mysql应该是至少要5.7.X,老外也没想管Mysql的版本,说了句没空~~~

      可能在Openwrt的世界里Mysql太小众了把。MariaDB 据说这个编译的数据库也能用https://github.com/patrikx3/lede-mariadb,有兴趣的朋友也可以在参考资料试试MariaDB,

      不过对我来讲,我不熟悉就没有用,研究还的要时间的,不如弄个Linux了呢。

    本着测试的想法,毕竟我想测试好aria2和Owncloud以后买个阿里云或者腾讯云,这样子配置会高很多带宽也会相对充裕些。

    上干货我们开始配置把,

    这里推荐大家看下这俩文档,是Openwrt添加Nginx,PHP,和Mysql的,当然Mysql不能用,Pass把

    http://www.cnblogs.com/double-win/p/3866189.html

    http://www.cnblogs.com/double-win/p/3885741.html

    基础环境搭建好了就到官网下载 就可以了,

    https://owncloud.org/download/

    一切准备完后记得测试PHP+Nginx然后我们开始.............

    PHP配置

    root@Sean_OpenWrt:/etc/config# cat  /etc/php.ini 
    [PHP]
    
    zend.ze1_compatibility_mode = Off
    
    ; Language Options
    
    engine = On
    ;short_open_tag = Off
    precision    =  12
    y2k_compliance = On
    output_buffering = Off
    ;output_handler =
    zlib.output_compression = Off
    ;zlib.output_compression_level = -1
    ;zlib.output_handler =
    implicit_flush = Off
    unserialize_callback_func =
    serialize_precision = 100
    
    ;open_basedir =
    disable_functions =
    disable_classes =
    
    ; Colors for Syntax Highlighting mode.  Anything that's acceptable in
    ; <span style="color: ???????"> would work.
    ;highlight.string  = #DD0000
    ;highlight.comment = #FF9900
    ;highlight.keyword = #007700
    ;highlight.bg      = #FFFFFF
    ;highlight.default = #0000BB
    ;highlight.html    = #000000
    
    ;ignore_user_abort = On
    ;realpath_cache_size = 16k
    ;realpath_cache_ttl = 120
    
    ; Miscellaneous
    
    expose_php = On
    
    ; Resource Limits
    
    max_execution_time = 30 ; Maximum execution time of each script, in seconds.
    max_input_time = 60     ; Maximum amount of time each script may spend parsing request data.
    ;max_input_nesting_level = 64
    memory_limit = 8M       ; Maximum amount of memory a script may consume.
    
    ; Error handling and logging
    
    ; Error Level Constants:
    ; E_ALL             - All errors and warnings (includes E_STRICT as of PHP 6.0.0)
    ; E_ERROR           - fatal run-time errors
    ; E_RECOVERABLE_ERROR  - almost fatal run-time errors
    ; E_WARNING         - run-time warnings (non-fatal errors)
    ; E_PARSE           - compile-time parse errors
    ; E_NOTICE          - run-time notices (these are warnings which often result
    ;                     from a bug in your code, but it's possible that it was
    ;                     intentional (e.g., using an uninitialized variable and
    ;                     relying on the fact it's automatically initialized to an
    ;                     empty string)
    ; E_STRICT                      - run-time notices, enable to have PHP suggest changes
    ;                     to your code which will ensure the best interoperability
    ;                     and forward compatibility of your code
    ; E_CORE_ERROR      - fatal errors that occur during PHP's initial startup
    ; E_CORE_WARNING    - warnings (non-fatal errors) that occur during PHP's
    ;                     initial startup
    ; E_COMPILE_ERROR   - fatal compile-time errors
    ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
    ; E_USER_ERROR      - user-generated error message
    ; E_USER_WARNING    - user-generated warning message
    ; E_USER_NOTICE     - user-generated notice message
    ; E_DEPRECATED      - warn about code that will not work in future versions
    ;                     of PHP
    ; E_USER_DEPRECATED - user-generated deprecation warnings
    ;
    ; Common Values:
    ;   E_ALL & ~E_NOTICE  (Show all errors, except for notices and coding standards warnings.)
    ;   E_ALL & ~E_NOTICE | E_STRICT  (Show all errors, except for notices)
    ;   E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)
    ;   E_ALL | E_STRICT  (Show all errors, warnings and notices including coding standards.)
    ; Default Value: E_ALL & ~E_NOTICE
    error_reporting  =  E_ALL & ~E_NOTICE & ~E_STRICT
    
    display_errors = On
    display_startup_errors = Off
    log_errors = Off
    log_errors_max_len = 1024
    ignore_repeated_errors = Off
    ignore_repeated_source = Off
    report_memleaks = On
    ;report_zend_debug = 0
    track_errors = Off
    ;html_errors = Off
    ;docref_root = "/phpmanual/"
    ;docref_ext = .html
    ;error_prepend_string = "<font color=#ff0000>"
    ;error_append_string = "</font>"
    ; Log errors to specified file.
    ;error_log = /var/log/php_errors.log
    ; Log errors to syslog.
    ;error_log = syslog
    
    ; Data Handling
    
    ;arg_separator.output = "&amp;"
    ;arg_separator.input = ";&"
    variables_order = "EGPCS"
    request_order = "GP"
    register_globals = Off
    register_long_arrays = Off
    register_argc_argv = On
    auto_globals_jit = On
    post_max_size = 8M
    ;magic_quotes_gpc = Off
    magic_quotes_runtime = Off
    magic_quotes_sybase = Off
    auto_prepend_file =
    auto_append_file =
    default_mimetype = "text/html"
    ;default_charset = "iso-8859-1"
    ;always_populate_raw_post_data = On
    
    ; Paths and Directories
    
    ; UNIX: "/path1:/path2"
    ;include_path = ".:/php/includes"
    user_dir =
    extension_dir = "/usr/lib/php"
    enable_dl = On
    ;cgi.force_redirect = 1
    ;cgi.nph = 1
    ;cgi.redirect_status_env = ;
    cgi.fix_pathinfo=1
    ;fastcgi.impersonate = 1;
    ;fastcgi.logging = 0
    ;cgi.rfc2616_headers = 0
    
    ; File Uploads
    
    file_uploads = On
    upload_tmp_dir = "/tmp"
    upload_max_filesize = 2M
    max_file_uploads = 20
    
    ; Fopen wrappers
    
    allow_url_fopen = On
    allow_url_include = Off
    ;from="john@doe.com"
    ;user_agent="PHP"
    default_socket_timeout = 60
    ;auto_detect_line_endings = Off
    
    ; Dynamic Extensions
    
    ;extension=ctype.so
    ;extension=curl.so
    ;extension=dom.so
    ;extension=exif.so
    ;extension=ftp.so
    ;extension=gd.so
    ;extension=gmp.so
    ;extension=hash.so
    ;extension=iconv.so
    ;extension=json.so
    ;extension=ldap.so
    ;extension=mbstring.so
    ;extension=mcrypt.so
    ;extension=mysql.so
    ;extension=openssl.so
    ;extension=pcre.so
    ;extension=pdo.so
    ;extension=pdo-mysql.so
    ;extension=pdo-pgsql.so
    ;extension=pdo_sqlite.so
    ;extension=pgsql.so
    ;extension=session.so
    ;extension=soap.so
    ;extension=sockets.so
    ;extension=sqlite.so
    ;extension=sqlite3.so
    ;extension=tokenizer.so
    ;extension=xml.so
    ;extension=xmlreader.so
    ;extension=xmlwriter.so
    
    ; Module Settings
    
    [APC]
    apc.enabled = 1
    apc.shm_segments = 1    ;The number of shared memory segments to allocate for the compiler cache.
    apc.shm_size = 4M       ;The size of each shared memory segment.
    
    [Date]
    ;date.timezone = Asia/Chongqing
    ;date.default_latitude = 31.7667
    ;date.default_longitude = 35.2333
    ;date.sunrise_zenith = 90.583333
    ;date.sunset_zenith = 90.583333
    
    [filter]
    ;filter.default = unsafe_raw
    ;filter.default_flags =
    
    [iconv]
    ;iconv.input_encoding = ISO-8859-1
    ;iconv.internal_encoding = ISO-8859-1
    ;iconv.output_encoding = ISO-8859-1
    
    [sqlite]
    ;sqlite.assoc_case = 0
    
    [sqlite3]
    ;sqlite3.extension_dir =
    
    [Pdo_mysql]
    pdo_mysql.cache_size = 2000
    pdo_mysql.default_socket=
    
    [MySQL]
    mysql.allow_local_infile = On
    mysql.allow_persistent = On
    mysql.cache_size = 2000
    mysql.max_persistent = -1
    mysql.max_links = -1
    mysql.default_port =
    mysql.default_socket = /tmp/mysqld.sock
    mysql.default_host =
    mysql.default_user =
    mysql.default_password =
    mysql.connect_timeout = 60
    mysql.trace_mode = Off
    
    [PostgresSQL]
    pgsql.allow_persistent = On
    pgsql.auto_reset_persistent = Off
    pgsql.max_persistent = -1
    pgsql.max_links = -1
    pgsql.ignore_notice = 0
    pgsql.log_notice = 0
    
    [Session]
    session.save_handler = files
    session.save_path = "/tmp"
    session.use_cookies = 1
    ;session.cookie_secure =
    session.use_only_cookies = 1
    session.name = PHPSESSID
    session.auto_start = 0
    session.cookie_lifetime = 0
    session.cookie_path = /
    session.cookie_domain =
    session.cookie_httponly =
    session.serialize_handler = php
    session.gc_probability = 1
    session.gc_divisor     = 100
    session.gc_maxlifetime = 1440
    session.bug_compat_42 = On
    session.bug_compat_warn = On
    session.referer_check =
    session.entropy_length = 0
    ;session.entropy_file = /dev/urandom
    session.entropy_file =
    ;session.entropy_length = 16
    session.cache_limiter = nocache
    session.cache_expire = 180
    session.use_trans_sid = 0
    session.hash_function = 0
    session.hash_bits_per_character = 4
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
    
    [mbstring]
    ;mbstring.language = Japanese
    ;mbstring.internal_encoding = EUC-JP
    ;mbstring.http_input = auto
    ;mbstring.http_output = SJIS
    ;mbstring.encoding_translation = Off
    ;mbstring.detect_order = auto
    ;mbstring.substitute_character = none;
    ;mbstring.func_overload = 0
    ;mbstring.strict_detection = Off
    ;mbstring.http_output_conv_mimetype=
    ;mbstring.script_encoding=
    
    [gd]
    ;gd.jpeg_ignore_warning = 0
    
    [exif]
    ;exif.encode_unicode = ISO-8859-15
    ;exif.decode_unicode_motorola = UCS-2BE
    ;exif.decode_unicode_intel    = UCS-2LE
    ;exif.encode_jis =
    ;exif.decode_jis_motorola = JIS
    ;exif.decode_jis_intel    = JIS
    
    [soap]
    soap.wsdl_cache_enabled=1
    soap.wsdl_cache_dir="/tmp"
    soap.wsdl_cache_ttl=86400
    soap.wsdl_cache_limit = 5
    
    [sysvshm]
    ;sysvshm.init_mem = 10000
    
    [ldap]
    ldap.max_links = -1
    
    [mcrypt]
    ;mcrypt.algorithms_dir=
    ;mcrypt.modes_dir=
    
    [opcache]
    ;opcache.memory_consumption=8           ; 8M is the allowed minimum
    ;opcache.interned_strings_buffer=1
    opcache.max_accelerated_files=200       ; 200 is the allowed minimum
    ;opcache.revalidate_freq=60
    ;opcache.fast_shutdown=1
    opcache.enable_cli=1
    opcache.enable=1
    ;opcache.log_verbosity_level=4
    View Code

    Nginx配置(官网推荐的Owncloud无SSL配置以及做的基本Nginx优化)

    root@Sean_OpenWrt:/etc/config# cat /etc/nginx/nginx.conf 
    user www www;
    worker_processes  1;
    error_log   /mnt/sda2/nginx/logs/error.log;
    #error_log  /mnt/sda2/nginx/logs/error.log  notice;
    #error_log  /mnt/sda2/nginx/logs/error.log  info;
    
    pid         /mnt/sda2/nginx/logs/nginx.pid;
    
    
    events {
        worker_connections  10240;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                         '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log   /mnt/sda2/nginx/logs/access.log  main;
    
        sendfile        on;
       
        keepalive_timeout  65;
        large_client_header_buffers 4 32k;
        client_max_body_size 8m;
        tcp_nopush     on;
        tcp_nodelay        off;
        client_body_timeout 10;
        client_header_timeout 10;
        output_buffers 1 32k;
        postpone_output 1460;
        open_file_cache max=1000 inactive=20s;
        open_file_cache_valid    30s;
        open_file_cache_min_uses 2;
        open_file_cache_errors   on;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 32k;
        fastcgi_buffers 4 32k;
        fastcgi_busy_buffers_size 32k;
        fastcgi_temp_file_write_size 32k;
        gzip on;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_proxied        expired no-cache no-store private auth;
        #proxy_cache_path  /var/lib/nginx/cache  levels=1:2   keys_zone=staticfilecache:80m inactive=1d  max_size=2500m;
        proxy_temp_path /var/lib/nginx/proxy;
        proxy_connect_timeout 300;
        proxy_read_timeout 120;
        proxy_send_timeout 120;
        proxy_buffer_size  16k;
        proxy_buffers      4 16k;
        
      server {
            listen       7777;
            server_name  66.66.66.60;
            access_log  /mnt/sda2/nginx/logs/host.access.log  main;
    
            root   /mnt/sda2/nginx;
            index  index.html index.htm;
            client_max_body_size 10G;                                            
            fastcgi_buffers 64 4K;                                               
            rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;                 
            rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;               
            rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;   
    
            location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
                    }
    
            location ~ ^/(?:.htaccess|data|config|db_structure.xml|README){
                    deny all;
            }
    
            location / {
                    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
                    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
                    rewrite ^(/core/doc/[^/]+/)$ $1/index.html;
                    try_files $uri $uri/ /index.php;
                    }
    
            location ~ .php(?:$|/) {
                    fastcgi_split_path_info ^(.+.php)(/.+)$;
                    fastcgi_pass   127.0.0.1:9000;
                    fastcgi_index  index.php;
                    fastcgi_param  SCRIPT_FILENAME   /mnt/sda2/nginx/$fastcgi_script_name;
                    fastcgi_param PATH_INFO $1;
                    include fastcgi_params;
            }
    
            location ~* .(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                    expires 30d;
                    access_log off;
            }
        }
    }
    View Code

    因为万恶的Openwrt没有语言环境的所谓BUG, 网上的很多人要修改util.php ,可能比较小众资料不多,且多是爱好者在问答,大家可能没找到这个路径,其实5以上版本的路径换了,grep一下报错就可以找到。

    设置语言为 en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8 失败
    Please install one of these locales on your system and restart your webserver.

    相对路径为:

    libprivatelegacyutil.php

    注释掉这里

    //if (!OC_Util::isSetLocaleWorking()) { // $errors[] = array( // 'error' => $l->t('Setting locale to %s failed', // array('en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/' // . 'pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8')), // 'hint' => $l->t('Please install one of these locales on your system and restart your webserver.') // ); //

    配置Owncloud

    这里还应该改一下config/config.php

    <?php
    $CONFIG = array (
      'instanceid' => 'ocx8is0pm6p9',
      'default_language' => 'zh',
    );

     

    数据库选择Sqlite,如果你是Linux 并且你的Mysql是5.7+的版本或者能用的MariaDB,,那么....我想说我好羡慕你... 因为装完后我就很郁闷了....因为这个数据库和系统本身的硬件不能撑起来,所以访问速度极其慢,我也没太关注就是搭建了个壳子,如果有大神知道如何优化请留言给我。

    系统资源占用:

    Load了36秒...而且由于注释了php代码出现了这个黄色的一大坨....表示强迫症不能忍,果断要换成VPS的...

     

     

    虽然结果不是很理想,但是过程还是很开心的,毕竟一个路由也不能当服务器用....

    下面的参考资料大家可以找到各种版本的Owncloud,老外对Openwrt下的Mysql的态度....唉赶紧尝试一次高版本的Mysql吧.....大家有机会还是弄个vps吧....或者弄个高性能的....

    或者类似这位一样的的外加一层设备https://www.jianshu.com/p/92e2be4ca2f8

    总的来讲不建议用路由刷Openwrt上Owncloud,或者其他云Server,资源占用较大,也可能我配置的默认SQL问题或者还有哪里没有优化到,anyway....如有大神,请留言给我。

    VPS上效果展示,LNMP环境速度还算可以,然后我花了6RMB买了个官网客户端,感觉然并卵....可能还没仔细研究,抽空吧.....Python学习进度都落后了~~~~~~~~~~~~

    传送:

    [Openwrt 扩展上篇]USB挂载&U盘启动&Samba共享

    [Openwrt扩展中篇]添加Aria2和webui 

    参考资料

    http://pkgs.fedoraproject.org/repo/pkgs/owncloud/

    https://forum.owncloud.org/viewtopic.php?f=26&t=21219

    https://github.com/openwrt/packages/issues/2506

    https://github.com/Entware-ng/Entware-ng/issues/570

    https://wiki.openwrt.org/doc/howto/owncloud

    http://blog.csdn.net/hun_ying/article/details/48340765

     

     

  • 相关阅读:
    去掉苹果设备中按钮的默认样式
    用纯css写三角形
    行内元素中间出现空隙
    控制字间距
    单选按钮只能选中一个
    ie6出现双倍边距的问题
    17-比赛1 B
    ACM模板
    STL 入门 (17 暑假集训第一周)
    UVA 1594 Ducci Sequence(紫书习题5-2 简单模拟题)
  • 原文地址:https://www.cnblogs.com/sean-yao/p/8226745.html
Copyright © 2020-2023  润新知