Włącz Apache
- Otwórz Terminal, klikając szkło powiększające w prawym górnym rogu ekranu i wyszukując Terminal
- Podaj
sudo apachectl start
i naciśnij enter - Otwórz Safari (lub inną przeglądarkę), wpisz localhost w pasku adresu, i naciśnij enter
Nie możesz uwierzyć, że to takie proste? Tak jest! W przeglądarce powinieneś teraz zobaczyć napis It works!
Włącz PHP
Mac jest już wyposażony w PHP, więc nie musisz go instalować z PHP.net. Przed High Sierra (wersja 10.13), Mac miał zainstalowane PHP 5. To powodowało, że użytkownicy byli zirytowani, ponieważ nie było PHP 7, więc trzeba było wykonać dodatkową pracę, aby zaktualizować system z PHP 5 do PHP 7. Na szczęście High Sierra posiada już PHP 7.1!!!
- Otwórz Terminal i wpisz
sudo nano /etc/apache2/httpd.conf
i naciśnij enter - Naciśnij Ctrl+W, co spowoduje wyświetlenie wyszukiwania
- Wyszukaj php i naciśnij enter. Zobaczysz, co następuje:
- Usuń # z
#LoadModule php7_module libexec/apache2/libphp7.so
- Naciśnij Ctrl+O, a następnie Enter, aby zapisać dokonaną zmianę
- Naciśnij Ctrl+X, aby wyjść z nano
- Wpisz
sudo apachectl restart
i naciśnij enter
Włączyłeś właśnie PHP 7. Świetna robota do tej pory!
Utwórz folder Sites
- Kliknij na Finder w lewym dolnym rogu ekranu i kliknij na Go > Home górny pasek nawigacyjny. To zabierze Cię do Twojego katalogu domowego, który będzie również niezależnie od nazwy Twojego komputera; w tym przypadku jest to david.
- Utwórz nowy folder i nazwij go Sites (ikona Safari pokazana poniżej zostanie automatycznie dodana do folderu Sites, jak pokazano poniżej)
- Otwórz swój ulubiony edytor tekstu i utwórz plik o nazwie index.php z następującym kodem:
<?phpecho "Hello From Sites Folder!";phpinfo();?>
- Zapisz index.php w folderze Sites, który utworzyłeś
- Powróć do Terminala i wpisz
sudo nano /etc/apache2/httpd.conf
- Naciśnij Ctrl+W, aby wywołać wyszukiwanie
- Wyszukaj Library i naciśnij enter. Powinieneś zobaczyć to:
- Zastąp oba wystąpienia
/Library/WebServer/Documents
przez/Users/david/Sites
(zamiast david użyj swojego imienia, które można znaleźć na górze terminala obok ikony domu) - Naciśnij Ctrl+O, a następnie Enter, aby zapisać te zmiany
- Naciśnij Ctrl+X, aby wyjść z nano
- Wpisz
sudo apachectl restart
i naciśnij enter
Powróć do Safari i odśwież stronę localhost, a zobaczysz Hello From Sites Folder! z informacją o PHP, która pokazuje, że używane jest PHP 7.
Instalacja MySQL
- Go to https://dev.mysql.com/downloads/mysql
- Scroll down until you see three download buttons and click on the one next to DMG Archive
- Scroll down and click No thanks, just start my download
- Click on the downloaded file, double click the pkg file, and go through the installation which should look like this:
- Gdy dojdziesz do końca instalacji, zobaczysz popup, który poda ci twoją nazwę użytkownika MySQL (root) i hasło (8hxKsiIh?YMt). Twoje hasło będzie inne. Skopiuj hasło do pliku tekstowego (lub zrób zrzut ekranu) i naciśnij OK. Zrób to teraz, ponieważ będzie to bolesne, aby zresetować hasło, jeśli go nie znasz.
- Naciśnij logo Apple w lewym górnym rogu ekranu i przejdź do Preferencji systemowych
- Kliknij na MySQL i zobaczysz, że jest wyłączony
- Naciśnij Uruchom serwer MySQL, aby go włączyć i zobaczysz:
- Powróć do Terminala i wpisz
sudo /usr/local/mysql/bin/mysql -u root -p
- Gdy naciśniesz enter, poprosi cię o twoje Hasło. Jest to hasło, którego używasz, gdy logujesz się do swojego Maca
- Potem pojawi się komunikat Wpisz hasło: które dla mnie brzmi 8hxKsiIh?YMt (zamiast 8hxKsiIh?YMt powinieneś użyć hasła, które wcześniej skopiowałeś). Zobaczysz ten ekran:
- Typ
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
i naciśnij enter - Przejdź do https://www.sequelpro.com i pobierz Sequel Pro. To jest jak phpMyAdmin, ale lepsze, ponieważ jest to aplikacja na pulpit.
- Przejdź przez instalację, otwórz Sequel Pro i wprowadź 127.0.0.1 dla hosta. Wpisz root jako nazwę użytkownika i newpassword jako hasło. Naciśnij Połącz
- Kliknij Wybierz bazę danych… w lewym górnym rogu, a następnie Dodaj bazę danych…
- Nadaj jej nazwę mydb i naciśnij enter
- Następnie kliknij znak plusa w lewym dolnym rogu, aby utworzyć nową tabelę. Nazwij tabelę mytable i naciśnij add
- Kliknij znak plusa tuż nad słowem INDEXES i nazwij pole message. Ustaw typ na VARCHAR i nadaj mu długość 200.
- Kliknij na Content na górze.
- Kliknij na znak plusa na dole (ten na lewo od znaku minus)
- Nadaj nowemu wpisowi id równe 1 i ustaw wiadomość na MySQL działa idealnie!
- Otwórz plik index.php w folderze Sites i zmień kod 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();
Oczywiście ten przykład jest odporny na wstrzyknięcie kodu SQL, ponieważ nie ma w nim żadnych wartości wprowadzanych przez użytkownika. Jednakże, jeśli nie rozumiesz MySQLi prepared statements tak dobrze jak byś chciał, sprawdź ten post dla doskonałego tutoriala jak zapobiegać SQL injection 😉. Jest nawet wersja PDO, jeśli wolisz to bardziej.
- Refresh localhost na Safari i powinieneś zobaczyć:
Great! Masz teraz działający MySQL, więc możesz używać localhost do przechowywania informacji w bazach danych.
Uczyń URL przyjaznym dla SEO
Zamiast przechodzić do localhost/profile.php?user=david, ładniej wygląda, gdy możesz przejść do localhost/profile/david. Sprawmy, aby to zadziałało poprzez włączenie mod_rewrite, aby można było używać RewriteRules.
- Przejdź do Terminala i wpisz
sudo nano /etc/apache2/httpd.conf
, a następnie naciśnij enter - Naciśnij Ctrl+W, wpisz rewrite, i naciśnij enter
- Usuń # w
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- Naciśnij Ctrl+O, a następnie Enter, aby zapisać
- Naciśnij Ctrl+X, aby wyjść z nano
- Typ
sudo apachectl restart
Teraz możesz używać przyjaznych adresów URL, gdy rozwijasz się przy użyciu localhost.
Make .htaccess Work
To nie jest konieczne, aby próżne adresy URL działały, ale osobiście wolę używać pliku .htaccess, ponieważ pozwala mi to na kontrolę wersji.
- Wejdź do Terminala i wpisz
sudo nano /etc/apache2/httpd.conf
, a następnie naciśnij enter - Naciśnij Ctrl+W, wpisz
AllowOverride controls
, i naciśnij enter - Zmień
AllowOverride None
naAllowOverride All
- Naciśnij Ctrl+O, a następnie Enter, aby zapisać
- Naciśnij Ctrl+X, aby wyjść z nano
- Pisz
sudo apachectl restart
Teraz możesz dodać plik .htaccess w folderze Sites i będzie to działać dobrze.
Włącz SSL/HTTPS
Zamiast dostępu do witryny przez localhost, możesz chcieć uzyskać dostęp do witryny, przechodząc do https://localhost. Jeśli włączysz SSL, zobaczysz kłódkę obok localhost w pasku adresu URL.
- Przejdź do Terminala i wpisz
sudo nano /etc/apache2/httpd.conf
, a następnie naciśnij enter - Naciśnij Ctrl+W, wpisz socache_shmcb_module, i naciśnij enter
- Usuń # z
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
- Naciśnij Ctrl+W, wpisz mod_ssl, i naciśnij enter
- Usuń # z
#LoadModule ssl_module libexec/apache2/mod_ssl.so
- Naciśnij Ctrl+W, wpisz httpd-ssl, i naciśnij enter
- Usuń # z
#Include /private/etc/apache2/extra/httpd-ssl.conf
- Naciśnij Ctrl+O, a następnie Enter, aby zapisać
- Naciśnij Ctrl+X, aby wyjść z nano
- Pisz
sudo nano /etc/apache2/extra/httpd-ssl.conf
i naciśnij enter - Naciśnij Ctrl+W, wpisz ServerName, i naciśnij enter
- Zastąp www.example.com:443 na localhost
- Tuż powyżej zobaczysz
/Library/WebServer/Documents
. Zamień to na/Users/david/Sites
. (Użyj swojego imienia zamiast david, tak jak zrobiłeś to wcześniej) - Prawie pod
<VirtualHost_default_:443>
dodaj (ale upewnij się, że zastąpisz david swoim imieniem):
<Directory "/Users/david/Sites"> Options All MultiviewsMatch Any AllowOverride All Require all granted</Directory>
- Twój terminal powinien teraz wyglądać tak:
- Naciśnij Ctrl+O, a następnie Enter, aby zapisać
- Naciśnij Ctrl+X, aby wyjść z nano
- Wpisz
sudo nano /etc/ssl/openssl.cnf
i naciśnij enter - Na dole openssl.cnf dodaj to:
subjectAltName = DNS:localhost
- Twój terminal powinien wyglądać tak:
- Naciśnij Ctrl+O, a następnie Enter, aby zapisać
- Naciśnij Ctrl+X, aby wyjść z 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"
i naciśnij enter. (Możesz użyć swoich danych zamiast tego, ale nie zmieniaj localhost)
- Type
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /private/etc/apache2/server.crt
i naciśnij enter
- Type
sudo apachectl
restart - Teraz wejdź na https://localhost w przeglądarce, a zobaczysz kłódkę obok adresu url, co oznacza, że skończyłeś konfigurować SSL!
.