Kuinka PHP:lla chmod();
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
Ongelma on se, etten (o)saa tehdä skriptillä kansiota, koska kyseisen kansion chmod on 0755. Kuinka tämä muutetaan tilapäisesti 0777:ksi php-skriptilla? Pitäisi saada toimimaan mielellään ensin OS X:ssa, mutta myös Linux-alustalla.
-
- Viestit: 2981
- Liittynyt: 24.5.2008 klo 18.54
- Paikkakunta: Vantaa
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja Marbo »
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
Ja luulit etten ole tuota lukenut? Kyse on siitä, ettei wörki…Marbo kirjoitti:Olisko google ollu kovasana? http://php.net/manual/en/function.chmod.php
-
- Viestit: 2981
- Liittynyt: 24.5.2008 klo 18.54
- Paikkakunta: Vantaa
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja Marbo »
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
Koodissa homma näyttää ihan siltä kuin php.netissäkin:Marbo kirjoitti:Sitten kannattaa varmaan laittaa koodia esille?
Koodi: Valitse kaikki
chmod( "$polku", 0777 );
Kysymys kuuluu, kuinka tämä tehdään suoraan php-skriptista, jottei tarvitse erikseen mennä muuttamaan näitä oikeuksia?
-
- Viestit: 417
- Liittynyt: 22.9.2009 klo 11.44
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja aritko »
Pari vaihtoehtoa:
1. Muuta yläkansion CHMOD käsin pysyvästi
2. Muuta Apachen (jos siis käytät apachea) user tai group, niin että apachella on oikeudet yläkansioon. Löytyy httpd.conf tiedostosta. (HUOM! tämä voi aiheuttaa sitten muita ongelmia.)
3. Muuta yläkansion user tai group vastamaan apachen useria tai grouppia
4. Käytä PHP:n FTP komentoja luodaksesi kansion (tällöin voit syöttää käyttäjätunnuksen kenen nimellä kansio luodaan)
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
Kiitos neuvoista. Ymmärsit kysymykseni täysin oikein.aritko kirjoitti:Haluat siis luoda kansioon uuden kansion, mutta tämä ei onnistu koska yläkansion oikeudet ei anna myötä?
Pari vaihtoehtoa:
1. Muuta yläkansion CHMOD käsin pysyvästi
2. Muuta Apachen (jos siis käytät apachea) user tai group, niin että apachella on oikeudet yläkansioon. Löytyy httpd.conf tiedostosta. (HUOM! tämä voi aiheuttaa sitten muita ongelmia.)
3. Muuta yläkansion user tai group vastamaan apachen useria tai grouppia
4. Käytä PHP:n FTP komentoja luodaksesi kansion (tällöin voit syöttää käyttäjätunnuksen kenen nimellä kansio luodaan)
Noin äkkiseltään tulee sellainen olo, että php-skripti ei selviä tästä täysin itsenäisesti.
Skenario on se, että teen php:lla toimivaa kuvagalleriaa. Tavoitteena on galleria, joka olisi käyttäjälle varsin suoraviivainen.
Tämänhetkinen toimintaidea:
Kopioidaan kansioon index.php ja yksi kansio siihen liittyviä tiedostoja. Kootaan muihin alakansioihin näyttökooltaan sopivia kuvia (esim. 800 x 600 px). Nimetään kansiot ja kuvat halutuiksi. Kopioidaan koko kansiorakennelma ftp:llä palvelimelle. Avataan index.php, joka ensimmäisellä kerralla luo jokaiseen kuvakansioon uuden kansion, jonne tekee pikkukuvat.
Toimii tällä hetkellä kotikoneella, jossa oikeuksia lavennettu. Tämän voi tietysti omassa käytössä tehdä niin, että generoi pikkukuvat omalla koneella ja heittää sen jälkeen ftp:llä palvelimelle. Tavoite saada toimimaan heittämällä suoraan nettipalvelimilla, ilman palvelimeen muuten koskemista.
-
- Viestit: 2981
- Liittynyt: 24.5.2008 klo 18.54
- Paikkakunta: Vantaa
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja Marbo »
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
Olen ajatellut, etten käytä.Marbo kirjoitti:Oletko ajatellu, että käyttäisit mySQL:ää? Ei siis tarvis luoda joka kerta kansioita. Määrittäisit vaan mySQL:ään, että missä kuva sijaitsee.
Idea on se, että kuvia voi lisätä kopioimalla uusia kansioita galleriakansioon, poistaa deletoimalla kyseisiä kansioita. Myöhemmin ehkä kuvat voi heittää jopa jollakin lomakepohjalla. Mielestäni tiedostoihin pohjautuva järjestelmä on tässä tapauksessa huomattavasti joustavampi.
-
- Viestit: 417
- Liittynyt: 22.9.2009 klo 11.44
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja aritko »
Voi selvitä tai sitten ei. Rippuu ihan serverin konfiguraatiosta. Jos serveriin on asennettu esim. suPHP, joka ajaa PHP scritpti käyttäjän tunnareilla, niin sitten toimii.mcpekkis kirjoitti:Noin äkkiseltään tulee sellainen olo, että php-skripti ei selviä tästä täysin itsenäisesti.
Eli ihan arpapeliä on lähteekö toimimaan.
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
Kiitos taas. Sitten on parempi suunnitella käyttäjän ohjeistusta oikeuksien määrittämiseen.aritko kirjoitti:Voi selvitä tai sitten ei. Rippuu ihan serverin konfiguraatiosta. Jos serveriin on asennettu esim. suPHP, joka ajaa PHP scritpti käyttäjän tunnareilla, niin sitten toimii.mcpekkis kirjoitti:Noin äkkiseltään tulee sellainen olo, että php-skripti ei selviä tästä täysin itsenäisesti.
Eli ihan arpapeliä on lähteekö toimimaan.
-
- Viestit: 417
- Liittynyt: 22.9.2009 klo 11.44
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja aritko »
Ota huomioon myös että jos luot PHP:lla kansion, niin sen kansion oikeudet on PHP:lla. Eli käyttäjä ei välttämättä pääse FTP-clientilla niitä poistamaan/muokkaamaan (ei oikeuksia).mcpekkis kirjoitti:Kiitos taas. Sitten on parempi suunnitella käyttäjän ohjeistusta oikeuksien määrittämiseen.
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
Asiaan liittyvä toinen kysymys:
Tässä SimpleImage.php:n sisältämä funktio, jolla pienennän kuvat. Toimii hyvin, paitsi niissä tilanteissa, kun kuva on todella suuri (tuhansia x tuhansia pikseleitä).
Koodi: Valitse kaikki
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if( $this->image_type == IMAGETYPE_JPEG ) {
$this->image = imagecreatefromjpeg($filename); // RIVI 53;
} elseif( $this->image_type == IMAGETYPE_GIF ) {
$this->image = imagecreatefromgif($filename);
} elseif( $this->image_type == IMAGETYPE_PNG ) {
$this->image = imagecreatefrompng($filename);
}
}
Koodi: Valitse kaikki
Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 19372 bytes) in /…/functions.php on line 53
Tämänkin voi kiertää tietysti ohjeistuksella, mutta parempi olisi, ettei skripti ainakaan keskeytyisi kuvien luonnissa, niinkuin nyt tekee.
-
- Viestit: 417
- Liittynyt: 22.9.2009 klo 11.44
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja aritko »
Lisää muistia PHP:lle. Joko php.ini tiedostosta kohta memory_limit tai scriptiin ini_set(“memory_limit”,”[määrä]M”);mcpekkis kirjoitti:Ok.Koodi: Valitse kaikki
Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 19372 bytes) in /…/functions.php on line 53
Tosta http://www.dotsamazing.com/en/labs/phpmemorylimit voit laskea paljon tarviit ja vähän ohjeita.
Muista myös että max execution time voi mennä tappiin jos muunnat paljon kuvia kerralla.
EDIT: niin ja taas se pointti että jotkut serverit antaa määrittää ini_set arvoja ja jotkut ei. Riippuu taas konffista.
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja rthghdfger »
aritko kirjoitti:Lisää muistia PHP:lle. Joko php.ini tiedostosta kohta memory_limit tai scriptiin ini_set(“memory_limit”,”[määrä]M”);mcpekkis kirjoitti:Ok.Koodi: Valitse kaikki
Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 19372 bytes) in /…/functions.php on line 53
Tosta http://www.dotsamazing.com/en/labs/phpmemorylimit voit laskea paljon tarviit ja vähän ohjeita.
Muista myös että max execution time voi mennä tappiin jos muunnat paljon kuvia kerralla.
EDIT: niin ja taas se pointti että jotkut serverit antaa määrittää ini_set arvoja ja jotkut ei. Riippuu taas konffista.
Kiitos. Nyt alkaa olla homma tuolta osin riittävästi hallussa. Tuon max_execution_timen muutin jo eilen omalla palvelimella 300 sekuntiin. Samoin sain nyt tehtyä tarkastuksen, ettei skripti yritä yli 8,5 Mpikselin kuvista tehdä thumbbeja (empiirisesti testasin rajan omilla palvelimilla).
-
- Viestit: 1533
- Liittynyt: 5.1.2007 klo 19.25
- Paikkakunta: Lappeenranta
Re: Kuinka PHP:lla chmod();
Viesti Kirjoittaja kari.patila »
Koodi: Valitse kaikki
public function mkdirr( $pathname ) {
if( empty($pathname) || is_dir($pathname) ) {
return true;
}
if ( is_file($pathname) ) {
return false;
}
$nextPathname = substr( $pathname, 0, strrpos( $pathname, '/' ) );
if( $this->mkdirr( $nextPathname ) ) {
if( !file_exists( $pathname ) ) {
$oldUmask = umask(0);
$success = @mkdir( $pathname, 0777 );
umask( $oldUmask );
return $success;
}
}
return false;
}
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit