51

Odp: http/php manager plików

Sprawdź czy zadziała jak zrobisz config. Jeżeli nie to musisz doinstalować nowy serwer.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

52 (edytowany przez badziewiak 2011-02-20 13:57:34)

Odp: http/php manager plików

Nadal mam problem. Zrywa polaczenie po kilku sekundach. Konfiguracja Twojego manager-a:

<?php
//klasy CSS:
// link_dir - link przej¶cia do katalogu (tylko tabela)
// link_opcje - 'przycisk' [opcje]
//
// skrypt obsluguje dwa rodzaje użytkowników: admin i user
// admin ma pełn± kontrole nad systemem plików, natomiast
// user może sobie tylko poogl±dać ;)
// użytkowników definiujemy tworz±c plik /etc/php_file_manager/users
// składnia pliku to: 'użytkownik:hash_md5_hasła:admin' - dla admina
// i 'użytkownik:hash_md5_hasła:user' - dla "read only"
// (bez apostrofów oczywi¶cie)
// jeden użytkownik na wiersz. możesz ich zdefiniować ile chcesz
// serwer musi mieć też prawo zapisu i odczytu w /tmp

////////////////////////////////////////////konfiguracja///////////////////////////////////////////////////

$GLOBALS['sessionv'] = 60 * 60 * 24; //ważno¶ć sesji - po takiej ilo¶ci sekund zostaniesz wylogowany

$strefa_czasu = 'CET';            //strefa czasowa. jak trzeba, to zmienić ;)
$tabela_kolor1 = '#CCCCCC';     //
$tabela_kolor2 = '#FFFFFF';     //tych dwuch chyba nie trzeba tłumaczyć ;)
$date_format = 'd-m-Y H:i:s';    //format daty do tabeli(w internecie jest dobrze opisane, jak go zdefiniować dla php)
$link_tag = ' **link**';        //indykator linku (jeżeli element jest linkiem, to ten ci±g pojawi sie za jego nazw±)
$www_link_dir = '/www1/public/';    //katalog, dla "szybkich linków" - żeby działało udostępnianie
                                //w ten sposób, serwer musi obsługiwać symlinki)

$www_link_prefix = '[url]https://(...)/[/url]';    //adres, pod którym widać katalog $www_link_dir
                                                        //(np. do wygodnego wklejania w komunikatory)
                                                        //jeżeli nie zostanie ustawiony, wszystko dalej będzie działać.
                                                        //ale może sie to okazać upierdliwe ;)

$no_access = 'zakaz_wjazdu';    //jeżeli taki plik istnieje w jakim¶ katalogu, katalog nie
                                //zostanie wylistowany jeżeli użytkownik nie jest administratorem.

$no_access_admin = 'zakaz_wjazdu_admin';    //jeżeli istnieje, nikt nie zobaczy zawarto¶ci
                                            //(to tak, zeby sobie samemu przez przypadek nie namieszać)

////filtr komend
$command_filter_list = '|reboot|firstboot|wget|';    //(każda konemda musi być między dwoma znakami "|").
$command_filter_mode = 'off';                        //filtr obsluguje tryby 'allow', 'deny' i 'off'
                                                    //'deny' - nie można wykontwać komend z listy
                                                    //'allow' - można wykonywać tylko komendy z listy
                                                    //'off' - filtr jest wył±czony

////opcje istotne tylko przy ładowaniu plików

///niestety w ten sposób nie da sie zmienić warto¶ci 'max_execution_time' i 'memory_limit' z php.ini
///musisz to zrobić "na piechotę" - sorry :D
///
///'max_execution_time' to paksymalny czas wykonywania skryptu (musi wystarczyć na załadowanie pliku, poskładanie plików
///        tymczasowych do kupy i skopiowanie gotowego pliku do docelowego katalogu)
///'memory_limit' to limit pamięci operacyjnej (pewnie nie bedzie odgrywał wiekszej roli, ale tak na wypadek W. napisałem)

$set_upload_ini = TRUE;            // jeżeli FALSE, poniższe ustawienia zostan± pominięte (php użyje ustawień z php.ini)
                                    // zmień warto¶ć na TRUE, jeżeli chcesz ładować duże pliki na serwer

$max_input_time    = 6000;                // maksymalny czas odbierania danych (w sekundach)
                                    // (musi wystarczyć na przesłanie pliku)

$post_max_size = '2000M';            // maksymalny rozmiar danych POST (czyli pliku w wypadku uploadu) - tu 200MB

$upload_max_filesize = '2000M';        // maksymalny rozmiar pliku - tu 200MB

$upload_tmp_dir = '/mnt/sda3/tmp';    // katalog na pliki tymczasowe .Jeżeli używasz lighttpd musisz zmienić jeszcze
                                    // ustawienia samego serwera edytuj±c plik lihttpd.conf (parametr 'server.upload-dirs'),
                                    // bo z jakich¶ powodów lighttpd tam wła¶nie ładuje wsystkie pliki tymczasowe (oczywi¶cie musi tam
                                    // być odpowiednia ilo¶ć miejsca. w przypadku OpenWrt /tmp odpada - konieczna zmiana)

//odkomentowanie następnego wiersza (usuniecie '//' z przodu spowoduje zablokowanie wy¶wietlania bł±dów.
// ini_set('display_errors', 0);

////////////////////////////////////////////////////koniec konfiguracji////////////////////////////////////////

Konfiguracja lighttpd:

# lighttpd configuration file
# 
## modules to load
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules = ( 
#    "mod_rewrite", 
#    "mod_redirect", 
#    "mod_alias", 
    "mod_auth", 
#    "mod_status", 
#    "mod_setenv",
#    "mod_fastcgi",
#    "mod_proxy",
#    "mod_simple_vhost",
    "mod_cgi",
#    "mod_ssi",
#    "mod_usertrack",
#    "mod_expire",
#    "mod_webdav"
)

# force use of the "write" backend (closes: #2401)
server.network-backend = "write"

## a static document-root, for virtual-hosting take look at the 
## server.virtual-* options
server.document-root = "/www1/"
server.follow-symlink = "enable"
server.dir-listing = "enable"

## where to send error-messages to
#server.errorlog = "/var/log/lighttpd/error.log"

## files to check for if .../ is requested
index-file.names = ( "index.html", "index.php", "index.htm", )

cgi.assign = (
    ".php" => "/usr/bin/php-cgi",
    ".sh"    => "/bin/sh"
)

## mimetype mapping
mimetype.assign = (  
    ".pdf"   => "application/pdf",
    ".class" => "application/octet-stream",
    ".pac"   => "application/x-ns-proxy-autoconfig",
    ".swf"   => "application/x-shockwave-flash",
    ".wav"   => "audio/x-wav",
    ".gif"   => "image/gif",
    ".jpg"   => "image/jpeg",
    ".jpeg"  => "image/jpeg",
    ".png"   => "image/png",
    ".css"   => "text/css",
    ".html"  => "text/html",
    ".htm"   => "text/html",
    ".js"    => "text/javascript",
    ".txt"   => "text/plain",
    ".dtd"   => "text/xml",
    ".xml"   => "text/xml"
 )

## Use the "Content-Type" extended attribute to obtain mime type if possible
#mimetypes.use-xattr = "enable"

## send a different Server: header
## be nice and keep it at lighttpd
server.tag = "lighttpd"

$HTTP["url"] =~ "\.pdf$" {
    server.range-requests = "disable"
}

##
# which extensions should not be handle via static-file transfer
#
# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

######### Options that are good to be but not neccesary to be changed #######

## bind to port (default: 80)
server.port = 83

## bind to localhost (default: all interfaces)
#server.bind = "localhost"

## error-handler for status 404
#server.error-handler-404 = "/error-handler.html"
#server.error-handler-404 = "/error-handler.php"

## to help the rc.scripts
server.pid-file = "/var/run/lighttpd.pid"


###### virtual hosts
##
##   If you want name-based virtual hosting add the next three settings and load
##   mod_simple_vhost
##
## document-root =
##   virtual-server-root + virtual-server-default-host + virtual-server-docroot or
##   virtual-server-root + http-host + virtual-server-docroot
##
#simple-vhost.server-root = "/home/weigon/wwwroot/servers/"
#simple-vhost.default-host = "grisu.home.kneschke.de"
#simple-vhost.document-root = "/pages/"


## 
## Format: <errorfile-prefix><status>.html
## -> ..../status-404.html for 'File not found'
#server.errorfile-prefix = "/www/error-"

## virtual directory listings
#server.dir-listing = "enable"

## send unhandled HTTP-header headers to error-log
#debug.dump-unknown-headers = "enable"

### only root can use these options
#
# chroot() to directory (default: no chroot() )
#server.chroot = "/"

## change uid to <uid> (default: don't care)
#server.username = "nobody"
#
server.upload-dirs = ( "/mnt/sda3/tmp" )

## change uid to <uid> (default: don't care)
#server.groupname = "nobody"

#### compress module
#compress.cache-dir          = "/dev/null/"
#compress.filetype           = ("text/plain", "text/html")

#### proxy module
## read proxy.txt for more info
#proxy.server = (
#    ".php" => (
#        "localhost" => (
#            "host" => "192.168.0.101",
#            "port" => 80
#        )
#    )
#)

#### fastcgi module
## read fastcgi.txt for more info
#fastcgi.server = (
#    ".php" => (
#        "localhost" => (
#            "socket" => "/tmp/php-fastcgi.socket",
#            "bin-path" => "/usr/local/bin/php"
#        )
#    )
#)

#### CGI module
#cgi.assign = ( ".pl"  => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" )

#### SSL engine
#ssl.engine = "enable"
#ssl.pemfile = "server.pem"

#### status module
#status.status-url = "/server-status"
#status.config-url = "/server-config"

#### auth module
## read authentification.txt for more info
#auth.backend = "plain"
#auth.backend.plain.userfile = "/etc/lighttpd/lighttpd.user"
#auth.backend.plain.groupfile = "/etc/lighttpd/lighttpd.group"
#auth.require = (
#    "/server-status" => ( 
#        "method"  => "digest",
#        "realm"   => "download archiv",
#        "require" => "group=www|user=jan|host=192.168.2.10"
#    ),
#    "/prv" => ( 
#        "method"  => "digest",
#        "realm"   => "download archiv",
#        "require" => "user=dave"
#    )
#)

#### url handling modules (rewrite, redirect, access)
#url.rewrite = ( "^/$" => "/server-status" )
#url.redirect = ( "^/wishlist/(.+)" => "[url]http://www.123.org/$1[/url]" )

#### both rewrite/redirect support back reference to regex conditional using %n
#$HTTP["host"] =~ "^www\.(.*)" {
#    url.redirect = ( "^/(.*)" => "http://%1/$1" )
#}

#### expire module
#expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")

#### ssi
#ssi.extension = ( ".shtml" )

#### setenv
#setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
#setenv.add-response-header = ( "X-Secret-Message" => "42" )

#### variable usage:
## variable name without "." is auto prefixed by "var." and becomes "var.bar"
#bar = 1
#var.mystring = "foo"

## integer add
#bar += 1
## string concat, with integer cast as string, result: "[url=http://www.foo1.com]www.foo1.com[/url]"
#server.name = "www." + mystring + var.bar + ".com"
## array merge
#index-file.names = (foo + ".php") + index-file.names
#index-file.names += (foo + ".php")

#### include
#include /etc/lighttpd/lighttpd-inc.conf
## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
#include "lighttpd-inc.conf"

#### include_shell
#include_shell "echo var.a=1"
## the above is same as:
#var.a=1

#### webdav
#$HTTP["url"] =~ "^/webdav($|/)" {
# webdav.activate = "enable"
# webdav.is-readonly = "enable"
# webdav.sqlite-db-name = "/var/run/lighttpd-webdav-lock.db"
#}

$SERVER["socket"] == ":443" {
  ssl.engine = "enable" 
  ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" 
}

Konfiguracja 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
allow_call_time_pass_reference = On

safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
;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 = 30000    ; Maximum execution time of each script, in seconds.
max_input_time = 60000    ; Maximum amount of time each script may spend parsing request data.
;max_input_nesting_level = 64
memory_limit = 16M    ; 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 = 5000M
;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"
doc_root = "/www1"
user_dir =
extension_dir = "/usr/lib/php"
enable_dl = On
;cgi.force_redirect = 0
;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 = "/mnt/sda3/tmp"
upload_max_filesize = 5000M
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 = 4    ;The size of each shared memory segment in MB.

[Date]
;date.timezone =
;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 =
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 = "/mnt/sda3/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="/mnt/sda3/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=
MiniPC 6xRJ45 2Gb, N100, 16GB DDR5, 1TB NVMe (Gargoyle)
Linksys WRT3200ACM (Gargoyle)
Tp-link 1043NDv2 (Gargoyle)

53 (edytowany przez patryk 2011-02-20 15:36:31)

Odp: http/php manager plików

u mnie na nowym serwerze jest też znowu to samo. staram sie to rozgryźć
(z jakiegoś powodu ustawienia w lighttpd.conf i php.ini są ignorowane - pliki tymczasowe są zapisywane do /tmp)

54

Odp: http/php manager plików

Czy mógłby ktoś pokazać tzn jakieś fotki działania waszego skryptu jak to działa??

55

Odp: http/php manager plików

Czy ktos to rozwija ?

Czy ewentualnie jest szansa aby to wrzucic do standardowego uhttpd p[od GG lub Openwrt bez instalowania dodatkowego serwera i php?

56

Odp: http/php manager plików

To jest w php napisane więc jak chcesz bez php to uruchomić...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

57

Odp: http/php manager plików

czyli bez dodania pelnego php ani rusz ?

58

Odp: http/php manager plików

Dokładnie smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.