Zapněte Apache
- Otevřete Terminál kliknutím na lupu v pravém horním rohu obrazovky a vyhledáním Terminal
- Napište
sudo apachectl start
a stiskněte enter - Otevřete Safari (nebo vybraný prohlížeč), zadejte do adresního řádku localhost a stiskněte enter
Nevěříte, že je to tak snadné? Je to tak! Nyní byste měli v prohlížeči vidět Funguje to!
Zapněte PHP
Mac již obsahuje PHP, takže jej nemusíte instalovat z PHP.net. Před verzí High Sierra (verze 10.13) byl Mac dodáván s nainstalovaným PHP 5. V případě, že je nainstalováno PHP 5, je nutné jej nainstalovat. To způsobovalo, že se uživatelé rozčilovali, protože nebyl dodáván s PHP 7, takže jste museli podstoupit další práci, abyste mohli upgradovat z PHP 5 na PHP 7. Naštěstí je High Sierra již dodávána s PHP 7.1!!!
- Otevřete Terminál a zadejte
sudo nano /etc/apache2/httpd.conf
a stiskněte enter - Stiskněte Ctrl+W, čímž se zobrazí vyhledávání
- Vyhledejte php a stiskněte enter. Zobrazí se následující:
- Vymažte # z
#LoadModule php7_module libexec/apache2/libphp7.so
- Stiskněte Ctrl+O a následně Enter, čímž uložíte právě provedenou změnu
- Stiskněte Ctrl+X, čímž ukončíte nano
- Napište
sudo apachectl restart
a stiskněte enter
Právě jste zapnuli PHP 7. Můžete se podívat, co se děje. Zatím skvělá práce!
Vytvořte složku Sites
- Klikněte na Finder v levém dolním rohu obrazovky a klikněte na Go > Domácí horní navigační lišta. Tím se dostanete do svého domovského adresáře, který se také bude jmenovat podle toho, jak se jmenuje váš počítač; v tomto případě je to david.
- Vytvořte novou složku a pojmenujte ji Sites (níže zobrazená ikona Safari se automaticky přidá do složky Sites, jak je uvedeno níže)
- Otevřete svůj oblíbený textový editor a vytvořte soubor s názvem index.php s následujícím kódem:
<?phpecho "Hello From Sites Folder!";phpinfo();?>
- Ulož index.php do vytvořené složky Sites
- Přejdi zpět do Terminálu a zadej
sudo nano /etc/apache2/httpd.conf
- Stiskni Ctrl+W pro vyvolání vyhledávání
- Vyhledej Library a stiskni enter. Mělo by se zobrazit toto:
- Zaměňte oba výskyty
/Library/WebServer/Documents
za/Users/david/Sites
(místo david použijte své jméno, které najdete v horní části terminálu vedle ikony domů) - Stiskněte Ctrl+O a následně Enter pro uložení těchto změn
- Stiskněte Ctrl+X pro ukončení nano
- Napište
sudo apachectl restart
a stiskněte enter
Přejděte zpět do Safari a obnovte stránku localhost a uvidíte Hello From Sites Folder! s informacemi o PHP, které ukazují, že se používá PHP 7.
Instalace MySQL
- Přejděte na https://dev.mysql.com/downloads/mysql
- Sjeďte dolů, dokud neuvidíte tři tlačítka pro stahování, a klikněte na to vedle DMG Archive
- Sjeďte dolů a klikněte na No thanks, just start my download
- Klikněte na stažený soubor, dvakrát klikněte na soubor pkg a projděte instalací, která by měla vypadat takto:
- Jakmile se dostanete na konec instalace, zobrazí se vyskakovací okno, které vám sdělí vaše uživatelské jméno MySQL (root) a heslo (8hxKsiIh?YMt). Vaše heslo se bude lišit. Zkopírujte heslo do textového souboru (nebo si pořiďte snímek obrazovky) a stiskněte tlačítko OK. Udělejte to hned, protože obnovení hesla bude bolestivé, pokud ho nebudete znát.
- Stiskněte logo Apple v levém horním rohu obrazovky a přejděte do Předvoleb systému
- Klikněte na MySQL a uvidíte, že je vypnutý
- Stisknutím tlačítka Spustit server MySQL jej zapněte a uvidíte:
- Přejděte zpět do Terminálu a zadejte
sudo /usr/local/mysql/bin/mysql -u root -p
- Po stisknutí enteru se vás zeptá na heslo. To je heslo, které používáte při přihlašování do počítače Mac
- Poté se zobrazí nápis Zadejte heslo:, což je u mě 8hxKsiIh?YMt (místo 8hxKsiIh?YMt byste měli použít heslo, které jste si předtím opsali). Zobrazí se tato obrazovka:
- Zadejte
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
a stiskněte enter - Přejděte na https://www.sequelpro.com a stáhněte aplikaci Sequel Pro. Je to něco jako phpMyAdmin, ale lepší, protože je to desktopová aplikace.
- Přejděte přes instalaci, otevřete Sequel Pro a zadejte 127.0.0.1 jako Hostitel. Jako uživatelské jméno zadejte root a jako heslo newpassword. Stiskněte Connect
- Klikněte vlevo nahoře na Choose Database… a následně na Add Database…
- Pojmenujte ji mydb a stiskněte enter
- Poté klikněte vlevo dole na znaménko plus a vytvořte novou tabulku. Pojmenujte tabulku mytable a stiskněte tlačítko přidat
- Klikněte na znaménko plus vpravo nad slovem INDEXY a pojmenujte pole zpráva. Nastavte typ na VARCHAR a dejte mu délku 200.
- Klikněte na obsah nahoře.
- Klikněte na znaménko plus dole (to vlevo od znaménka minus)
- Dejte nové položce id 1 a nastavte zprávu na MySQL funguje perfektně!
- Otevřete index.php ve složce Sites a změňte kód na
<?php$con = new mysqli("127.0.0.1", "root", "newpassword", "mydb");$message = $con->query("SELECT message FROM myTable")->fetch_object()->message;$con->close();echo "$message <br/>";echo "Hello From Sites Folder!";phpinfo();
Tento příklad je samozřejmě imunní vůči SQL injection, protože v něm nejsou žádné hodnoty zadávané uživatelem. Pokud však nerozumíte připraveným příkazům MySQLi tak dobře, jak byste chtěli, podívejte se na tento příspěvek, kde najdete vynikající návod, jak zabránit SQL injection 😉. Existuje dokonce i verze PDO, pokud tomu dáváte přednost více.
- Obnovte localhost v Safari a měli byste vidět:
Skvělé! Nyní máte funkční MySQL, takže můžete localhost používat k ukládání informací do databází.
Zprovozněte SEO Friendly URL
Místo toho, abyste chodili na localhost/profile.php?user=david, vypadá hezčí, když můžete jít na localhost/profile/david. Zprovozníme to tak, že povolíme mod_rewrite, abyste mohli používat RewriteRules.
- Přejděte do Terminálu a zadejte
sudo nano /etc/apache2/httpd.conf
a poté stiskněte enter - Stiskněte Ctrl+W, zadejte rewrite, a stiskněte enter
- Odstraňte # v
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- Stiskněte Ctrl+O a následně Enter pro uložení
- Stiskněte Ctrl+X pro ukončení nano
- Zadejte
sudo apachectl restart
Nyní můžete při vývoji pomocí localhostu používat přátelské adresy URL.
Zprovoznění .htaccess
Pro zprovoznění marnivých adres URL to není nutné, ale osobně dávám přednost použití .htaccess, protože mi to umožňuje kontrolu nad verzí.
- Přejděte do Terminálu a zadejte
sudo nano /etc/apache2/httpd.conf
a následně stiskněte enter - Stiskněte Ctrl+W, zadejte
AllowOverride controls
, a stiskněte enter - Změňte
AllowOverride None
naAllowOverride All
- Stiskněte Ctrl+O a následně Enter pro uložení
- Stiskněte Ctrl+X pro ukončení nano
- Napište
sudo apachectl restart
Nyní můžete přidat .htaccess do složky Sites a bude to dobře fungovat.
Zapněte SSL/HTTPS
Místo přístupu na své webové stránky přes localhost můžete chtít přistupovat na své webové stránky pomocí https://localhost. Pokud zapnete SSL, uvidíte v řádku URL vedle localhost visací zámek.
- Přejděte do Terminálu a zadejte
sudo nano /etc/apache2/httpd.conf
a poté stiskněte klávesu enter - Stiskněte klávesovou zkratku Ctrl+W, zadejte socache_shmcb_module, a stiskněte enter
- Smažte # z
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
- Stiskněte Ctrl+W, zadejte mod_ssl a stiskněte enter
- Smažte # z
#LoadModule ssl_module libexec/apache2/mod_ssl.so
- Stiskněte Ctrl+W, zadejte httpd-ssl a stiskněte enter
- Odstraňte # z
#Include /private/etc/apache2/extra/httpd-ssl.conf
- Stiskněte Ctrl+O a následně Enter pro uložení
- Stiskněte Ctrl+X pro ukončení nano
- Zadejte
sudo nano /etc/apache2/extra/httpd-ssl.conf
a stiskněte enter - Stiskněte Ctrl+W, zadejte ServerName a stiskněte enter
- Na místo www.example.com:443 za localhost
- Právě nad ním se zobrazí
/Library/WebServer/Documents
. Nahraďte ji/Users/david/Sites
. (Místo david použijte své jméno, stejně jako jste to udělali dříve) - Pravo pod
<VirtualHost_default_:443>
přidejte (ale nezapomeňte nahradit david svým jménem):
<Directory "/Users/david/Sites"> Options All MultiviewsMatch Any AllowOverride All Require all granted</Directory>
- Váš terminál by nyní měl vypadat takto:
- Stiskněte Ctrl+O a následně Enter pro uložení
- Stiskněte Ctrl+X pro ukončení nano
- Napište
sudo nano /etc/ssl/openssl.cnf
a stiskněte Enter - V dolní části openssl.cnf přidejte toto:
subjectAltName = DNS:localhost
- Váš terminál by měl vypadat takto:
- Stiskněte Ctrl+O a následně Enter pro uložení
- Stiskněte Ctrl+X pro ukončení nano
- Type
sudo openssl req -extensions san -config /etc/ssl/openssl.cnf -x509 -nodes -newkey rsa:4096 -keyout /private/etc/apache2/server.key -out /private/etc/apache2/server.crt -days 365 -subj "/C=US/ST=Florida/L=Boca Raton/O=WebsiteBeaver/CN=localhost"
a stiskněte enter. (Místo toho můžete použít své údaje, ale neměňte localhost)
- Type
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /private/etc/apache2/server.crt
a stiskněte enter
- Type
sudo apachectl
restartovat - Nyní přejděte na https://localhost v prohlížeči a vedle url uvidíte visací zámek, což znamená, že jste dokončili nastavení SSL!