Połączenie z MSSQL przez IIS

Połączenie z MSSQL przez IIS
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Cześć,
nie będę ukrywał, że dopiero się uczę i chciałbym się skonsultować.
Na internecie spotkałem wiele "poradników" lecz albo jest to nie zrozumiałem albo coś ze mną jest nie tak.
Za pomocą IIS zainstalowałem PHP w wersji 8.0.0, stworzyłem plik testowy z phpinfo i działa, poniewaz pokazuje mi specyfikację.
Problem jest w momencie połączenia z bazą, bo gdy wypisuje wszystkie dane (nazwa serwera\instancja, baza danych, użytkownik i hasło) do index.php to dostaję komunikat: "Ta strona nie działa, serwer localhost nie może teraz obsłużyć tego żądania".
Dodam tylko tyle, że w IIS wrzuciłem to sobie na port 88 a w bazie danych loguję się za pomocą SQL Server Authentication.

Dane:

Kopiuj
<?php
$serverName = "DOM\DOM_TEST"; //serverName\instanceName
$connectionInfo = array( "Database"=>"apkDOM_test", "UID"=>"sa", "PWD"=>"1234");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>
edytowany 2x, ostatnio: Riddle
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
0
MiniBus02 napisał(a):

dostaję komunikat: "Ta strona nie działa, serwer localhost nie może teraz obsłużyć tego żądania".

To znaczy że w logach IIS masz informację.
Wróżki maja wiele ważniejsze zajęcia i nie pomogą.

ps. wybrałeś IIS albowiem ponieważ ?


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Ponieważ tak chciałem.
Dlaczego to forum cechuje się tak aroganckimi osobami jak Ty?
Piszę, że nie mam o tym zbytnio pojęcia i się uczę to wyjeżdżasz z jakąś wróżką.

ZD
Rycerzu, wybrałeś konfigurację o najsłabszym wsparciu.
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10073
2
MiniBus02 napisał(a):

Cześć,
nie będę ukrywał, że dopiero się uczę i chciałbym się skonsultować.
Na internecie spotkałem wiele "poradników" lecz albo jest to nie zrozumiałem albo coś ze mną jest nie tak.
Za pomocą IIS zainstalowałem PHP w wersji 8.0.0, stworzyłem plik testowy z phpinfo i działa, poniewaz pokazuje mi specyfikację.
Problem jest w momencie połączenia z bazą, bo gdy wypisuje wszystkie dane (nazwa serwera\instancja, baza danych, użytkownik i hasło) do index.php to dostaję komunikat: "Ta strona nie działa, serwer localhost nie może teraz obsłużyć tego żądania".

Nie dostajesz takiego komunikatu. To klient (Twoja przeglądarka) pokazuje Ci taki tekst, w odpowiedzi na to, że serwer wysłał status code 500, możesz go nawet zobaczyć na swoim screenie który dołączyłeś.

Aplikacje najczęściej zwracają kod 500, kiedy w aplikacji serwera pojawił się nieobsłużony wyjątek. Nie wiem jak serwujesz aplikacje, czy wbudowanym serverem PHP, czy Apache czy Nginx; ale powinieneś otworzyć logi servera i przeczytać to tam jest.

Z drobniejszych rzeczy:

  • Zainteresuj się formatowaniem kodu
  • Nie używaj już przestarzałej składni array()
  • Nie używaj die()
  • Od PHP 7.4 nie zaleca się dodawanie zamykającego ?>, jeśli nie jest to wymagane.
  • Nie renderuj HTML'a z PHP, chyba że umiesz poprawnie oddzielić logikę od widoku.
Kopiuj
<?php
$conn = sqlsrv_connect('DOM\DOM_TEST', ['Database' => 'apkDOM_test', 'UID' => 'sa', 'PWD' => '1234']);

if ($conn) {
   echo "Connection established.";
} else {
   echo "Connection could not be established.";
   print_r(sqlsrv_errors());
}
edytowany 3x, ostatnio: Riddle
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Okej, dziękuję za wskazówki i podpowiedzi.
Dzisiaj zobaczę w wolnej chwili, jak wygląda to z logami.

MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Zainstalowałem xamppa i dostałem taki błąd:

Kopiuj
Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\xampp7.3.25\htdocs\KH\index.php:3 
Stack trace: #0 {main} thrown in C:\xampp7.3.25\htdocs\KH\index.php on line 3

Czy czegoś brakuje?

edytowany 1x, ostatnio: Riddle
ZD
Dobrze, że wybrałeś jakaś platformę z szerszym wsparciem
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10073
1
MiniBus02 napisał(a):

Zainstalowałem xamppa i dostałem taki błąd:

Kopiuj
Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\xampp7.3.25\htdocs\KH\index.php:3 
Stack trace: #0 {main} thrown in C:\xampp7.3.25\htdocs\KH\index.php on line 3

Czy czegoś brakuje?

Krok 1. Znajdź sqlsrv_connect w dokumentacji PHP: https://www.php.net/manual/en/function.sqlsrv-connect.php
Krok 2. Zobacz gdzie znajduje się ta funkcja: Database Extensions > Vendor Specific Database Extensions > SQLSRV > SQLSRV Functions
Krok 3. Otwierasz dokumentację SQLSRV: https://www.php.net/manual/en/book.sqlsrv.php
Krok 4. Znajdujesz rozdział "Installation": https://www.php.net/manual/en/sqlsrv.installation.php
Krok 5. Czytasz pierwsze zdanie w dokumentacji

The SQLSRV extension is enabled by adding appropriate DLL file to your PHP extension directory and the corresponding entry to the php.ini file.

MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Odinstalowałem PHP z IIS oraz xamppa.
Czy mógłbyś mi powiedzieć krok po kroku jak powinienem przejść instalację do w miarę najnowszych wersji?
Bardzo dużo czasu mi to zajmuje a nie powinno :(

ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
0
MiniBus02 napisał(a):

Odinstalowałem PHP z IIS oraz xamppa.
Czy mógłbyś mi powiedzieć krok po kroku jak powinienem przejść instalację do w miarę najnowszych wersji?
Bardzo dużo czasu mi to zajmuje a nie powinno :(

Znów IIS ? A po co, będziesz w tym kompletnie sam.
Coś tam bywam koło wdrożeń IIS, i PHP nie widziałem nigdy

Są pewne oficjalne ściągi jak integrować całego Apache z IIS ...


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

To na czym najlepiej to zrobić?

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10073
1
MiniBus02 napisał(a):

To na czym najlepiej to zrobić?

Nie słuchaj, mozesz sobie użyć normalnie - tylko musisz po prostu normalnie włączyć extension; bo widzę że masz z tym problem.

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:4 minuty
  • Postów:3492
2
ZrobieDobrze napisał(a):
MiniBus02 napisał(a):

dostaję komunikat: "Ta strona nie działa, serwer localhost nie może teraz obsłużyć tego żądania".

To znaczy że w logach IIS masz informację.
Wróżki maja wiele ważniejsze zajęcia i nie pomogą.

ps. wybrałeś IIS albowiem ponieważ ?
Oj mało widziałeś.

Pierwsze co to musisz zainstalować w PHP rozszerzenie do obsługi MSSQL. Wejdź na GitHub projektu sterownika od MS
https://github.com/Microsoft/msphpsql/releases
i pobierz paczkę z plikami. Jak masz PHP 8 pobierasz Win8.zip. Tak dziwnie nazwali, ale cyferki to wersje PHP a nie systemu Windows.
Potem po rozpakowaniu będziesz miał dwa katologi. Zapewne masz PHP w wersji x64 a PHP w wersji NTS. W katalogu będziesz miał jeszczw pliki z TS w nazwie. Oba pliki z tego katalogu z NTS w nazwie przekopiuj do katalogu z rozszerzeniami PHP. Jak instalowałeś przez IIS to pewnie jakiś ProgramFiles/PHP8X/ ale to sprawdzisz pewnie przy użyciu phpinfo() Dalej musisz w PHP.ini dodać linijki z nazwami rozszerzeń. Dodaj oba rozszerzenia. Staraj się od razu uczyć PDO. Kiedyś nawet instalator w IIS miał opcję dodania sterowników bazy, ale jak się to wklikwało to już nie pamiętam.

Edit: znalazłem nawet jakiś przewodnik pokazujący proces z użyciem graficznego interfejsu:
https://www.itnota.com/install-php-windows-web-platform-installer/

edytowany 1x, ostatnio: jurek1980
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Zrobiłem wszystko tak jak napisałeś i w cmd sobie sprawdziłem php (gdzieś znalazłem na necie).
Wyskoczył mi błąd:

Kopiuj
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_gd2.dll' (tried: C:\Program Files\PHP\v8.0\ext\php_gd2.dll 
(The specified module could not be found), C:\Program Files\PHP\v8.0\ext\php_php_gd2.dll.dll (The specified module could not be found)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_xmlrpc.dll' (tried: C:\Program Files\PHP\v8.0\ext\php_xmlrpc.dll 
(The specified module could not be found), C:\Program Files\PHP\v8.0\ext\php_php_xmlrpc.dll.dll (The specified module could not be found)) in Unknown on line 0
PHP 8.0.0 (cli) (built: Nov 24 2020 22:02:58) ( NTS Visual C++ 2019 x64 )

Skąd mógłbym pobrać oba pliki .dll?

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10073
2
MiniBus02 napisał(a):

Zrobiłem wszystko tak jak napisałeś i w cmd sobie sprawdziłem php (gdzieś znalazłem na necie).
Wyskoczył mi błąd:

Kopiuj
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_gd2.dll' (tried: C:\Program Files\PHP\v8.0\ext\php_gd2.dll 
(The specified module could not be found), C:\Program Files\PHP\v8.0\ext\php_php_gd2.dll.dll (The specified module could not be found)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_xmlrpc.dll' (tried: C:\Program Files\PHP\v8.0\ext\php_xmlrpc.dll 
(The specified module could not be found), C:\Program Files\PHP\v8.0\ext\php_php_xmlrpc.dll.dll (The specified module could not be found)) in Unknown on line 0
PHP 8.0.0 (cli) (built: Nov 24 2020 22:02:58) ( NTS Visual C++ 2019 x64 )

Skąd mógłbym pobrać oba pliki .dll?

One są dołączane z PHP! Musisz tylko edytować plik php.ini i je odkomentować.

Uruchom

Kopiuj
php --ini

Znajdź miejsce z deklaracją dodatkó i odkomentuj gd2, usuwając średnik ; z tej linii.

Kopiuj
;extension=bz2
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird

Pamiętaj, że jeśli jesteś na Windowsie, to musisz też znaleźć

Kopiuj
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "ext"

i odkomentować odpowiedni extension_dir.

edytowany 1x, ostatnio: Riddle
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Dokładnie tak zrobiłem ale boję się, że przy odinstalowaniu coś narobiłem -.-

Riddle
Odkomentowałeś extension_dir?
MB
Dokładnie, wszystko jest tak jak tu piszecie..
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Wydaje się, że brakuje mi tych dwóch plików w folderze ext.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10073
1
MiniBus02 napisał(a):

Wydaje się, że brakuje mi tych dwóch plików w folderze ext.

A masz je w swoim folderze ext/? Na 99% powinny tam być, jeśli to jest nowo ściągnieta wersja PHP.

Stąd ściągnąłeś PHP, tak? https://windows.php.net/download#php-8.1

edytowany 2x, ostatnio: Riddle
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

Z Microsoft Web Platform Installer do IIS.
Teoretycznie wygląda to teraz tak, że phpinfo działa, moje połączenie z bazą nie działa (pokazuje się pusta strona) a w cmd jest komunikat jak wyżej.

edytowany 1x, ostatnio: MiniBus02
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10073
1
MiniBus02 napisał(a):

Z Microsoft Web Platform Installer do IIS

Jeśli instalujesz PHP nie z orginanej dystrybucji, to możliwe żę dostawca usunął wyłączone dodatki.

Jest jakiś konkretny powoód czemu używasz tej wersji PHP; a nie tej z https://windows.php.net/download#php-8.1 ?

MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
0

W zasadzie to nie ma, wyczytałem, że można to na IIS zrobić więc stwierdziłem, że jest to legitne źródło, zaraz się poprawiam.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10073
1
MiniBus02 napisał(a):

W zasadzie to nie ma, wyczytałem, że można to na IIS zrobić więc stwierdziłem, że jest to legitne źródło, zaraz się poprawiam.

Sprawdź swój folder ext/ i zobacz czy tam są potrzebne DLL'ki. Jeśli nie, to ściągnij PHP ze strony PHP.

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:4 minuty
  • Postów:3492
1

Web Platform installer często instaluje 2 lub wiecej wersji PHP. Możesz mieć innego PHPa w zmiennych środowiskowych(z ktorgo korzysta CMD domyślnie), a innego dla IIS. Sprawdzaj w phpinfo() przez przeglądarkę. Zwróć uwagę na wersję PHPa, lokalizację pliku php.ini oraz lokalizację ścieżki do rozszerzeń.

edytowany 2x, ostatnio: jurek1980
MB
  • Rejestracja:około 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:29
1

Rozwiązałem problem.
Problemem był dublujący się PHP, jakkolwiek to brzmi.
Pomogło zainstalowanie PHP z linku, który podał @TomRiddle, któremu bardzo dziękuję za pomoc.
Dodatkowo, w skrócie tak jak również @jurek1980 opisał należy dodać dwa rozszerzenia do katalogu ext, dodać to w rozszerzeniach php.ini i problem rozwiązany.

Riddle
Autor miał dwie instalacje php, i zmieniał konfigurację w jednej a uruchamiał inną.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)