Webanwendungsskelett mit Fano Framework, Pascal Web Application Framework. Video Tutorial anzeigen.
Überprüfen Sie, ob das libcurl-Paket für die Entwicklung durch Ausführen von curl-config installiert ist.
$ curl-config --version
Wenn libcurl installiert ist, erhalten Sie so etwas wie libcurl x.xx.x , wo x.xx.x Version ist. Zum Beispiel libcurl 7.47.0 sonst bekommen Sie
The program 'curl-config' can be found in the following packages:
* libcurl4-gnutls-dev
* libcurl4-nss-dev
* libcurl4-openssl-dev
Try: sudo apt install <selected package>
Wenn libcurl nicht installiert ist, laufen Sie aus
$ sudo apt install libcurl4-gnutls-dev
Stellen Sie sicher, dass kostenlos Pascal installiert ist. Laufen
$ fpc -i
Wenn Sie so etwas wie Free Pascal Compiler version 3.0.4 sehen, können Sie loslegen.
Klonen Sie dieses Repository
$ git clone [email protected]:fanoframework/fano-app.git --recursive
--recursive ist erforderlich, sodass Git auch Fano-Repository erfolgt.
Wenn Sie fehlen --recursive , wenn Sie klonen, stellen Sie möglicherweise fest, dass fano -Verzeichnis leer ist. In diesem Fall laufen
$ git submodule update --init
Um Fano auf sein neuestes Commit zu aktualisieren, rennen Sie
$ git checkout master && git submodule foreach --recursive git pull origin master
Der obere Befehl überprüft den master -Zweig dieses Repositorys und zieht das neueste Update von master Branch of Fano Repository.
Kopieren *.cfg.sample to *.cfg . Nehmen Sie die Anpassung an, wie Sie in build.cfg , build.prod.cfg , build.dev.cfg und run build.sh Shell -Skript ausführen (wenn Sie unter Windows sind, dann build.cmd ).
Diese *.cfg -Dateien enthalten einige kostenlose Pascal -Compiler -Switches, die Sie ein-/ausschalten können, um die Kompilierung der Ausführung zu ändern und zu erzeugen. Für die vollständige Erläuterung zu verfügbaren Compiler -Switches finden Sie eine kostenlose Pascal -Dokumentation.
Kopieren Sie auch app/config/config.json.sample in app/config/config.json und bearbeiten Sie die Konfiguration nach Bedarf. Sie müssen beispielsweise baseUrl so ändern, dass Sie Ihre eigene Basis -URL entsprechen, damit JavaScript oder CSS -Stylesheets auf die korrekte URL verweisen.
$ cp app/config/config.json.sample app/config/config.json
$ cp build.prod.cfg.sample build.prod.cfg
$ cp build.dev.cfg.sample build.dev.cfg
$ cp build.cfg.sample build.cfg
$ ./build.sh
tools/config.setup.sh Shell -Skript wird bereitgestellt, um das Kopieren dieser Konfigurationsdateien zu vereinfachen. Der folgende Shell -Befehl ähnelt dem obigen Befehl.
$ ./tools/config.setup.sh
$ ./build.sh
Standardmäßig wird die ausführbare Binärdatei im public Verzeichnis ausgegeben.
Um für eine andere Umgebung zu erstellen, setzen Sie die Umgebungsvariable BUILD_TYPE .
$ BUILD_TYPE=prod ./build.sh
Der Build -Prozess verwendet die in fano/fano.cfg , build.cfg und build.prod.cfg definierte Compiler -Konfiguration. Standardmäßig enthält build.prod.cfg einige Compiler -Switches, die die ausführliche Datei sowohl in Geschwindigkeit als auch in Größe aggressiv optimieren.
$ BUILD_TYPE=dev ./build.sh
Der Erstellungsprozess verwendet Compiler -Konfiguration, die in fano/fano.cfg , build.cfg und build.dev.cfg definiert sind.
Wenn die Umgebungsvariable BUILD_TYPE nicht festgelegt ist, wird die Produktionsumgebung übernommen.
Die Kompilierung wird ausführbar in das in der Umgebungsvariablen EXEC_OUTPUT_DIR definierte Verzeichnis ausgegeben. Standardmäßig ist das public Verzeichnis.
$ EXEC_OUTPUT_DIR=/path/to/public/dir ./build.sh
Die Kompilierung verwendet den ausführbaren Dateinamen wie in der Umgebungsvariablen EXEC_OUTPUT_NAME . Standardmäßig ist app.cgi Dateiname.
$ EXEC_OUTPUT_NAME=index.cgi ./build.sh
Richten Sie einen virtuellen Host ein. Bitte konsultieren Sie die Dokumentation des von Ihnen verwendeten Webservers.
Zum Beispiel auf Apache,
<VirtualHost *:80>
ServerName fano.dev
DocumentRoot /home/fanodev/public
<Directory "/home/fanodev/public">
Options +ExecCGI
AllowOverride FileInfo Indexes
Require all granted
DirectoryIndex app.cgi
AddHandler cgi-script .cgi
</Directory>
</VirtualHost>
Auf Apache müssen Sie das CGI -Modul wie mod_cgi oder mod_cgid aktivieren. Wenn das CGI -Modul nicht geladen wird, wird der obere virtuelle Host app.cgi anstelle von ausgeführt heruntergeladen.
Auf Debian können Sie beispielsweise das Modul mod_cgi aktivieren.
$ sudo a2enmod cgi
$ sudo systemctl restart apache2
Fügen Sie beispielsweise beispielsweise bei Ihrem Server .htaccess den folgenden Code hinzu:
DirectoryIndex app.cgi
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.cgi [L]
</IfModule>
und setzen Sie die Datei .htaccess in das gleiche Verzeichnis wie app.cgi -Datei (dh in app/public Directory).
Inhalt von .htaccess fordert Apache im Grunde auf, vorhandene Dateien/Verzeichnisse direkt zu dienen. Geben Sie sie für nicht existierende Dateien/Verzeichnisse an unsere Anwendung weiter.
$ cd app/public
$ REQUEST_METHOD=GET
REQUEST_URI=/test/test
SERVER_NAME=juhara.com
./app.cgi
tools/simulate.run.sh ist ein Bash -Skript, mit dem die Simulation der Auslaufanwendung in Shell vereinfacht werden kann.
$ ./tools/simulate.run.sh
oder um den Weg zum Zugriff zu ändern, setzen Sie die Variable REQUEST_URI fest.
$ REQUEST_URI=/test/test ./simulate.run.sh
Dies ähnelt der Simulation von Browser, die beispielsweise diese Seite anfordern.
$ wget -O- http://[your fano app hostname]/test/test
Wenn Sie jedoch mit tools/simulate.run.sh ausgeführt werden, können Sie die Ausgabe der heaptrc -Einheit zum Erkennen von Speicherlecks anzeigen (wenn Sie -gh -Schalter in build.dev.cfg aktivieren).
Sie müssen nur ausführbare Binärdateien und unterstützende Dateien wie HTML -Vorlagen, Bilder, CSS -Stylesheets und Anwendungskonfiguration bereitstellen. Alle pas oder inc -Dateien oder Shell -Skripte werden im Bereitstellungsgerät nicht benötigt, damit die Auftragsanwendung ausgeführt wird.
Für dieses Repository müssen Sie Verzeichnisse public , Templates , config und storages in Ihren Bereitstellungsgerät kopieren. Stellen Sie sicher, dass das storages vom Webserver beschreibbar ist.
Beim Ausführen von build.sh -Skript können Sie nach der Warnung begegnen:
/usr/bin/ld: warning: public/link.res contains output sections; did you forget -T?
Dies ist bekannt, dass das Problem zwischen kostenlosen Pascal und GNU -Linker bekannt ist. Siehe FAQ: Link.res Syntax -Fehler oder "Haben Sie -t vergessen?"
Diese Warnung ist jedoch geringfügig und kann ignoriert werden. Es wirkt sich nicht auf die ausführbare Ausgabe aus.
Manchmal kann kostenloser Pascal Ihren Code nicht kompilieren, da Sie beispielsweise einen Quellcode (.pas) der Einheit gelöscht haben, aber eine alte generierte Einheit (.ppu, .o, .a -Dateien) immer noch da oder wenn Sie zwischen Git -Zweigen wechseln. Lösung besteht darin, diese Dateien zu entfernen.
Standardmäßig sind erzeugte kompilierte Einheiten im bin/unit -Verzeichnis. Löschen Sie jedoch in diesem Verzeichnis die Datei README.md nicht, da sie nicht von Git ignoriert wird.
$ rm bin/unit/*.ppu
$ rm bin/unit/*.o
$ rm bin/unit/*.rsj
$ rm bin/unit/*.a
Der folgende Shell -Befehl entfernen alle Dateien im Verzeichnis von bin/unit mit Ausnahme README.md -Datei.
$ find bin/unit ! -name 'README.md' -type f -exec rm -f {} +
tools/clean.sh Skript wird bereitgestellt, um diese Aufgabe zu vereinfachen.
Free Pascal unterstützt Windows als Zielbetriebssystem. Dieses Repository wird jedoch noch nicht unter Windows getestet. Um Windows zu zielen, ersetzen Sie in build.cfg Compiler Switch -Tlinux durch -Twin64 und die Kontrolllinie #-WC , um -WC zu werden.
Während Sie Lazarus IDE verwenden können, ist es kein obligatorisches Werkzeug. Jeder Texteditor für die Codebearbeitung (Atom, Visual Studio Code, Sublime, VIM usw.) sollte ausreichen.