Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: file_get_contents i podmapowane dyski
Forum PHP.pl > Forum > PHP
motylo
Witam,

Dosyć dziwny problem. W skrócie - dwa serwery produkcyjne oba Windows. Na jednym aplikacja zrzuca dane do plików txt, na drugim aplikacja w php.
Aplikacja ma pobrać te dane i odpowiednio je przetworzyć. I teraz zabawa:

1. Na komputerze roboczym (testowym) - konfiguracja WAMP'a jak na serwerze. Połączenie z serwerem "danych" bezproblemowe,
skrypt się wykonuje poprawnie.
2. Po przeniesieniu na serwer skryptu pojawia się błąd "invalid argument" - nie może pobrać danych.
3. Pomyślałem, że problem może być przy różnych hasłach administratorów - podpiąłem się jako gość - oczywiście w Windows.
a) bezproblemowo pod windows (serwer PHP) przeglądam dane z drugiego serwera
cool.gif podmapowałem nawet te udostępnione katalogi
c) podmapowałem inne katalogi (chociażby z komputera roboczego)
4. PHP nie może odczytać tych plików, ani po ścieżce \\serwer\folder\plik.txt, ani po \\192.168.*.*\folder\plik.txt, ani po podmapowanym dysku
x:\plik.txt
5. allow_url_fopen włączony, safe_mode wyłączony
6. file_exists również zwraca wynik jakby nie mógł się połączyć z plikiem

Podejrzewam błąd na serwerze, ale powoli wymiękam. Może ktoś z Was miał podobny problem?
batman
\\\\serwer\\folder\\plik.txt - to zadziała.
motylo
Niestety, to o tym, żeby eskapować znaki to wiem. Zastanawiam się nad uprawnieniami (różni administratorzy i hasła na serwerach).

Jedna rzecz którą zaobserwowałem. Ze stacji roboczej łącze się bezproblemowo przez PHP. Problem pojawia się gdy przenoszę skrypt
na serwer.
batman
Wygląda na prawa dostępu. Niestety w kwestiach serwerowych wiele nie pomogę.
DiH
A czy nie mógłbyś robić tego samego zamiast na plikach to po prostu na bazie danych, choćby MySQL? Używasz WAMPa/XAMPPa więc nie powinieneś mieć z tym większego problemu.
fander
Jeśli masz pod mapowany pliczek na serwerze jako dysk x to czy dasz radę na tym 2 serwerze skopiować pliczek "x:\(sciezkadopliku)\plik.txt" z poziomu Windowsa (nie przez php) ? A może aplikacja która generuje ci pliczek "plik.txt", nie zwalnia tego pliku.

Lepszym rozwiązaniem byłoby łączenie się poprzez http://(adres serwera)/get_plik.php (i tak na obu serwerach posiadasz wampa), gdzie na 1 serwerze miałbyś skrypt który sprawdzi ci czy plik.txt jest w użyciu jeśli nie, to wysyła jego zawartość do klienta, czyli w tym wypadku do skryptu na 2 serwerze który wywołał http://(adres serwera)/get_plik.php.

Ja przyjemniej tak robię ale używam pewnego mechanizmu autoryzacji, kontroli dostępu oraz szyfrowania (jeśli są to dane które nie powinny trafić w niepowołane ręce tj. konfiguracja do połączenia z bazą etc).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.