Keresés

Új hozzászólás Aktív témák

  • CS_D

    senior tag

    11. Lighttpd + PHP5

    Ezek a csomagok valószínűleg már csak akkor fognak felférni, hogyha külső meghajtóra telepíted őket.

    Ennek a csomagnak a telepítése és konfigurálása tényleg megizzasztott. Pár órát véres szemmel ültem a gép előtt, mire működésre bírtam.

    opkg update
    opkg install lighttpd lighttpd-mod-access lighttpd-mod-accesslog lighttpd-mod-auth lighttpd-mod-cgi lighttpd-mod-fastcgi lighttpd-mod-scgi
    opkg install php5 php5-cgi php5-fastcgi php5-mod-gd
    opkg install libsqlite3

    vi /etc/lighttpd/lighttpd.conf

    Módosítani kell az alábbiakat: lehet, hogy csak egy #-et kell kivenni az adott dolog elől, de van, ahol bele is kell írni.

    Értelemszerűen a documentum root-ot, meg a log fájlok helyeit is meg kell adni.

    server.modules = (
    "mod_fastcgi",
    )

    server.document-root = "/mnt/www/"
    server.port = 8081

    fastcgi.server = (
    ".php" => (
    "localhost" => (
    "socket" => "/tmp/php-fastcgi.socket",
    "bin-path" => "/usr/bin/php-fcgi"
    )
    )
    )

    /etc/init.d/lighttpd enable
    /etc/init.d/lighttpd start

    A /etc/php.ini fájlban találhatóak a php beállításai. Ezt is értelemszerűen kell konfigurálni, kinek mire van szüksége, stb.

    Teszteljük a webszervert:
    Hozzunk létre egy üres fájlt a webszerver gyökerébe.
    touch /mnt/www/index.php
    vi /mnt/www/index.php

    Helyezzük el benne:
    <?php
    phpinfo();
    ?>

    Így a php szerver a 8081-es porton fog futni. Nézzük meg a 192.168.1.1:8081 címen, és ha jól dolgoztunk, akkor egy php-információs oldal fog betöltődni.

    [ Szerkesztve ]

  • CS_D

    senior tag

    12. Tanácsok

    12.1 SSH port áthelyezése
    vi /etc/config/dropbear

    config dropbear
    option PasswordAuth 'on'
    option Port 'xxx'

    xxx legyen az a port, amin használni szeretnéd. Ha WAN felől is el szeretnéd érni a routert ssh-n, akkor javaslom, hogy keress helyette egy másik portot, mert robotok hamar meg fognak találni, és megpróbálnak belépni. Miután áttettem a portoto máshova, nem próbálkoztak többet.

    12.2 Tűzfal
    Luci-ban:
    Network->Firewall->Traffic control

    Advanced Rules-nál hozzáadhatsz portokat, amiket el szeretnél érni. Legyen most xxx port hozzáadva
    Name: xxx port
    Source: wan
    Destination: device
    Add -> Protocol
    Source port: hagyd üresen
    Destination port: xxx
    Action: accept (ha reject, akkor elutasítja a kapcsolódást)

    Amiket mindenképp érdemes kiengedni:
    - ssh wan felé TCP
    - php szerver 8081 TCP
    - transmission által használt port TCP + UDP
    - esetleg FTP 21 TCP

  • vargalex

    félisten

    válasz Narancs81 #58 üzenetére

    Hi!

    Nekem FiberPower 15 van, úgyhogy nálam nem a router a szűk keresztmetszet. Viszont seed-elési problémám azon kívül, hogy az UPC torrent korlátozás azért tud aktív lenni (transmission-al, rtorrent-el nem kerülhető ki) nem mondhatom, hogy lenne. Itt láthatsz is egy nagyjából átlagos napot.
    Egyébként fat32 partíción biztos nincs ext3 swapfile. :) Egyszerűen ott van a swap file. Hát, így tényleg mindenféle filerendszer előfordul nálad.

    Biztosan nyitva van a routeren a transmission által használt port? Mert, ha nincs akkor még a peer-ek száma is érthető lehet. Mondom, nálam a transmission konkrétan annyi peer-t lát, mint amennyi a tracker szerint is van.

    Egyébként rTorrent-hez is van webes GUI, a ruTorrent. Egy lighttpd alá simán felrakható (php5 kell hozzá). Illetve van hozzá remote kliens is, az nTorrent.

    Remote kliensekben transmission-hoz azért nagyobb a választék.

    Alex

  • CS_D

    senior tag

    válasz CS_D #51 üzenetére

    Kiegészíteném a lighttpd konfigurációját.

    Az említett beállítások mellett nekem 6 példányban futott mindig a php-fcgi. Igazából nem tudom pontosan, hogy miért is lenne arra szükség. Foglalja a memóriát, de gyakorlati hasznát még nem sikerült látnom.

    Az ASUS WL-500gP fórumban olvasgatva találtam egy beállítást, aminek segítségével 2 példányra le lehet szorítani:

    fastcgi.server = (
    ".php" => (
    "localhost" => (
    "socket" => "/tmp/php-fastcgi.socket",
    "bin-path" => "/usr/bin/php-fcgi",
    "min-procs" => 1,
    "max-procs" => 1,
    "max-load-per-proc" => 4,
    "bin-environment" =>
    ( "PHP_FCGI_CHILDREN" => "1",
    "PHP_FCGI_MAX_REQUESTS" => "5000" )
    )
    )
    )

    [ Szerkesztve ]

  • vargalex

    félisten

    válasz Oczu #127 üzenetére

    Hi!

    trspeed parancs nincs, az nálam egy alias:

    alias trspeed='transmission-remote -n username:password -l'

    Többféle statisztikai kiegészítés létezik:

    1. luci-app-statistics (ekkor nyilván a statisztikát a luci felületén meg is nézheted)
    2. vnstat + lighttpd + vnstat php frontend vagy jsvnstat
    3. Saját statisztika

    Persze biztosan létezik még más is. Neked kell eldöntened, hogy melyik az, ami megfelel.

    Alex

  • vargalex

    félisten

    válasz CS_D #263 üzenetére

    Hi!

    Kipróbáltam lighttpd alatt, nálam sleep nélkül is hibátlanul működik.
    Nálam a config file szét van bontva modulok szerint, én így jobban átlátom. Ezek tartalma természetesen összegyúrható egy config file-ba.

    A /etc/lighttpd/lighttpd.conf-om érdemi tartalma:

    server.network-backend = "write"
    server.document-root = "/opt/share/www/"
    server.errorlog = "/opt/var/log/lighttpd/error.log"
    index-file.names = ( "index.html", "default.html", "index.htm", "default.htm", "index.php" )
    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"
    )
    $HTTP["url"] =~ "\.pdf$" {
    server.range-requests = "disable"
    }
    static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".sh" )
    server.port = 8081
    server.pid-file = "/var/run/lighttpd.pid"
    server.upload-dirs = ( "/tmp" )
    include_shell "cat /etc/lighttpd/conf.d/*.conf"

    /etc/lighttpd/conf.d/01-access.conf:
    server.modules += ( "mod_access" )

    /etc/lighttpd/conf.d/02-auth.conf:
    server.modules += ( "mod_auth" )
    auth.backend = "htdigest"
    auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd"
    auth.require = (
    "/mypage/" =>
    (
    "method" => "digest",
    "realm" => "my_realm",
    "require" => "valid-user"
    ),
    "/rtorrent/" =>
    (
    "method" => "digest",
    "realm" => "my_realm",
    "require" => "valid-user"
    )
    )

    /etc/lighttpd/conf.d/03-cgi.conf:
    server.modules += ( "mod_cgi" )
    cgi.assign = ( ".sh" => "/bin/sh" )

    /etc/lighttpd/conf.d/04-accesslog.conf:
    server.modules += ( "mod_accesslog" )
    accesslog.filename = "/opt/var/log/lighttpd/access.log"

    /etc/lighttpd/conf.d/05-https.conf:
    $SERVER["socket"] == ":443" {
    #### SSL engine
    ssl.engine = "enable"
    ssl.pemfile = "/etc/lighttpd/lighttpd.pem"
    server.document-root= "/opt/share/www_https"
    }

    /etc/lighttpd/conf.d/06-scgi.conf:
    server.modules += ( "mod_scgi" )
    scgi.server = (
    "/RPC2" =>
    ( "127.0.0.1" =>
    (
    "host" => "127.0.0.1",
    "port" => 5000,
    "check-local" => "disable"
    )
    )
    )

    /etc/lighttpd/conf.d/10-php-fcgi.conf:
    server.modules += ( "mod_fastcgi" )
    fastcgi.server = (
    ".php" =>
    (
    "localhost" =>
    (
    "socket" => "/tmp/php-fcgi.sock" + var.PID,
    "bin-path" => "/usr/bin/php-fcgi",
    "max-procs" => 1,
    "max-load-per-proc" => 4,
    "bin-environment" =>
    (
    "PHP_FCGI_CHILDREN" => "1",
    "PHP_FCGI_MAX_REQUESTS" => "70000"
    )
    )
    )
    )

    [ Szerkesztve ]

    Alex

  • CS_D

    senior tag

    válasz vargalex #264 üzenetére

    Szerintem nekem is ugyanígy néz ki, és mégsem megy. :(

    Hátha észreveszel rajta valamit, ami elkerülte a figyelmem:

    # 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 = "/mnt/www/"

    ## where to send error-messages to
    server.errorlog = "/mnt/www/log/error.log"

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

    ## 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", ".sh" )

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

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

    ## 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"
    #server.event-handler = "poll"

    ###### 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/www/tmp" )
    server.max-request-size= 2097152

    ## 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/bin/php-fcgi",
    "min-procs" => 1,
    "max-procs" => 1,
    "max-load-per-proc" => 4,
    "bin-environment" =>
    ( "PHP_FCGI_CHILDREN" => "1",
    "PHP_FCGI_MAX_REQUESTS" => "5000" )
    )
    )
    )

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

    #### 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 = "lighttpd.user"
    #auth.backend.plain.groupfile = "lighttpd.group"
    #auth.require = (
    # "/server-status" => (
    # "method" => "digest",
    # "realm" => "download archiv",
    # "require" => "group=www|user=jan|host=192.168.2.10"
    # ),
    # "/server-info" => (
    # "method" => "digest",
    # "realm" => "download archiv",
    # "require" => "group=www|user=jan|host=192.168.2.10"
    # )
    #)

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

    #### 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: "www.foo1.com"
    #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"
    #}

  • vargalex

    félisten

    válasz Tutu7030 #305 üzenetére

    Hi!

    Több lehetőséged is van:

    - luci-s statisztikák (luci-app-statistics csomag, collectd-vel megy. Akár port forgalom, load, hdd statisztika, stb.)
    - vnstat (megjelenítéshez vnstat php frontend, jsvnstat, vagy trunk-ban van már luci-app-vnstat csomag)
    - saját készítésű statisztika

    Alex

  • CS_D

    senior tag

    válasz vargalex #326 üzenetére

    Ezt megerősíthetem. :) Nem tart szeritnem tovább 10-20 percnél, ha tudja az ember, hogy mit akar feltelepíteni.

    Én kb 10szer csináltam ezt meg, mert egyszer a transmission volt hibás a trunkban, egyszer meg a samba log-olása miatt volt problémás a router. Ezért jónéhányszor kezdtem előlről a telepítést.

    Megcsináltam egy text fájlban a beírandó parancsokat, és így már percek alatt készen is volt. A konfig fájlok visszamásolása pedig fél perc. :)

    Természtetesen a konfig fájlok nagy kincsek. Emlékszem, hogy a sambával, meg a php-vel elment jópár munkaórám. De szerencsére, a lementett konfigfájlok visszamásolásával rögtön használható lesz.

    [ Szerkesztve ]

  • CS_D

    senior tag

    válasz CS_D #448 üzenetére

    Majdnem elfelejtettem leírni, hogy mire is jó az így készített firmware.

    Tehát:
    - ext4 fájlrendszer támogatása
    - nyomtató
    - uvc-s webcamera
    - fdisk lemezkezelő, partícionáló program
    - mc - midnight commander
    - dinamikus dns kliens

    Lucit nem írtam, de azt könnyű hozzáadni.

    Elég minimalista, de én ezt szeretem. Samba, transmission, php, stb. utólag lesz feltelepítve az overlay-re. Számomra ez az átláthatóbb.

    És a legfontosabb kimaradt:
    habár az új trunk firmware-nél már defaultból szerepel a block-mount csomag extroot támogatással, de régebbi verziók esetén (pl backfire), a block-mount csomagot is hozzá kell adni block-extroot-tal.

  • vandeminek

    tag

    válasz vargalex #474 üzenetére

    Természetesen nem az rrdtool1-et használom, de még így is hiányoznak nekem olyan opciók mint az --x-grid valamint az adatok kiírásánál a rendezés kicsit körülményesebb mint a rendes rrdtool-ban (1.2.x sima archlinux alatt tudja ezeket). Bár ezek nélkül jelenleg megvagyok :)
    Adatokat a collectd gyűjtögeti nekem, de majd a merevlemez hőmérsékletét szeretném belevenni még.
    Nálam jelenleg 4 collectd process van elindítva, de eddig még nem érzékeltem, hogy gond lenne vele. Kábelen 12-13MiB/s-el tudok olvasni, írni pedig 10-11/MiB/s.

    A grafikonokat shell szkriptek generálják, most még a PHP hív meg, de majd ha kész lesz berakom őket cron job-nak, de automatikusan csak a kis grafikonokat akarom generálni, a felugró nagyokat csak akkor generálom, ha meg akarom nézni. Most ez a tervezet, valószínűleg még csiszolódni fog :)

  • Tutu7030

    veterán

    válasz pchris #836 üzenetére

    Favágó megoldás, de mi lenne, ha telepítenél a routerre valami php-s file listázó alkalmazást?

    LG Optimus G E975 v20 -> LG G4 H815 V29a-EUR-XX -> Huawei Mate 9(MHA-L29) -> Huawei P30 Pro -> Honor Magic5 Pro

  • Tutu7030

    veterán

    válasz pchris #838 üzenetére

    Google talál sok php scriptet. Csak a routeren kell beállítani, hogy kívülről is elérhető legyen a listázandó mappa. Ebben meg majd esetle Alex tud segíteni.:)

    LG Optimus G E975 v20 -> LG G4 H815 V29a-EUR-XX -> Huawei Mate 9(MHA-L29) -> Huawei P30 Pro -> Honor Magic5 Pro

  • vargalex

    félisten

    válasz pchris #838 üzenetére

    Hi!

    File browser-hez még csak php script sem kell, az uhttpd elintézi neked magában. Pl. egy a /mnt tartalmának megjelenítéséhez a 8081-es porton hozzá kell adnod a következőt a /etc/config/uhttpd-hez:

    config uhttpd filebrowser
    list listen_http 0.0.0.0:8081
    option home /mnt
    option no_dirlists 0
    option realm filebrowser

    Ebből ugye a no_dirlists 0 a lényeg. Majd újra kell indítani az uhttpd-t:

    /etc/init.d/uhttpd restart

    Ezzel az uhttpd-ből 2 példány fog futni, egy a Luci kiszolgálásához, egy pedig a most definiált filebrowserhez.

    Nyilván kell még port nyitás, hogy kívülről látható legyen. Majd WAN oldalról böngészőben megnyitva a http://kulso_ip_cimed:8081 oldalt látni fogod a listát.

    [ Szerkesztve ]

    Alex

  • vargalex

    félisten

    válasz mcfly13 #890 üzenetére

    Hi!

    Portot nyitottál a transmissionnak?

    Szimplán az rTorrent-hez elég a screen, ha a ruTorrent webes felületet is használni akarod, akkor kell valamilyen web szerver php támogatással. Az alap uhttpd alá is beizzítható a php, de lighttpd-t szokás használni.

    Alex

  • mcfly13

    tag

    Üdv!
    Tudna valaki segíteni?Olyan problémával küzdök,hogy felraktam a lighttpd ami hibátlanul működik,összedobtam magamnak egy honlapot ami szintén hibátlanul működik,de kívülről szeretném elérni a lapot ddns-el de mindig a luci felület jön be.Át lehet ezt valahogy állítani,hogy a saját weblap legyen helyette.
    Ja meg még egy a php-fcgi 3 példányban fut.

  • vargalex

    félisten

    válasz mcfly13 #1104 üzenetére

    Szia!

    A LuCI-t az uhttpd szolgálja ki. A config-jában tudod módosítani a portot 80-ról, majd a lighttpd config-ban beállítod 80-ra.
    A php-fcgi több példányban való futása normális.

    Alex

Új hozzászólás Aktív témák