[Openwrt扩展下篇]Openwrt搭建私有云Owncloud9
⽹上很多资料讲⽤Linux打造owncloud构建私有云,花了些时间研究了下,我将之前的需求打造成了Openwrt下的Owncloud 9。其实⽹上还有Seafile。⼤家对⽐来看下知乎的评论,其实主要是⾃⼰⽤不必要那么挑剔。
软件版本:
  Nginx  1.4.7
  PHP  5.6.17
  Sqlite3  ⾃带数据库,这⾥要说下openwrt下的mysql不能使⽤,版本5.1.X,⽽且Owncloud 7以上版本Mysql应该是⾄少要5.7.X,⽼外也没想管Mysql的版本,说了句没空~~~
  不过对我来讲,我不熟悉就没有⽤,研究还的要时间的,不如弄个Linux了呢。
本着测试的想法,毕竟我想测试好aria2和Owncloud以后买个阿⾥云或者腾讯云,这样⼦配置会⾼很多带宽也会相对充裕些。
上⼲货我们开始配置把,
这⾥推荐⼤家看下这俩⽂档,是Openwrt添加Nginx,PHP,和Mysql的,当然Mysql不能⽤,Pass把
基础环境搭建好了就到官⽹下载就可以了,
⼀切准备完后记得测试PHP+Nginx然后我们开始.............
PHP配置
root@Sean_OpenWrt:/etc/config# cat  /etc/php.ini
[PHP]
<1_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 > would work.
;highlight.string  = #DD0000
;highlightment = #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 = "&"
;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
;direct_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
php项目搭建allow_url_fopen = On
allow_url_include = Off
;from="john@doe"
;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.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]
;sion_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 =
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
;kie_secure =
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.serialize_handler = php
<_probability = 1
<_divisor    = 100
<_maxlifetime = 1440
session.bug_compat_42 = On
session.bug_compat_warn = On
;py_file = /dev/urandom
;py_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
;ding_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]
;de_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;
exif.decode_unicode_intel    = UCS-2LE
;de_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=
;des_dir=
[opcache]
;_consumption=8          ; 8M is the allowed minimum
;opcache.interned_strings_buffer=1
opcache.max_accelerated_files=200      ; 200 is the allowed minimum ;validate_freq=60
;opcache.fast_shutdown=1
;opcache.log_verbosity_level=4
View Code
Nginx配置(官⽹推荐的Owncloud⽆SSL配置以及做的基本Nginx优化)
root@Sean_OpenWrt:/etc/config# cat /etc/f
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      pes;
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 = / {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。