Igor Guzey

To není přesné a zbývající pokyny jsou aktuální, protože jsou určeny správné podmínky a optimální možnosti. Toto je problém centrálního vlákna.

Úkol: Přidejte podporu/modul GD2 do PHP

Opět začínáme trénovat na lokálním počítači a pak samozřejmě pracujeme pod Windows. Přesněji Windows XP SP2. Pak můžeme povolit GD2 z PHP, nakonfigurovaný přes porty, nebo jej ručně sestavit pod FreeBSD.

Připojení GD2 k PHP pod Windows

Známé z distribuční sady:
\php-4.3.9-Win32.zip\php-4.3.9-Win32\extensions\
knihovna php_gd2.dll, pak. Verze 2
A zkopírujte php_gd2.dll do c:\windows
V souboru c:\windows\php.ini máme příponu řádku=php_gd2.dll a odeberte komentář.
Revantazhuemo Apache. A je to.

Pokud si nejprve vezmete komentář z php.ini a zamyslíte se nad tím, co stačí, tak se po restartu Apache objeví diagnostika:
"Nelze načíst dynamickou knihovnu "./php_gd.dll" - Pokyny modulu nebyly nalezeny."

Připojení GD2 k PHP pod FreeBSD

PHP je již nainstalováno z portů

Přesněji, nejen PHP, ale vše (php, MySQL, Apache, ...) bylo vyladěno pro další porty.

# cd /usr/ports/lang/php4-extensions # make config zaškrtněte políčko: "Podpora knihovny GD" # make deinstall # make reinstall # apachectl -k elegantní měkký restart nebo # apachectl restart hrubý restart

Sbírka manuálů PHP

Který typ vyžaduje pokročilé zpracování JPEG a ZLIB

Úprava podpory JPEG

Možné možnosti

JPEG z portu
# cd /usr/ports/graphics/jpeg # make remove directory work/jpeg-6b neobtěžuj se make install
JPEG z distribuce
# cd /usr/dist/ # wget ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz # gunzip -c jpegsrc.v6b.tar.gz | tar xf - # cd /usr/dist/jpeg-6b # ./configure # make

Musíte nainstalovat podporu zlib

Z přístavu
# cd /usr/ports/archivers/php4-zlib # make Knihovny byly nainstalovány v: /usr/ports/archivers/php4-zlib/work/php-4.4.4/ext/zlib/modules

Sbíráme PHP

# cd /usr/dist/php-4.4.4 # ./configure --with-mysql --with-apache=/usr/dist/apache_1.3.37 --enable-memory-limit --with-gd bez přidání adresář Knihovna GD je nainstalována do knihovny PHP. --with-jpeg-dir=/usr/ports/graphics/jpeg/work/jpeg-6b , kde jpeg je na portu nebo /usr/dist/jpeg-6b , když je jpeg na distribuci --with-zlib -dir=/ usr/ports/archivers/php4-zlib/work/php-4.4.4/ext/zlib/modules # make install && make clean

Testování

gif.php:png.phpjpg.php:gd_info.php:
KLÍČ VAL$val) echo "
$klíč $val"; ?>



Vyhovění prošlo

Při instalaci knihovny JPEG byl po „make“ přidán příkaz „make install“ s příkazem, že nové soubory budou umístěny v /usr/local a budou tam automaticky nalezeny

# ./configure --with-mysql --with-apache=/usr/dist/apache_1.3.37 --enable-memory-limit --with-gd --with-jpeg-dir --with-zlib-dir= /usr/ports/archivers/php4-zlib/work/php-4.4.4/ext/zlib/modules

Obávám se, že JPEG se nepřipojí. Nebyla žádná negativní diagnostika, ale žádný výsledek.

Z hlouposti jsem tikal jako slepá sekačka a snažil jsem se to říct takhle, pak tamto. Buď přes stahování, pak přes stahování, pak z portů. Celá tato nekonzistence byla doprovázena rozsáhlými instalacemi, které vedly k překryvům, které se objevily v době instalace PHP:

# ./configure --with-mysql --with-apache=/usr/dist/apache_1.3.37 --enable-memory-limit --with-gd=/usr/local Změna pro PHP wiki. # make install /usr/dist/php-4.4.4/ext/gd/gd.c:1151: nedefinovaný odkaz na `gdImageRotate", ve kterém je specifikován adresář pro GD a diagnostika je aplikována na zadaný adresář. # . /configure - -with-mysql --with-apache=/usr/dist/apache_1.3.37 --enable-memory-limit --with-gd=/usr/local --with-jpeg-dir=/usr/local --with -png-dir=/usr/local --with-zlib-dir=/usr/ports/archivers/php4-zlib/work/php-4.4.4/ext/zlib/modules Změňte svou PHP wiki # make install .. .. /usr/dist/php-4.4.4/ext/gd/gd.c:837: nedefinovaný odkaz na `gdImageColorMatch" /usr/dist/php-4.4.4/ext/gd/gd.c: 1151 : nedefinovaný odkaz na `gdImageRotate" *** Kód chyby 1

Pokuste se připravit všechny moduly přesně a přesně na ně nasměrujte.

Pár skleniček...

PHP nemá vestavěnou importní infrastrukturu, jako je python, java nebo .net. Existuje několik způsobů, jak používat knihovny PHP.

    Zkompilujte je do dvojitého souboru PHP. Toto je nejpohodlnější metoda a není důležitá, protože nemáte žádné zvláštní potřeby.

    Nainstalujte je jako moduly PHP na server a propojte je s PHP.ini. Podle programu PHP jsou tato rozšíření a části PHP od této chvíle k dispozici. Je to prostě jednodušší přidávat a odebírat bez nutnosti restartovat samotné PHP.

    Nainstalujte kód PHP někam na server a přidejte jej do svého skriptu PHP.

    Uložte kopii knihovny do svého projektu a stáhněte si ji ze skriptu PHP.

Strana Na základní úrovni je kód součástí interpretru (statického nebo dynamického), ale je to jednoduchý starý PHP kód, který zahrnuje() ed ve vašem projektu.

Pro vaše účely vám mohu jen doporučit, abyste si pořídili standardní distribuci PHP (vyberte si dobrý OS Linux a vyberte si své PHP). Všechny knihovny, které potřebujete jako tlumočník, jsou také dostupné jako doplňkové balíčky, jejichž složitost se ztrácí za těmi, kteří pracují denně.

Pro RedHat/Centos můžete spustit:

yum install php php-memcached php-gd php-pecl

Vedlejší poznámka: Existují všechny ostatní knihovny, které byste mohli chtít použít pro všechno, zejména dobrý rámec PHP, který je pro vás vším.

Akční zadky:

  • Zend Framework
  • CakePHP
  • Codeigniter
  • Atd...

(ne v libovolném pořadí, pouze ti, kteří upadnou do myšlenek)

Podle vašeho názoru jste použili standardní RPM nebo podobný přístup pro kompilaci v aspektech PHP a rozšíření, pak je dobrá spolehlivá struktura vhodná pro zahrnutí veškerého kódu vaší další knihovny PHP, který potřebujete.

Jaký je konečný výsledek: soustředíte se na dodání produktu, nikoli na celou infrastrukturu, kterou byste jinak museli instalovat a provozovat.

Stránka php.ini je analyzována a spuštěna při spuštění PHP (pokaždé pro příkazový řádek, jakmile je na serveru spuštěna v Apache). To znamená přímé nastavení, zahrnuje nezávislé moduly, nastavení modulů atd.

Ve skutečnosti můžete změnit přiřazení určitých parametrů v php.ini pomocí dodatečné funkce ini_set() v PHP. Pro lidi je však lepší provést úpravy. Jiné mohou být nainstalovány před spuštěním skriptu.

Při práci pod Apache můžete do direktivy .htaccess přidat řádky Zcela přeřadím PHP.ini do vašeho adresáře/virtuálního hostitele.

(Buďte laskaví, opravte moji syntaxi a odstraňte tuto poznámku, pokud není správná)

ServerName www.example.com DocumentRoot /home/joe/site/docroot php_value include_path "/home/joe/site/php-code"

Strana V odpovědi na vaši otázku č. 6 o vaší knihovně a nejlepším způsobu, jak ji zabalit, vám doporučuji, abyste okamžitě ocenili potřebu knihovny. A pokud opravdu pracujete, zjistěte nejčastější způsob, jak se lidé vyrovnávají. Je to jednoduchá knihovna, vše, co potřebujete, je soubor .php s dobrou webovou stránkou.

Storinka Je to možné, trochu nediskrétně, ale jsem přesvědčen, že jsi to hned řekla tomu pravému.

Strávím trochu času povídáním o programování v jazyce PHP a uvíznu v těchto rozšířeních. KUČERA, pak. schopnost komunikovat s různými servery pomocí různých protokolů ze samotného skriptu PHP.

Než se začneme věnovat curl, chci připomenout, že PHP jsme s vámi již probrali například v materiálu o použití Excelu v PHP nebo možnosti autentizace v PHP a nyní si povíme něco o schopnosti zapisovat v PHP.

Co je CURL?

KUČERA– Jedná se o knihovnu funkcí PHP, pomocí které můžete přidat výkon například HTTP z PHP skriptu. CURL podporuje protokoly jako HTTP, HTTPS, FTP a další. Požadavky HTTP lze provádět pomocí metod GET, POST a PUT.

CURL může být užitečné v situacích, kdy potřebujete kliknout na vzdálený skript a vrátit výsledek zpět, nebo jednoduše uložit HTML kód stránky, na kterou kliknete, takže můžete zjistit svůj stav stejně jako stejný smysl, jaký můžete odeslat požadavek během procesu skriptování

Připojení knihovny CURL k PHP

Abyste mohli používat knihovnu CURL, musíte ji určitě připojit.

Poznámka! Například budeme používat PHP 5.4.39 na Windows 7 a jako webový server použijeme Apache 2.2.22.

První věc, kterou musíte udělat, je zkopírovat knihovny. ssleay32.dll, libeay32.dll, libssh2.dll jsou umístěny v adresáři PHP, v systémovém adresáři Windows a v C:\Windows\System32.

Pak php.ini zahrnuje knihovnu php_curl.dll. komentovat útočnou řadu

Knihovna není připojena

;přípona=php_curl.dll

Knihovna je připojena

Přípona=php_curl.dll

To je vše, restartujte Apache, zavolejte funkci phpinfo() a jakmile budete mít úspěšné připojení, uvidíte sekci curl


Ačkoli nic takového neexistuje, znamená to pouze, že knihovna nebyla importována, což je největší důvod, proč nebylo zkopírováno více knihoven DLL do systémového adresáře Windows.

Butt CURL - napájení vzdálené strany pro zobrazení na obrazovce

V tomto případě aplikace jednoduše načtou vzdálenou stranu za protokol HTTP pomocí metody GET a zobrazí ji na obrazovce.

Máme testovací adresář ve dvou PHP souborech: test_curl.php a test.php, test_curl.php a skript, kde budeme používat curl, a test.php jako další skript, který budeme používat. Kodex jsem důkladně okomentoval.

Kód test_curl.php

Kód test.php

Nadpis 1"; přerušení; případ 2: echo"<Н2>Nadpis 2"; přerušení; případ 3: echo"<Н3>Nadpis 3"; přestávka; )) ?>

Výsledkem je, že pokud spustíte test_curl.php, uvidíte na obrazovce napsáno „Nadpis 1“, můžete experimentovat s předáváním parametrů id ( na tsomu vipadku 2 nebo 3).

Příklad CURL – klikněte na vzdálený skript a extrahujte výsledek

Nyní zkusme kliknout na skript a načíst výsledek a následně jej zpracovat, použijeme například metodu POST. Názvy souborů zůstanou stejné.

Kód test_curl.php

Kód test.php

Pokud spustíme test_curl.php, pak se na obrazovce zobrazí 111. 1.11 převzaté od dědice vzdáleného skriptu, vynásobené 100.

Nyní si promluvme o funkcích a konstantách před nimi.

Běžně používané funkce a konstanty CURL

  • curl_init – inicializuje relaci;
  • curl_close – Uzavře relaci;
  • curl_exec - Vikonuє zap;
  • curl_errno - otočí resetovací kód;
  • curl_setopt – Nastavuje parametr pro relaci, například:
    • CURLOPT_HEADER – hodnota 1 znamená, že záhlaví je třeba otočit;
    • CURLOPT_INFILESIZE - parametr pro určení velikosti souboru;
    • CURLOPT_VERBOSE - hodnota 1 znamená, že CURL bude zobrazovat zprávy o všech operacích;
    • CURLOPT_NOPROGRESS – povolení ukazatele průběhu pro provozní hodnotu 1;
    • CURLOPT_NOBODY – pokud nepotřebujete dokument, ale potřebujete pouze záhlaví, nastavte hodnotu na 1;
    • CURLOPT_UPLOAD - pro nahrání souboru na server;
    • CURLOPT_POST - Viconati se zadává pomocí metody POST;
    • CURLOPT_FTPLISTONLY – výběr seznamu souborů v adresáři FTP serveru, hodnota 1;
    • CURLOPT_PUT - Viconati se zadává pomocí metody PUT, hodnota 1;
    • CURLOPT_RETURNTRANSFER - otočit výsledek bez přechodu do prohlížeče, hodnota 1;
    • CURLOPT_TIMEOUT – maximální hodina za sekundu;
    • CURLOPT_URL – vložení adresy pro ústřednu;
    • CURLOPT_USERPWD - řádek s uživatelskými jmény a heslem v zobrazení:;
    • CURLOPT_POSTFIELDS – data pro vyžádání POST;
    • CURLOPT_REFERER - nastavuje hodnotu HTTP hlavičky "Referer:";
    • CURLOPT_USERAGENT - nastavuje hodnotu HTTP hlavičky “User-Agent:”;
    • CURLOPT_COOKIE - namísto hlavičky "Cookie:", která bude odeslána s HTTP požadavkem;
    • CURLOPT_SSLCERT - název souboru s certifikátem ve formátu PEM;
    • CURLOPT_SSL_VERIFYPEER – hodnota 0 pro zamezení ověření certifikátu vzdáleného serveru (za 1);
    • CURLOPT_SSLCERTPASSWD – heslo k souboru certifikátu.
  • curl_getinfo - Vrací informace o operaci, dalším parametrem může být konstanta pro vložení, která je nejvíce potřebná pro zobrazení, například:
    • CURLINFO_EFFECTIVE_URL – zbývající vyhledávací adresa URL;
    • CURLINFO_HTTP_CODE - zbývající kód HTTP;
    • CURLINFO_FILETIME - datum změny požadovaného dokumentu;
    • CURLINFO_TOTAL_TIME - hodina provozu v sekundách;
    • CURLINFO_NAMELOOKUP_TIME – hodina rozlišení názvu serveru v sekundách;
    • CURLINFO_CONNECT_TIME - hodina strávená instalací připojení v sekundách;
    • CURLINFO_PRETRANSFER_TIME - hodina od zahájení operace do připravenosti před vlastním přenosem dat v sekundách;
    • CURLINFO_STARTTRANSFER_TIME - hodina od začátku operace do přenesení prvního bajtu dat, v sekundách;
    • CURLINFO_REDIRECT_TIME - hodina strávená přesměrováním v sekundách;
    • CURLINFO_SIZE_UPLOAD - počet bajtů při nahrávání;
    • CURLINFO_SIZE_DOWNLOAD - počet bajtů při stahování;
    • CURLINFO_SPEED_DOWNLOAD - průměrná rychlost stahování;
    • CURLINFO_SPEED_UPLOAD - střední rychlost;
    • CURLINFO_HEADER_SIZE - celková velikost všech odstraněných hlaviček;
    • CURLINFO_REQUEST_SIZE - celková velikost všech odeslaných požadavků;
    • CURLINFO_SSL_VERIFYRESULT — výsledek ověření certifikátu SSL požadovaného nastavením CURLOPT_SSL_VERIFYPEER;
    • CURLINFO_CONTENT_LENGTH_DOWNLOAD - velikost stahovaného dokumentu, načtená z hlavičky Content-Length;
    • CURLINFO_CONTENT_LENGTH_UPLOAD - velikost dat k nahrání;
    • CURLINFO_CONTENT_TYPE - namísto hlavičky typu obsahu nebo NULL, protože tato hlavička není možná.

Zprávu o funkcích CURL a konstantách před nimi lze nalézt na oficiálních stránkách PHP.

zápis: Aktivuje se adaptivní verze webu, která se automaticky přizpůsobí malé velikosti vašeho prohlížeče a poskytne podrobnosti o webu pro snadné čtení. Dobře si to prohlédnu!

Hodně štěstí všem čtenářům blogu místo na! Zbývající 2 měsíce je moje práce pro firmu úzce spojena s čistým PHP (na druhou stranu jsou tabu na různých frameworkech a CMS), už jsem zapomněl na Joomlu :), takže budu psát další a další.

Dnes si povíme, jak ovládat připojení souborů k PHP. Jak jste si mohli všimnout, jakýkoli engine pro webové stránky (Joomla, Wordpress, OpenCart, DLE a všechno, všechno, všechno) se skládá z tisíců souborů .php (a nejen php) a všechny se vzájemně ovlivňují, což je výkonný a kreativní mechanismus webového robota.

Nyní zapomeňte na návštěvnost a odhalte jiný problém: na webu máme spoustu stránek, každá má jiné menu, záhlaví a zápatí webu. Samozřejmě nebudeme kopírovat totéž ze souboru do souboru, jinak by to byl starý HTML web z 90. let. Minimálně jsme vše rozdělili do 4 souborů:

  • index.php – hlavní část stránky, tento soubor lze upravovat
  • menu.php – menu webu
  • header.php – hlavička webu
  • footer.php – patička webu

Kromě hlavní stránky (index.php) například můžeme mít i stránky s různými produkty (category.php) a stránky produktů samotných (product.php). K těmto stránkám ručně zařazujeme soubory menu.php, header.php, footer.php. Problém s tímto přístupem je, že když přidáme novou položku nabídky, přidáme vše jednou (v menu.php), a ne 3krát (v index.php, product.php, category.php).

Může za to jídlo: "Jak získat soubor před PHP?". Pro tyto účely má PHP 2 instrukce:

A jejich pochody:

Vracím vaši úctu k těm, které zahrnují a vyžadují - to nejsou funkce, to jsou takzvané konstrukce, které nevyžadují paže.

Proč je rozdíl mezi zahrnovat a vyžadovat?

zahrnoutі vyžadovat– je to naprosto to samé, jen s jedním rozdílem, které při migraci (například pokud zadaný soubor nezná a nelze jej připojit) zahrnout jako migraci Varování Poté bude web nadále fungovat a bude to vyžadovat, jak vidíte, k úplnému odstranění webu z webu.

Požadované prohlášení je radikální a tvrdé. Co je lepší než vikorystuvat - věřím, že z velkého důvodu vám doporučuji, abyste vždy zvolili přísnější variantu, takže vyžadovat, ale hlavně slovo zahrnout je přijatelnější :)

include_once a require_once - zakažte totéž jako include (zahrnout soubor), ale v tomto případě se ujistěte, že soubor není zahrnut více než jednou. Je obzvláště obtížné se jich zbavit, protože na projektu pracuje mnoho lidí a je třeba zajistit, aby soubor nebyl nahrán příliš často.

Uvaga:

zahrnout_jednouі vyžadovat_jednou– pracovat lépe a využívat více paměti RAM, aniž by bylo nutné zahrnout a vyžadovat. Je celkem logické a s tím spojené, že si musí pamatovat všechny soubory, které byly připojeny, a bezprostředně před připojením zkontrolovat, zda je již nějaký soubor připojen.

Dovolte mi jasně ilustrovat, jak funguje zahrnutí souborů v PHP:

Při zahrnutí souborů (například: html, txt, php, xml atd.) se PHP skript pro ně jednoduše vloží na místo začlenění. Pak zahrňte (a také respektuji požadavek, takže je to totéž) - je to stejné, zkopírovali jste následující kód (CTRL + C) a vložili (CTRL + V) do souboru (například v product. php ) a poté uložit a spustit jako dříve: http://your_site.net/product.php

Chcete-li oddělit hlavní soubory, jako je product.php, od těch, které byly dříve zahrnuty (menu.php, header.php, footer.php), přejmenujte obsažené soubory následovně: menu.inc.php, header . vč.php, zápatí.vč.php. Jakmile tedy přejdeme do složky, okamžitě rozlišíme mezi hlavními soubory a doplňkovými.

Uvaga:

Tato technika (add inc) je určena pouze pro zrakovou jasnost a základní funkční schopnosti. Přestože je důležitá také vizuální konzistence, dbejte na to, abyste vždy strukturovali a pracovali ve stejném stylu.

zahrnout s obráceným významem

Pamatujete si klíčové slovo? Takže osa PHP je tak divoká, jako návrat uprostřed include. Tohle jsem vůbec nezkoušel a ještě jsem o tom ani nepřemýšlel, aby proti tomu mohli bojovat ostatní, jinak to jde, zkuste zadnici some.php:

Zahrnout some.php:

// Zadejte řádek: PHP ?>

Ještě pár faktů

  • Soubory můžete zahrnout do libovolného kódu PHP, včetně uprostřed;
  • Připojení (include) jsou požadována při spuštění skriptu a do souborů, které jsou součástí, se nic nepřidává;
  • Soubor připojení je ve stejném řádku jako soubor zahrnutí. Pokud je uprostřed souboru, pak je rozsah globální, a pokud je uprostřed funkce, pak je lokální. Ještě jednou zdůrazním, že include je to samé, pokud jste vzali a zkopírovali kód ze souboru v sekci include.

Děkujeme všem za respekt a přejeme krásný víkend!

Po propagaci není rozšíření pro práci s MySQL (knihovna php_mysql.dll) připojeno k PHP a všechny ostatní funkce nejsou dostupné. Chcete-li knihovnu připojit, musíte provést změny v konfiguračním souboru php.ini a zkopírovat další knihovny do adresáře c:/windows/system32.

1. Vyberte PHP (Apache), kde se nachází php.ini (pouze pro Apache 2.x)

Pokud používáte Apache verze 2 nebo vyšší, nezapomeňte do konfiguračního souboru Apache (httpd.conf) přidat direktivu PHPIniDir, která vám umožní přesně určit, kam se má soubor php.ini nainstalovat. Po přidání direktivy restartujte Apache a restartujte, aby se program úspěšně spustil.

PHPIniDir „c:/php“

Poznámka

Upozorňujeme, že při psaní cesty se používají lomítka, což není typické pro Windows, ve kterých se používají zpětná lomítka. Vpravo je, že Apache i PHP byly původně vytvořeny pro práci na unixových systémech, takže se používají samotná přímá lomítka. Pro odstranění možných problémů, které je důležité diagnostikovat, se důrazně doporučuje používat rovná lomítka v konfiguračních souborech Apache a PHP ve formátu unix.

Zde je důležité si uvědomit, že konfigurační soubor php.ini je uložen v adresáři c:/php. Abyste zajistili, že Apache zná konfigurační soubor php.ini, připojte funkci phpinfo().

Zobrazení informací o konfiguraci PHP

echo phpinfo();
?>

Najděte hodnoty řádků v odebraných fialových tabulkách "Cesta konfiguračního souboru (php.ini)". Je zodpovědná za specifikaci cesty k souboru php.ini, což je vikorist, včetně samotného souboru. Pokud adresář není uveden v tomto řádku, znamená to, že Apache nemohl najít soubor php.ini.

C:/php/php.ini // Správně – php.ini nalezeno a vikorizováno
C:/windows/ // Nesprávně - php.ini se nezobrazuje

Poznámka

V Apache dřívější verze direktivy PHPIniDir neexistovaly a v důsledku toho se vyskytlo mnoho chyb spojených s nesprávným rozšířením souboru php.ini. Pro Apache verze 1.3 musí být php.ini nainstalován v systémovém adresáři Windows, obvykle: c:/Windows. Použití direktivy PHPIniDir v Apache verze 2 umožňuje tento problém radikálně vyřešit.

Jakmile ověříte, že Apache používá správný php.ini, můžete přistoupit k dalším úpravám pro připojení rozšíření k MySQL.

2. Upravte direktivu extension_dir v PHP.INI

Direktiva extension_dir určuje adresář, ve kterém jsou nainstalovány knihovny rozšíření php, včetně knihovny php_mysql.dll. Jakmile nainstalujete php do adresáře c:/php, knihovny rozšíření se obvykle nainstalují do podadresáře ext (c:/php/ext). Ověřte, že je to pravda, a nastavte správné hodnoty direktivy extension_dir.

Extension_dir = "c:/php/ext"

3. Povolte rozšíření pro práci s MySQL

K tomu můžete najít následující řádek v php.ini:

;přípona=php_mysql.dll

A odstraňte z něj symbol komentáře – tečku s tečkou.

Rozšíření=php_mysql.dll

4. Zkopírujte další knihovnu libmysql.dll z c:/windows

Pokud připojíte PHP k Apache jako modul, pak pro připojení rozšíření MySQL musíte zkopírovat další knihovnu libmysql.dll z adresáře c:/php do adresáře c:/windows/system32. Pokud se PHP připojuje k Apache jako doplněk CGI, není nutné kopírování knihovny doplňků.

5. Restartujte Apache

Chcete-li zajistit, že všechny provedené změny jsou správné, restartujte Apache.

6. Zkontrolujte nainstalované rozšíření

Chcete-li zajistit, aby se knihovna MySQL úspěšně připojila k PHP, otevřete funkci phpinfo(). Podívejte se na „fialové tabulky“ a zjistíte, že mají sekci s názvy MySQL. Pokud je taková sekce aktivní, znamená to, že se pobočka úspěšně připojila.

Kontrola interakce mezi PHP a MySQL

1. Zkontrolujte, zda máte server MySQL.

Než začnete kontrolovat interakci mezi PHP a MySQL, zkontrolujte, jaký MySQL server používáte. Můžete to provést otevřením seznamu služeb systému Windows: "Start" | "Ovládací panely" | "Administrace" | "služby". Najděte službu pomocí názvu MySQL a podívejte se, co to je ve fázi robota (třetí sloupec tabulky).

Další způsob, jak zjistit, co běží na serveru MySQL: stiskněte tlačítka „Crtl“ + „Alt“ + „Del“ a v záložce „Procesy“ najděte proces s názvem mysqld.exe. Místo procesu mysqld.exe mohou běžet následující procesy: mysqld-nt.exe, mysqld-max-nt.exe, mysqld-debug.exe.

2. Převeďte přepracovaný php skript

$dblocation = "127.0.0.1";
$dbname = "test" ;
$dbuser = "root";
$dbpasswd = "";

$dbcnx = mysql_connect($dblocation, $dbuser, $dbpasswd);
pokud (!$dbcnx)
{
echo "" ;
výstup();
}
li(!

{
echo "" ;
výstup();
}

if(!$ver)
{
echo "

Mléko v pití

" ;
výstup();
}
echo
mysql_result($ver, 0);
?>

Pokud je test úspěšný, na obrazovce se zobrazí číslo verze MySQL. V opačném případě se na obrazovce zobrazí popis obdržených odměn.

Chyby, když jsou povolena rozšíření pro práci s MySQL

Pardons: Volání nedefinované funkce

Všechny výhody, které fráze "Call to undefined function" naznačuje, je, že rozšíření PHP není povoleno. K takovým chybám dochází při práci s funkcemi MySQL, což znamená, že není součástí knihovny PHP pro práci s MySQL – php_mysql.dll

Příklad oznámení o změnách:

Závažná chyba: Volání nedefinované funkce mysql_connect()

Chcete-li tento problém vyřešit, přejděte na konec statistiky.

V phpinfo() není žádný blok MySQL

Pokud je vše správně nastaveno, pokud se rozšíření pro práci s MySQL nepřipojí a nekontaktuje blok MySQL v zobrazené funkci phpinfo(), pak změňte verzi knihovny libmysql.dll, nainstalované v c:/windows/ systém32.

  1. Vyrovnejte velikost knihovny libmysql.dll, která se nachází v c:/windows/system32, s velikostí stejnojmenné knihovny, která byla nainstalována z PHP. Zápach se rýsuje, ale je stejný.
  2. Vyhledejte knihovny libmysql.dll v adresáři c:/windows a ve všech podadresářích. Smažte všechny známé duplikáty a stáhněte si pouze jednu požadovanou knihovnu – tu, která byla zkopírována z adresáře c:/php.

Poznámka

Stejná knihovna libmysql.dll je také dodávána se serverem MySQL. Avšak pro různé knihovny a pokud je knihovna samotná umístěna v adresáři c:/windows/system32 pod MySQL, PHP nemůže povolit rozšíření. Knihovnu libmysql.dll lze automaticky zkopírovat do c:/windows/system32, když je nainstalován server MySQL. Přítomnost knihovny v systémovém adresáři obsahující starou verzi PHP může být poškozena.

Čistá strana ověřovacího skriptu

Jako skript pro kontrolu interakce PHP s MySQL je skript často recenzován na našem webu, viz výpis níže. Jeho význam v podobném php skriptu vznášejícím se nad stránkou statistik je symbol @ před voláním funkcí mysql_connect() a mysql_select_db(). Tyto symboly se používají k potlačení omezení prohlížeče. Je vhodné je používat na jakékoli webové stránce na internetu, abyste se vyhnuli zobrazování důvěrných informací v prohlížeči, jinak s dobře vyvinutými skripty není potřeba zobrazované informace chránit. To může ztížit diagnostiku problému.

PHP skript, který kontroluje interakci mezi PHP a MySQL serverem

$dblocation = "127.0.0.1";
$dbname = "test" ;
$dbuser = "root";
$dbpasswd = "";

$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
pokud (!$dbcnx)
{
echo "

Bohužel mySQL server je nedostupný

" ;
výstup();
}
li(!@
mysql_select_db ($dbname, $dbcnx))
{
echo "

Omlouváme se, databáze není dostupná

"
;
výstup();
}
$ver = mysql_query("VYBRAT VERZI()");
if(!$ver)
{
echo "

Mléko v pití

"
;
výstup();
}
echo
mysql_result($ver, 0);
?>

Pokud je výsledkem vašeho skriptu prázdná stránka, obvykle to znamená, že knihovna php_mysql.dll není připojena k PHP. Pro přesnější diagnostiku problému postupujte podle pořadí akcí.

  1. Ujistěte se, že místo databáze MySQL používáte jiné skripty PHP.
  2. Před kliknutím mysql_connect a mysql_select odstraňte symbol @, který se používá k potlačení zobrazení předvoleb v prohlížeči. Poté prohlížeč zobrazí další informace o škodách, které pomohou problém vyřešit.

Problém: Nelze se připojit k serveru MySQL na "127.0.0.1" (10061)

Když zkontrolujete ověřovací PHP skript, uvidíte podobnou chybu, jako je tato:


Nelze se připojit k serveru MySQL na "127.0.0.1" (10061)
v C:\www\panel\htdocs\test.php na řádku 7

Upozorňujeme, že server MySQL nefunguje. Přesnější diagnostiku tohoto problému lze nalézt v odstavci 1 části „Kontrola interakce mezi PHP a MySQL“.

Problém: Přístup odepřen uživateli "root"@"localhost" (pomocí hesla: ANO)

Detekce počátku smrti:

Upozornění: mysql_connect() :
Přístup odepřen uživateli "root"@"localhost" (pomocí hesla: ANO)
v C:\www\panel\htdocs\test.php na řádku 7

Uvědomte si, že se pokoušíte připojit k databázi MySQL s nesprávným heslem. Ověřte hodnoty proměnné $dbpasswd v ověřovacím skriptu. Pro propagační účely je server MySQL nainstalován s prázdným heslem root. Pokud jste nastavili své vlastní root heslo, napište ho do nabídky $dbpasswd ověřovacího skriptu.

Ať už se potřebujete pro práci připojit k rozšíření PHP, můžete se na našem fóru zeptat na instalaci a konfiguraci Apache, PHP a knihoven rozšíření.