Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem na serveru a radi u lokalu

[es] :: PHP :: PHP za početnike :: Problem na serveru a radi u lokalu

[ Pregleda: 3473 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ferguson
Nikolic Vladimir
Beograd

Član broj: 67927
Poruke: 191
147.91.239.*

ICQ: 164532115


+1 Profil

icon Problem na serveru a radi u lokalu02.03.2016. u 09:54 - pre 98 meseci
Sajt u lokalu radi savrseno dok na serveru izbacuje gresku.

Imam fajl index.php
Code:

<?php
include "/misc/basics.php";
include (putanja()."connection.php");
?>


i fajl u folderu misc pod nazivom basics.php
Code:

<?php
define('ABSPATH', "/RADNI/"); //Putanja do ROOT foldera
define("MISC", ABSPATH."misc/");
function putanja(){
    return $_SERVER['DOCUMENT_ROOT'].MISC;
}
?>



Kao sto sam vec rekao, to na localhost funkcionise bez problema dok na serveru izbacuje gresku:
Code:

Fatal error: Call to undefined function putanja() in /home/ime_sajta/public_html/RADNI/index.php on line 3


Verovatno ne moze da nadje ovaj fajl basics.php ali kako to da resim?
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 10:46 - pre 98 meseci
Daj mu apsolutnu putanju do fajla.
Ne možeš samo "/misc/basics.php" ukoliko ti /misc nije FS root folder.

about:networking
 
Odgovor na temu

ferguson
Nikolic Vladimir
Beograd

Član broj: 67927
Poruke: 191
147.91.239.*

ICQ: 164532115


+1 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 10:55 - pre 98 meseci
Na lokalu imam wamp server i u direktorijumu www se nalazi foder RADNI.
(d:/wamp/www/RADNI/)
I tako sve radi.

Na serveru imam isti folder RADNI ali tu ne radi.
(/home/ime_sajta/public_html/RADNI/)
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 12:03 - pre 98 meseci
Dobro. Uzmi i onda prepravi da ti i u lokalu i na serveru uvek budu apsolutne putanje do fajlova i proradiće na svakom serveru.

Jer, ovo ... inlcude("/misc/basics.php"); .. ne pije vodu.
Ispred misc i basics uvek treba da ti bude i "/home/ime_sajta/public_html" ili lokalna apsolutna putanja.

I neka ti to bude praksa na dalje. Kada priključuješ drugi fajl, uvek koristi apsolutne putanje.
Onda kada je fajl koji hoćeš da priključiš u istom direktorijumu gde i skripta odakle pozivaš require/include funkciju, onda možeš samo ime fajla, bez putanje.

Šta ti kažu apache error i access logovi u lokalu? Da li je uključen zend opcache? Ako jeste, restartuj lokalni server pa vidi šta kaže.
Kako ti je podešen error reporting? PHp može da se podesi da ne izbacuje nikakve greške ili samo neke ili da `pišti i vrišti na svaku moguću najmanju greškicu`.
Na tom serveru, očigledno da je sve podešeno kako treba.

Osim toga, funkcija koju pozivaš definiše putanju i ništa više od toga.. a pre toga već imaš dve definicije mimo funkcije.. ?
Svrha takvog koda .. ?

Code (php):


include "/misc/basics.php";

# ovako?

require_once($_SERVER['DOCUMENT_ROOT'] . "/RADNI/misc/basics.php");

 


Tamo na serveru, nemaš wamp niti xampp niti bilo šta drugo, već najverovatnije apache + php + mysql zasebno instalirane i ne na windowsu, nego na linuxu.

about:networking
 
Odgovor na temu

ferguson
Nikolic Vladimir
Beograd

Član broj: 67927
Poruke: 191
147.91.239.*

ICQ: 164532115


+1 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 12:38 - pre 98 meseci
Na lokalnom PHP-u su ukljucene greske da se prikazuju (display error, log error...). Za Apache nisam nasao ovo sto si mi napisao.

Ne znam da li sam bas skontao pa sam napravio jedan test.

Struktura je sledece:
/ root sajta
-- /TEST
-- index.php
-- --/CSS
-- -- test.php


index.php
Code:

<!DOCTYPE html>
<html lang="sr">
<head>
</head>
<body>
<?php

require_once($_SERVER['DOCUMENT_ROOT'] . "/TEST/CSS/test.php");

?>
</body>
</html>


test.php
Code:

<?php
echo "OK";
?>



Na lokalu mi prikaze ovo OK a kada prebacim na server (kopiram TEST folder u root servera - /public_html) prikaze
Fatal error: require_once(): Failed opening required '/home/serbioso/public_html/Test/css/test.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/serbioso/public_html/TEST/index.php on line 13

Red 13 je require_once($_SERVER['DOCUMENT_ROOT'] . "/TEST/CSS/test.php");
 
Odgovor na temu

ferguson
Nikolic Vladimir
Beograd

Član broj: 67927
Poruke: 191
147.91.239.*

ICQ: 164532115


+1 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 12:44 - pre 98 meseci
Sredio sam ovo :/

U pitanju su bila velika i mala slova. Njih mi na lokalu nije primecivao dok na serveru jeste.
Ostaje mi sada da se zanimam sa putanjom do CSS foldera. Mozda ce se i ona resiti.

Hvala puno na pomoci! :)
 
Odgovor na temu

ferguson
Nikolic Vladimir
Beograd

Član broj: 67927
Poruke: 191
147.91.239.*

ICQ: 164532115


+1 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 13:24 - pre 98 meseci
Ok... sada kada sam ovo resio, potreban mi je jedan savet.

Kada radim
Code:

require_once($_SERVER['DOCUMENT_ROOT'] . "/TEST/CSS/test.php");

To moram da radim na svakoj strani jer mi je ovaj test.php fajl sa svim podacima (definicije, funkcije...).
Kada zelim da radim od kuce, ja imam ovaj TEST folder... medjuetim, kada ga prebacujem na server, njega nemam jer mi se nalazi u ROOT foleru.

Ima li neki elegantan nacin da ovo izemnim samo na jednom mestu, da ne bih morao da otvram svaki fajl i da tu menjam?
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 14:11 - pre 98 meseci
Prvo i osnovno jeste da ti i production (sajt) i development (wamp/localhost) budu identični što se tiče hijerarhije i svega unutra.
Razlika može/mora da se pravi samo u nazivu putanja. Konkretno kod tebe u lokalu na windowsu ne može a da ne bude, da root path ne počinje sa C: ili D: i osim toga ni jedna više razlika ne bi trebala da postoji.

Evo ti jedna forica, vezana za require/include tvojih ličnih `global` funkcija na jednom mestu.

Imaš 2 opcije.
Obe se odnose na .htaccess

Opcija broj 1. (velika je verovatnoća da ovo neće biti omogućeno na svakom shared hostingu, treba proveriti)
Code:


php_value auto_prepend_file "/path/to/my/private/and/non-public-web/.globalMethods.php"



Kada staviš ovo u .htaccess fajl, nakon toga, svaki PHP request bio on GET ili POST (dakle, ne i html/css/js zahtev) hoće povući (kao require) .globalMethods.php fajl pre bilo čega. `prepend`
Dakle, napraviš jedan php fajl, snimiš ga negde van apache radnog direktorijuma, van javnog domena jel' te.. i u njega popakuješ sve moguće funkcije koje će ti trebati i jednostavno ih koristiš.

------------------

Opcija broj 2. (Ovo bi trebalo da radi svugde ) SetEnv module.

Code:


SetEnv MY_SSH_PATH "/path/to/my/private/and/non-public-web"



Nakon ovoga, dobio si novu $_SERVER['MY_SSH_PATH'] promenjivu koja daje ime direktorijuma.

I koristiš je najnormalnije

Code (php):


require_once($_SERVER['MY_SSH_PATH'] . '/myfunctions.php');
// ...
require_once($_SERVER['MY_SSH_PATH'] . '/myOtherFunctions.php');

 


^^ ako imaš više fajlova sa dosta različitih funkcija..

A ako imaš samo jedan fajl gde su ti sve funkcije, onda kao i u prvom primeru,
možda samo promeniš indeksirani ključ niza, to jest ime jer nije više direktorijum nego fajl direktno ...

Code:


SetEnv MY_GLOBAL_FUNCTIONS "/path/to/my/private/and/non-public-web/.globalMethods.php"



...

Code (php):


require_once($_SERVER['MY_GLOBAL_FUNCTIONS']);

 



I tako ..

E, a gde ćeš ti to da pozoveš i kako ćeš se organizovati da ne trpaš na svakoj stranici po jedan require ili include,
to je na tebi da se `pomučiš` i naučiš kako da se organizuješ. :) Možemo mi ovde i to da ti rešavamo, ali - nećemo. Nema čari onda.

about:networking
 
Odgovor na temu

ferguson
Nikolic Vladimir
Beograd

Član broj: 67927
Poruke: 191
147.91.239.*

ICQ: 164532115


+1 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 14:19 - pre 98 meseci
Sve skapirao... jos samo jedno pitanje i necu vise :)
Da li .htaccess moram da postavim u svakom folderu gde se nalazi php fajl u kome pozivam tu promenljivu?
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Problem na serveru a radi u lokalu02.03.2016. u 14:44 - pre 98 meseci
Ne. .htaccess je dovoljan samo u root direktorijumu.
about:networking
 
Odgovor na temu

dusanboss

Član broj: 329401
Poruke: 714
*.dynamic.isp.telekom.rs.

Jabber: dusanboss


+592 Profil

icon Re: Problem na serveru a radi u lokalu06.03.2016. u 20:59 - pre 98 meseci
Citat:
ferguson:
Sredio sam ovo :/

U pitanju su bila velika i mala slova. Njih mi na lokalu nije primecivao dok na serveru jeste.
Ostaje mi sada da se zanimam sa putanjom do CSS foldera. Mozda ce se i ona resiti.

Hvala puno na pomoci! :)


Server radi na Linuxu. Zato si imao problem.
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Problem na serveru a radi u lokalu

[ Pregleda: 3473 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.