Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Problém s fopen() a mysql_create_db()  (Přečteno 11306 krát)

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Problém s fopen() a mysql_create_db()
« kdy: 25 Dubna 2008, 08:52:28 »
Ahoj všichni.
Potřeboval bych poradit s touto maličkostí.
Dříve jsem provozoval svoje databáze na Windows (Php Home), kde po jednoduché instalaci vše běhalo jak má.
Nyní jsem si do kompu instaloval Xubuntu.
Podle návodu jsem přidal balíky Apache, php a Mysql.
Přemístil jsem si pracovní adresář z
/var/www
do
/home/--uzivatel--/www
a změnil v konfiguraci /etc/papche2/sites-available/default.
To je všechno OK.
Začal jsem mít ale oproti Woknům a Php Home problém z některými funkcemi.
Prozatím to je fopen() a mysql_create_db().
Při volání mysql_create_db() mi to vypíše
"Fatal error: Call to undefined function mysql_create_db() in /home/bobo/www/dbprodej/struktura.php on line 65" ale připojení k DB funguje (když vytvořím strukturu ručně a naimportuji data tak to běhá) - jestli ne nepletu tak ta hláška znamená nedefinovanou funkci,
a při pokusu o čtení či zápis v textovém souboru souboru
hláška ...... Permision denied.
Při instalaci vytvářim složku do které pak scripty zapisují a čtou:

if(!mkdir("zal", 0700)) {
   $chyba = 1;
}

přičemže ta db v nezměněné podobě běhala rok na Woknech
Domnívám se, že je nutné něco v Apache povolit, ale nemůžu přijít na to co.
Díky za pomoc.
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

dan

  • Návštěvník
  • Příspěvků: 63
Re: Problém s fopen() a mysql_create_db()
« Odpověď #1 kdy: 25 Dubna 2008, 09:13:17 »
if(!is_dir("zal")){
   umask(0);

   mkdir("zal", 0777);

} else {
       $chyba = 1;
}

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #2 kdy: 25 Dubna 2008, 09:35:51 »
Díky, ohledně té práce se soubory v této složce to bude asi ono, ale proč se mi nechce vytvořit databáze to prozatím nevím.
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Problém s fopen() a mysql_create_db()
« Odpověď #3 kdy: 25 Dubna 2008, 09:56:47 »
Skoro bych řekl, že je vhodnější vytvářet db např. takto:
Kód: [Vybrat]
mysql_query("CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_czech_ci");
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

honorguard

  • Host
Re: Problém s fopen() a mysql_create_db()
« Odpověď #4 kdy: 25 Dubna 2008, 11:49:30 »
Nevím jestli je to správně či ne, ale mě jde pustit Mysql jen pod rootem. Tím myslím příkaz mysql, po kterém mi vyjede ta MySQL příkazová řádka.
Ale osobně mám nejradši všechno přes phpmyadmin. Nevím si rady s nastavováním kódování a porovnáváním v konsoli a v phpmyadmin je to rychlejší a přehlednější... i když jsem se mu jeden čas taky dlouho bránil...

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Problém s fopen() a mysql_create_db()
« Odpověď #5 kdy: 25 Dubna 2008, 13:43:22 »
Tady ani tak moc nešlo o konzoli jako o php script a volání php funkce mysql_create_db() - proč to nejede je těžko říci, nicméně je to potřeba (např. protože si shop pro každý rok automaticky vytváří novou databázi). Asi bych to ale raději opravdu řešil přes mysql_query()

Jinak konzolový program mysql jede nejen pod rootem - jen potřeba je spouštět s parametry:
Kód: [Vybrat]
mysql [OPTIONS] [database]
mysql -uuzivatel -pheslo jmenodatabaze
« Poslední změna: 25 Dubna 2008, 13:46:02 od Petr 'Merlin' Vaněček »
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #6 kdy: 25 Dubna 2008, 14:09:13 »
Skoro bych řekl, že je vhodnější vytvářet db např. takto:
Kód: [Vybrat]
mysql_query("CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_czech_ci");

Asi to bude takhle vhodnější. Nejsem žádný odborník, a už jsem to skoro zapoměl.
Db jsem si vytvořil zatím v phpadminu a naimportoval data taky manuálně.

Ale co mě pořád zaráží je tahle hláška:

"Warning: fopen(../zal/zaloha_16_04_08_16_04_.txt) [function.fopen]: failed to open stream: Permission denied in /home/bobo/www/dbprodej/ad/nacti_dodb.php on line 23"

při pokusu o práci se souborem ve složce zal.
Podle mě je to nepovolený přístup.
Cesta je dobře, zkoušel jsem i absolutní ale je to stejné. Www mám místo ve /var v /home, práva jsou rwx a tak jak to je tak to na woknech chodilo.

Nemusí se něco v apache povolit? Pamatuji se, že při tvorbě jednoho webu jsem musel někde na webhostingu (nevím už kde) požádat o povolení práce se soubory.

Díky
« Poslední změna: 25 Dubna 2008, 14:16:43 od Petr 'Merlin' Vaněček »
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

honorguard

  • Host
Re: Problém s fopen() a mysql_create_db()
« Odpověď #7 kdy: 25 Dubna 2008, 14:12:31 »
Hele, řeknu jak to řeším já, ale nekamenujte mě, protože je to strašně prasácký...
Prostě otevřu mc, vytvořim si složku kde mám soubory do kterejch budu zapisovat a dám všem práva číst, psát, spouštět, nebo si takhle upravim konkrétní soubor... Vim že je to prasárna, ale funguje mi to :-D
« Poslední změna: 25 Dubna 2008, 14:16:54 od Petr 'Merlin' Vaněček »

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Problém s fopen() a mysql_create_db()
« Odpověď #8 kdy: 25 Dubna 2008, 14:18:45 »
A kde se tu složku pokoušíte zakládat? Jděte do té cesty a chmodněte tomu (resp. nadřazenému adresáři) plná práva.
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #9 kdy: 25 Dubna 2008, 14:23:15 »
No právě že to je v /home/uživatel/www/moje_databáze tam jsou samozřejmě v celé cestě práva uživatele pod kterým jsem přihlášen - kontroloval jsem to.
Prostě mi to hlava moc nebere.  ???
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

Martin - ViPEr*CZ*

Re: Problém s fopen() a mysql_create_db()
« Odpověď #10 kdy: 25 Dubna 2008, 14:26:26 »
fopen je někde zakázaný v nastavení apache... ale nevím kde... to musíte hledat... jsem to už zapoměl z hlavy....
Zkuste místo toho toto:

function cti_url($url)
{
   $ch = curl_init ($url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $body = curl_exec ($ch);
   curl_close ($ch);
   return $body;
}
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

honorguard

  • Host
Re: Problém s fopen() a mysql_create_db()
« Odpověď #11 kdy: 25 Dubna 2008, 14:30:00 »
Hele, ale já mám pocit že je jedno pod kterým jsi uživatelem... mám totiž nepříjemný pocit že apache má vlastní skupinu, či uživatele... určitě vím že něco takovýho je... takže spíš zkus dát práva všem... určitě mám uživatelskou skupinu apache... schválně se podívám.

Mám tam skupinu/uživatele www-data.. .podle mě je to ono...
« Poslední změna: 25 Dubna 2008, 14:32:51 od honorguard »

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Problém s fopen() a mysql_create_db()
« Odpověď #12 kdy: 25 Dubna 2008, 16:56:29 »
Samosebou, že apache běží pod určitým uživatelem - dokonce svým uživatelem www-data - pokud tento uživatel nemá práva, nedostanete se nikam.

fopen jsem zkoušel a zakázaný není (nevím jak v safemode)
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

honorguard

  • Host
Re: Problém s fopen() a mysql_create_db()
« Odpověď #13 kdy: 25 Dubna 2008, 19:56:16 »
No tak v tom případě je to jak jsem říkal. Stačí přivlastnit www-data ten soubor/složku do které potřebuje zápis... není nutné mu přivlastnovat celou cestu. Opravdu stačí jen ten soubor/složka.

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #14 kdy: 25 Dubna 2008, 21:05:21 »
No tak v tom případě je to jak jsem říkal. Stačí přivlastnit www-data ten soubor/složku do které potřebuje zápis... není nutné mu přivlastnovat celou cestu. Opravdu stačí jen ten soubor/složka.

No jo, ale neměla by se taková skupina objevit v seznamu (vlastnosti -> Přístupová práva)?
Já jsem tam takovou skupinu (pokud to tedy nebude uživatel) nenašel. Určitě ne www-data, přitom apache běží.
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #15 kdy: 25 Dubna 2008, 21:26:22 »
No tak v tom případě je to jak jsem říkal. Stačí přivlastnit www-data ten soubor/složku do které potřebuje zápis... není nutné mu přivlastnovat celou cestu. Opravdu stačí jen ten soubor/složka.

No jo, ale neměla by se taková skupina objevit v seznamu (vlastnosti -> Přístupová práva)?
Já jsem tam takovou skupinu (pokud to tedy nebude uživatel) nenašel. Určitě ne www-data, přitom apache běží.

Kecám.

Kouknul jsem se do apache2.conf a opravdu je to uživatel www-data a skupina www-data.
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #16 kdy: 26 Dubna 2008, 09:58:05 »
Můžu mít ještě jednu prosbičku?
Vím, že se ptám jako úplná lama a že bych mohl dostat odpověď ve smyslu nauč se to a pochopil bych to (mám to i v úmyslu).
Bohužel však teď nemám čas, potřebuji pracovat a bez té změny to nepůjde.

Poraďte mi jak napsat ten příkaz na přivlastnění (nebo povolení zápisu) složky /home/bobo/www/dbprodej/zal pro uživatele www-data do terminálu, nechtěl bych něco zkonit.

Díky
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Problém s fopen() a mysql_create_db()
« Odpověď #17 kdy: 26 Dubna 2008, 10:13:32 »
no pokud nemáte rootovska práva, asi nejjednodusší pro vás bude spíše povolit všem, aby mohli do slozky zapisovat (a spuštět):
Kód: [Vybrat]
chmod 0777 /home/bobo/www/dbprodej/zal

pokud máte možnost využití root oprávnění, pak se změna majitele provádí pomocí příkazu chown (zkratka CHange OWner),
je dobré ponechat vlastnictví souborů sobě a měnit pouze skupinu, která může do složky a následně povolit vše sobě a skupině, ostatním povolit jen spouštění a čtení pomocí chmod:
Kód: [Vybrat]
chown mujlogin:www-data /home/bobo/www/dbprodej/zal
chmod 0775 /home/bobo/www/dbprodej/zal
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

honorguard

  • Host
Re: Problém s fopen() a mysql_create_db()
« Odpověď #18 kdy: 26 Dubna 2008, 10:20:31 »
Tyhle změny jdou velice jednoduše provádět i přes Midnight Comander :).

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #19 kdy: 27 Dubna 2008, 11:11:57 »
Ahojda.
Tak jsem udělal všechno co jste mi radili ale pořád to není nic platné.

Vlastníka na složce /zal mám www-data.

Při pokusech scriptu o práci se souborem se mi objevuje:
Kód: [Vybrat]
Warning: fopen(/zal/zaloha_27_04_08_11_04_.txt) [function.fopen]: failed to open stream: No such file or directory in /home/bobo/www/dbprodej/vytvor_zalohu.php on line 9

Warning: fwrite(): supplied argument is not a valid stream resource in /home/bobo/www/dbprodej/vytvor_zalohu.php on line 51

Warning: fclose(): supplied argument is not a valid stream resource in /home/bobo/www/dbprodej/vytvor_zalohu.php on line 57
Teď už mě napadá opravdu jenom to, jestli není práce se soubory v apache někde implicitně zakázaná (i když bych to neřekl). Je ale možné, že se nastavení apache od distribuce v Php Home nebo Triad může trochu lišit.
V.
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

honorguard

  • Host
Re: Problém s fopen() a mysql_create_db()
« Odpověď #20 kdy: 27 Dubna 2008, 12:06:41 »
To je blbost... já používám apache 2 s php a mysql a nikdy jsem ho nekonfiguroval. Vždycky mi to fungovalo od základu... Hele, nejlepší by bylo kdyby se k tobě ještě pro jistotu podíval přes SSH, nebo jak se ten protokol jmenuje a skouknul ten skript co zapisuje a potom ještě ty práva... Protože apache alespon u mě nikdy nic sám od sebe nezakázal...

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #21 kdy: 27 Dubna 2008, 13:45:24 »
To je blbost... já používám apache 2 s php a mysql a nikdy jsem ho nekonfiguroval. Vždycky mi to fungovalo od základu... Hele, nejlepší by bylo kdyby se k tobě ještě pro jistotu podíval přes SSH, nebo jak se ten protokol jmenuje a skouknul ten skript co zapisuje a potom ještě ty práva... Protože apache alespon u mě nikdy nic sám od sebe nezakázal...
Asi ti tak bude.
Zkusím si ještě pohrát se scriptem php.
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

Martin - ViPEr*CZ*

Re: Problém s fopen() a mysql_create_db()
« Odpověď #22 kdy: 27 Dubna 2008, 16:54:30 »
Proč jste nepoužil to co jsem Vám radil já? U mě třeba na hostingu nefunguje fopen...
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

Prefin

  • Aktivní člen
  • *
  • Příspěvků: 294
Re: Problém s fopen() a mysql_create_db()
« Odpověď #23 kdy: 27 Dubna 2008, 19:14:58 »
Proč jste nepoužil to co jsem Vám radil já? U mě třeba na hostingu nefunguje fopen...

Díky, to bych mohl a udělám to pokud nic jiného nepomůže. Problém je v tom, že bych musel v dost předělávat - je to poměrně stará databáze a ještě v ní nemám includované funkce ale pokaždé obsažené v kódu.
Teď už to dělám jinak.

A jde tu taky o to proč to nejde stejně jako dřív - někde musí být problém a chci na něj přijít.
Většinou je problém stejně mezi židlí a klávesnicí
---------------------------------------------------------------------------
Xubuntu 18.01 / W10

Martin - ViPEr*CZ*

Re: Problém s fopen() a mysql_create_db()
« Odpověď #24 kdy: 28 Dubna 2008, 18:01:42 »
Proč jste nepoužil to co jsem Vám radil já? U mě třeba na hostingu nefunguje fopen...

Díky, to bych mohl a udělám to pokud nic jiného nepomůže. Problém je v tom, že bych musel v dost předělávat - je to poměrně stará databáze a ještě v ní nemám includované funkce ale pokaždé obsažené v kódu.
Teď už to dělám jinak.

A jde tu taky o to proč to nejde stejně jako dřív - někde musí být problém a chci na něj přijít.
Já třeba na hostingu měl taky script s fopen a vím, že to na hostingách mají vypnuté. (aby fopen nefungovalo a šlo to přes ten script co jsem Vám sem dal). Nevím jestli je to default a hned po instalaci apache je to vypnuté. Ale určitě je v configu apache na výběr. Už nevím z hlavy kde. Kdysi jsem to taky hledal. Zkoušek hledat... ;)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

 

Provoz zaštiťuje spolek OpenAlt.