Instalacja CakePHP

cakephpFramework CakePHP można pobrać za pomocą composera. W tym celu, w konsoli, w katalogu przeznaczonym na pliki, w którym mają znaleźć się pliki serwera WWW, należy uruchomić polecenie: composer create-project – -prefer-dist cakephp/app nazwa_aplikacji gdzie nazwa aplikacji to np. cakephp.

Framework CakePHP można też pobrać jako pakiet zip ze strony https://github.com/cakephp/cakephp/releases. W czasie pisania niniejszego podręcznika, jest to plik o nazwie cakephp-3-2-11.zip.

Po rozpakowaniu, należy przenieść go do głównego folderu zawierającego pliki strony startowej serwera WWW. W przypadku serwera IIS, będzie to katalog C:\Inetpub\wwwroot. Można także utworzyć dodatkowy katalog, np. o nazwie cakephp i skopiować tam pliki frameworka. W przypadku serwera Apache, będzie to katalog htdocs. Jeśli zaś korzystasz z wbudowanego serwera, żadne zabiegi nie będą konieczne.

CakePHP używa katalogu tmp dla wielu różnych operacji. Opisu modeli, tworzenia pamięci podręcznej widoków, do obsługi sesji, etc. Katalog logs jest używany do zapisu logów przez domyślny silnik FileLog. Upewnij się, że katalogi logs, tmp wraz z podkatalogami są zapisywalne, choć instalacja przez Composer nadaje odpowiednie uprawnienia dla katalogu tmp oraz dla podfolderów.

Jeżeli jako serwera WWW używasz XAMPP lub WAMP, po zainstalowaniu jednego z nich, musisz włączyć rozszerzenie mbstring. Aby tego dokonać, wystarczy odnaleźć plik php.ini i odkomentować wiersz extension=php_intl.dll.

Istotną czynnością jest jednak edycja zabezpieczeń katalogów logs i tmp. Należy koniecznie zmodyfikować uprawnienia tych katalogów, dodając prawa do zapisu do tych katalogów użytkownikowi: (IUSR – w przypadku serwera IIS) lub innemu użytkownikowi, na którego koncie działa serwer WWW.

Następnym krokiem jest konfiguracja modułu ModRevrite. Dla serwera IIS. Najprostszą metodą jest utworzenie w katalogu zawierającym pliki CakePHP pliku web.config z zawartością:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Exclude direct access to webroot/*"
                  stopProcessing="true">
                    <match url="^webroot/(.*)$" ignoreCase="false" />
                    <action type="None" />
                </rule>
                <rule name="Rewrite routed access to assets(img, css, files, js, favicon)"
                  stopProcessing="true">
                    <match url="^(img|css|files|js|favicon.ico)(.*)$" />
                    <action type="Rewrite" url="webroot/{R:1}{R:2}"
                      appendQueryString="false" />
                </rule>
                <rule name="Rewrite requested file/folder to index.php"
                  stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <action type="Rewrite" url="index.php"
                      appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
 

zaś dla serwera Apache, jest to plik .htaccess, który znajduje się (lub należy go otworzyć w katalogu wskazanym przez DocumentRoot):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /path/to/app
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Po tych czynnościach, można wywołać stronę główną: http://localhost:8765 lub http://localhost/cakephp – jeśli framework został zainstalowany w podkatalogu cakephp.

Uwagi – jeżeli nie można włączyć modułu mod_rewrite odpowiadającego za proste adresy URL, możesz włączyć ich obsługe za pomocą frameworka. W tym celu niezbędne jest usunięcie pliku .htaccess w katalogu webroot oraz zmodyfikowanie pliku config/app.php i odkomentowanie linii:

'App' => [
    // ...
    // 'baseUrl' => env('SCRIPT_NAME'),
]

Po zainstalowaniu frameworka, należy dodać do zmiennej systemowej PATH
katalogu bin frameworka, co umożliwi korzystanie z linii poleceń.

W przypadku, gdy nie ma zainstalowanego serwera WWW (IIS lub Apache), można skorzystać z wewnętrznego serwera frameworka, wpisując w konsoli: cake server,

cd C:\inetpub\wwwroot\cakephp

cake server

Domyślnie wbudowany serwer pracuje na porcie 8765, jednak jeśli chcesz, by pracował na innym porcie, użyj polecenia bin/cake server -H 192.168.1.1 -p 5673, gdzie adres jest adresem twojego komputera. Pamiętaj, że wbudowany serwer, ze względów bezpieczeństwa, nie może być wykorzystywany w środowisku produkcyjnym, jednak dla celów programistycznych jest wystarczający.

Welcome to CakePHP v3.2.11 Console ---------------------------------------------------------------
App : src 
Path: C:\inetpub\wwwroot\cakephp\src\ 
DocumentRoot: C:\inetpub\wwwroot\cakephp\webroot 
--------------------------------------------------------------- 
built-in server is running in http://localhost:8765/ 
You can exit with `CTRL-C` 

Następnie można uruchomić witrynę w przeglądarce, wpisując adres http://localhost:8765.

Prawidłowo zainstalowany framework CakePHP przedstawi się stroną tytułową jak na obrazku poniżej:

cakephphome 
Zainstalowany i uruchomiony w przeglądarce framework CakePHP

Dodatkowo zostaną wyświetlone informacje systemowe, które informują o komponentach systemu.

Environment

cakephpinfo1

Filesystem

cakephpfilesystem1 
Your tmp directory is writable. (ważne – oznacza, że katalog tmp jest zapisywalny).
Your logs directory is writable. (ważne – oznacza, że katalog logs jest zapisywalny).

The FileEngine is being used for core caching. To change the config edit config/app.php,

DebugKit is loaded. (ważne – jest to plugin, który znacznie ułatwia programowanie i wyświetla przydatne informacje o zapytaniach do baz danych, informacje o sesjach, requestach, pamięci podręczenej, itp). Pasek jest zawsze dostępny u dołu ekranu i rozwinie po wciśnięciu przycisku z ciasteczkiem.

debugkit1cake

CakePHP is NOT able to connect to the database.

cakenotconnectdatabase1

Informacja ta wskazuje, że CakePHP nie może połączyć się z bazą danych. Jest to sytuacja jak najbardziej normalna, ponieważ nie została przeprowadzona konfiguracja bazy.

Framework obsługuje następujące bazy danych:

  • MySQL (5.1.10 lub wyższa)
  • PostgreSQL
  • Microsoft SQL Server (2008 lub wyższa)
  • SQLite 3

Obsługa baz danych wymaga bibliotek PDO.

Konfigurację połączenia z bazą danych przeprowadza się poprzez edycję pliku App.php w katalogu Config, w sekcji Datasources:

'Datasources' => [
 'default' => [
 'className' => 'Cake\Database\Connection',
 'driver' => 'Cake\Database\Driver\Mysql',
 'persistent' => false,
 'host' => 'localhost',
 /**
 * CakePHP will use the default DB port based on the driver selected
 * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
 * the following line and set the port accordingly
 */

//'port' => 'non_standard_port_number',
 'username' => 'uzytkownik_bazy',
 'password' => 'haslo',
 'database' => 'nazwa_bazy',
 'encoding' => 'utf8',
 'timezone' => 'UTC',
 'flags' => [],
 'cacheMetadata' => true,
 'log' => false,

Domyślnym sterownikiem baz danych jest Mysql i jeśli tworzona aplikacja internetowa ma pracować z ta bazą, należy jedynie zmodyfikować parametry połączenia: host, username, password i database. Po zapisaniu pliku, można odświeżyć stronę i skontrolować, czy framework poprawnie połączył się z bazą danych.

W przypadku połączenia z serwerem firmy Microsoft, należy zmodyfikować w miejsce driver należy podstawić Sqlserver, a dodatkowo, jeśli nadal występuje błąd połączenia, należy zakomentować linię encodig: //’encoding’ => ‚utf8’.

W przypadku, gdy zostanie wyświetlona dodatkowa linia o treści:

cakephpsaltchange

Notice (1024): Please change the value of ‚Security.salt’ in ROOT/config/app.php to a salt value specific to your application. [CORE\src\Error\Debugger.php, line 789]

to prawdopodobnie instalacja CakePHP odbywała się ręcznie, stąd należy dodatkowo wyedytować plik config\app.php i w linii ‚salt’ => ‚__SALT__’, należy wpisać losowy klucz szyfrujący. W tym miejscu warto wejść na stronę https://jasonsnider.com/jsc/jsc/cakephp_salt_and_cipher_generator/, która wygeneruje za nas losowy ciąg, który należy następnie wkleić pomiędzy apostrofy. Od tej chwili, CakePHP jest gotowy do pracy.

1025total visits,2visits today

Tagi , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

40 + = 49

This site uses Akismet to reduce spam. Learn how your comment data is processed.