php+mysql

php+mysql

Hozzászólások

[quote:b1264e7d07="edaile"]Nem csak a php-nak van timeoutja, hanem az apache-nak is.

Igaz. Az Apache timeout-jára nem is gondoltam, de mostantól ezt is figyelembe veszem.
Viszont még mindig nem tudom mennyi legyen. Te pl. mennyit ajánlanál?
(30sec ugye kevés...)

[quote:b1264e7d07="edaile"]A mysql-t is tudod korlátozásokkal indítani, hogy egy tranzakcióban mennyi lehet az adatforgalom.

Ebből úgy gondolom, hogy ez nem azonos a max_allowed_packet beállítással... :-(

Üdv.: Tamaas

Ha valamit nem tudsz 30 sec alatt feltölteni, akkor nem érdemes az apache/mysql-t konfigurálgatni. Ebben az esetben én FTP-t használnék.

[quote:959e2ecdfe="vmiklos"]ilyen sorod van a /etc/php.inidben? (lehet, h nálad máshol van)
[code:1:959e2ecdfe]extension=mysql.so[/code:1:959e2ecdfe]

ha apache-n keresztul megy a dolog akkor nincs gaz, csak most ugye parancssorbol futtatom a php-t...

de, erre gondoltam a mysql-nél: max_allowed_packet Max size of packet client can read from server.

mivel a ha apacheből csinálod, akkor a httpd.conf és a php.ini is játszik, elvileg 1xűbb az eset, ha csak parancssorból csinálod, mert ott csak a php.ini. de ha megy apacheből, akkor most passz :cry:

A MySQL opciói itt találhatóak meg összeszedve:

http://dev.mysql.com/doc/refman/5.1/en/mysql-options.html

[quote:207583cf35="meridian"]sziasztok

irtam egy kis scriptet php-ben, es van benne mysql lekerdezes is...
a script konzolbol futna, de kiakad a mysql parancsoknal...hogyan lehet megadni neki hogy a mysql fuggvenyeket is kezelje ?
ez benne van ugye az elejen:
#! /usr/bin/php4 -q

Szia,
esetleg egy konkret hibauzenet sokat tud segiteni idonkent. Ha be tudod masolni lehet, hogy konyebben tudunk segiteni!
Ajanlom meg a PHP log-okat megnezni, az szinten segithet.

Udv,
Csaba

extension=mysql.so
ez segített, csak nem az etc/php4/apache/php.ini-be kellett betenni, hanem a etc/php4/cgi/php.ini-be

[quote:d3206b9611="meridian"]extension=mysql.so
ez segített, csak nem az etc/php4/apache/php.ini-be kellett betenni, hanem a etc/php4/cgi/php.ini-be

hm, ez vmi mániákus szétszedős disztró lesz. két config file a két módra :D
debian? :wink:

[quote:483be91a81="suti"]szerintem a hibád a mysql configjában lehet, azaz az adott usernek(amivel a php scripted kapcsolódik) nincsen file joga.

Sajnos nem ez a baj, mert van neki (megnéztem).
De ha nem lenne joga, akkor kisebb fájlokat sem tudnék feltölteni, s 1MB alatt megy a dolog.
Tehát valahol máshol van az eb elhantolva...

De persze köszi az ötletet.

Oregon: A te ötleted este kipróbálom a hibakeresésre.

Valakinek valami más ötlete, konkrét megoldással?

Üdv.: Tamaas

Ez egyébbként is igy van minden rendes helyen. Gondolj bele, hogy ha shell-ből futtatom a php-ét akkor értelemszerüen több mindent engedélyezek neki mint a webes usereknek. Itt nincs tiltva a system parancs és társai, hozzáfér rendesen a levelezéshez, meg ilyenek. Ez a webről nagyon nem igy van.

Esetleg a PHP dl parancsát is lehet használni. Ezzel dinamikusan lehet olyan modulokat betölteni, amit a konfig fila alapján nem tölt be eleve.

Van valamilyen hibaüzeneted? Sokat segítene....

en a dl() fuggvenyt hasznalnam ilyenkor, igy nem kell szetcseszni a config filet

[quote:5ff66891d8="Anonymous"]Ez egyébbként is igy van minden rendes helyen. Gondolj bele, hogy ha shell-ből futtatom a php-ét akkor értelemszerüen több mindent engedélyezek neki mint a webes usereknek. Itt nincs tiltva a system parancs és társai, hozzáfér rendesen a levelezéshez, meg ilyenek. Ez a webről nagyon nem igy van.

hát nincs kedvem erről flamelni, de ha kell egy plusz modul, akkor azt berakom, ahogy Begin mondta, stb. sztem hülyeség minden programnak 8config :wink:

Nem akarnek kotekedni, de ha mar konzol, mi a reteknek kell php-ban megirni? Nem lenne sokkal egyszerubb a perl?

ha valaki már 1x megtanult adatbázis kezelni phpban, akkor lehet, h nincs kedve perlben is :wink:
bár perlben adatbázist kezelni soha nem próbáltam... mennyire hasonlóak a függvények? :?

[quote:d25fd0260a="BOB"]Nem akarnek kotekedni, de ha mar konzol, mi a reteknek kell php-ban megirni? Nem lenne sokkal egyszerubb a perl?

nem ismerem a perl-t de en azert hogy scripteket irkaljak ne tanulom meg :)

[quote:15457fc836="vmiklos"]ha valaki már 1x megtanult adatbázis kezelni phpban, akkor lehet, h nincs kedve perlben is :wink:
bár perlben adatbázist kezelni soha nem próbáltam... mennyire hasonlóak a függvények? :?

Kinek kinek szaja ize szerint, itt annyi a fo kulonbseg php-hoz kepest h a DBI modul ismeri a helyorzoket tehat lehetoseged van elokesziteni egy lekerdezest beszurt sztringek nelkul, igy nagysagrendekkel nehezebb sql exploitokkal szetcseszni. :) Amugy nem bonyolult.

egy egyszeru peldaval kb ennyi:
[code:1:15457fc836]# Betoltod a DBI modult
use DBI;

# Meghatarozod az adatbazis-azonositot mondjuk egy
# localneten levo postgresql adatbaziskezelon
$dsn = 'DBI:Pg:dbname=testdatabase;host=192.168.0.100;port=5432';

# Kapcsolodsz az adatbazishoz
$dbh = DBI->connect($dsn,$user,$pass);

#itt a kerdojel fogja jelezni hogy egy helyorzorol van szo
$sth = $dbh->prepare("SELECT ezmegaz FROM tabla WHERE kutymuruty = ?");

# itt teszed be a stringet a lekerdezesbe a kerdojel helyere
$sth->execute('lacafaca');

# itt meg kihamozod az eredmenyt a lefuttatott lekerdezesbol
while ($pereputty = $sth->fetchrow_hashref()) {
print $pereputty->{'ezmegaz'};
}

# ez a megoldas kb. a php sql_fetch_array fuggvenyenek felel meg,
# de itt is ki lehet szedni sima tombbe az eredmenyt stb.
# Most viszont inkabb bezarjuk a kapcsolatot
$dbh->disconnect();[/code:1:15457fc836]

[quote:d647ff83f2="meridian"]nem ismerem a perl-t de en azert hogy scripteket irkaljak ne tanulom meg :)

Ez a jo hozzaallas, nem ismerem de nem is tanulom meg. Gratula :) Gondolom a Javat se tanulnad meg csak azert hogy szervleteket irogass benne :)

[quote:78f7ebc2b9="BOB"][quote:78f7ebc2b9="meridian"]nem ismerem a perl-t de en azert hogy scripteket irkaljak ne tanulom meg :)

Ez a jo hozzaallas, nem ismerem de nem is tanulom meg. Gratula :) Gondolom a Javat se tanulnad meg csak azert hogy szervleteket irogass benne :)

ne forgasd ki a szavaim...ha lehet php-ben scripteket irogatni, minek tanuljak meg még egy nyelvet, ha erre a php is tokéletes...ha szukségem lenne a perl-re megtanulnam...addig meg se idom se kedvem nincs uj nyelvet tanulni ameddig nem tudom mire hasznaljam...

Hali lenne egy kis problémám.

Vagyis most már kettő, mivel a gondom nem tudtam ide feltölteni...
Szóval ide feltettem a bajom leírását:

http://penzes-tamaas.uw.hu/pub/gond.txt

Ha láttok valamilyen megoldást a problémára, akkor válaszoljatok már ide legyetek szívesek.

Előre is köszi.

Üdv.: Tamaas

ui.: Ide nem tudtam feltölteni a hozzászólást, mert nem engedte a rendszer.
Ez a hibaüzenet: "A kliensednek nincs joga dokumentumokat kérni a szervertől!" De ez annyira nem érdekes. Gyanítom a sok-sok php kód nem tetszik neki...

szerintem a hibád a mysql configjában lehet, azaz az adott usernek(amivel a php scripted kapcsolódik) nincsen file joga.
ennyi.

a mysql adatbázis user táblájában van elvileg egy ilyen attrib: File_priv. na ennek elvileg yesnek kellesz lennie. ha nem ez a hiba, akkor hirtelen passz.
persze ha ez a hiba és átírod N-ről Y-ra, akkor még egy "flush privileges" -t is nyomjál.

Nekem elsore jonak nez ki a kod.

Tedd be a kodba ezt is, hogy hamarabb megtalald a hibat:

[code:1:4f3ad95f34]
<?
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', true);
?>
[/code:1:4f3ad95f34]

[quote:3db46ba1be="edaile"]Van valamilyen hibaüzeneted? Sokat segítene....

Megvan:

[code:1:3db46ba1be]
Error: 2006 (CR_SERVER_GONE_ERROR)
Message: MySQL server has gone away
[/code:1:3db46ba1be]

Egy darab hibát nem írt ki, így picit érdekes volt.
(Vagyis, csak ki kellett íratnom...)

Megoldásom is lett időközben:
[quote:3db46ba1be="my.ini"]
[mysqld]
set-variable=key_buffer=48M
set-variable=max_allowed_packet=48M

Érdekes módon a beállított 48MB mellett már tudok 15-16MB-os fájlokat feltölteni a helyi szerverre, de nagyobbakat még nem. (Persze ezeket az értékeket lehet még növelni...) Vagyis nem magára a szerverre, hanem a sajátomra otthon.

A távoli szervernél viszont megintcsak gondjaim vannak. Sajnos otthonról csak 128k-val tudok feltölteni (Chello Light...) és így a 15MB-os fájlt elég sokáig tartott átküldeni a neten. Csakhogy így jócskán túlléptem a kódfuttatási határidőt, s még csak az adatbázisba sem szúrta be a fájlt. Emellett nagy fehér üres képernyőm lett a böngészőben.

Gyanítom, hogy ezt egyszerűen korrigálhatom ha a php.ini-ben feljebb veszem az időkorlátokat, de szerintetek mennyire szabad?
Mert ugye, ha valamelyik kódrészletem generál egy végtelen ciklust (hiba ugye minden kódban lehet), akkor meg leterhelem a szervert ezen ideig.
Tehát szerintetek mennyire vehetem fel a mostani 30s-ről?

Üdv.: Tamaas

sziasztok

irtam egy kis scriptet php-ben, es van benne mysql lekerdezes is...
a script konzolbol futna, de kiakad a mysql parancsoknal...hogyan lehet megadni neki hogy a mysql fuggvenyeket is kezelje ?
ez benne van ugye az elejen:
#! /usr/bin/php4 -q

Nem csak a php-nak van timeoutja, hanem az apache-nak is. A mysql-t is tudod korlátozásokkal indítani, hogy egy tranzakcióban mennyi lehet az adatforgalom.

ilyen sorod van a /etc/php.inidben? (lehet, h nálad máshol van)
[code:1:3c8f52f669]extension=mysql.so[/code:1:3c8f52f669]