NGINX-website migreren naar de Caddy-server van ServBay
ServBay is een krachtige lokale webontwikkelomgeving die meerdere populaire webservers integreert, waaronder Caddy, NGINX en Apache. Voor deze servers – met name Caddy en NGINX – heeft ServBay veelgebruikte URL-rewrite regels vooraf geconfigureerd, wat het configuratieproces voor ontwikkelaars sterk vereenvoudigt.
Dit artikel biedt een gedetailleerde handleiding voor het naadloos migreren van uw bestaande NGINX-website naar de ingebouwde Caddy-server van ServBay. We demonstreren het volledige migratieproces aan de hand van het populaire PHP-framework Laravel en het contentmanagementsysteem WordPress.
Volledige ondersteuning van webservers door ServBay
ServBay biedt volledige ondersteuning voor Caddy, NGINX en Apache, zodat u eenvoudig kunt wisselen van standaardwebserver op basis van uw projectvereisten. Raadpleeg de documentatie over hoe u de standaardwebserver wijzigt voor meer informatie.
Overzicht
Het migreren van een website tussen verschillende webservers vereist dat configuratiebestanden en websitebestanden worden overgezet. In ServBay is het migratieproces naar Caddy zeer gebruiksvriendelijk ontworpen. Voor nagenoeg alle PHP-frameworks en CMS-systemen (zoals Laravel, WordPress, Symfony, CodeIgniter, Drupal, Joomla, enzovoort) biedt ServBay kant-en-klare ondersteuning, waardoor u geen handmatige Caddy-configuratiebestanden hoeft te maken of aan te passen. ServBay genereert automatisch de benodigde Caddyfile afhankelijk van de websites die u in de GUI instelt.
Voorbereiding vóór de migratie
Voordat u een migratie start, is het belangrijk om de volgende stappen te doorlopen:
- Back-up van websitebestanden: Maak een volledige back-up van alle bestanden en mappen in de hoofdmap van uw website.
- Back-up van database: Maak een back-up van de gegevensbank (zoals MySQL, PostgreSQL, MongoDB, enzovoort). ServBay biedt ingebouwde hulpmiddelen voor databasebeheer, maar ondersteunt ook handmatige back-ups.
- Installeer ServBay: Zorg dat ServBay succesvol is geïnstalleerd en draait op uw macOS-systeem.
- Bevestig de bestandslocatie: Plaats uw websitebestanden in de standaard webroot van ServBay,
/Applications/ServBay/www
, of in een submap daarvan. Als uw project bijvoorbeeldmyproject
heet, plaatst u het in/Applications/ServBay/www/myproject
.
Hoe Caddy werkt binnen ServBay
Het is belangrijk om te begrijpen hoe ServBay de Caddy-configuratie beheert. In tegenstelling tot handmatig beheer van Caddyfiles, voegt u met de grafische gebruikersinterface (GUI) van ServBay eenvoudig websites toe en past u ze aan. Wanneer u een website toevoegt en Caddy selecteert als webserver, zal ServBay op basis van de opgegeven domeinnaam, website-root, PHP-versie, enzovoort, automatisch de benodigde Caddyfile-fragmenten genereren en beheren. Deze fragmenten worden opgenomen in de hoofd-Caddyfile van ServBay, waardoor uw website correct wordt bediend.
Hierdoor hoeft u in feite alleen maar uw website via de ServBay-GUI toe te voegen; verdere handmatige configuratie van .caddyfile
-bestanden of vergelijkbare tekstbestanden is niet nodig.
Migratiestappen
Het migreren van een NGINX-website naar de Caddy-server van ServBay verloopt als volgt:
- Start ServBay: Zorg dat de ServBay-applicatie actief is.
- Plaats uw websitebestanden: Kopieer of verplaats alle bestanden van uw NGINX-website (inclusief broncode, afbeeldingen, CSS, JS, enzovoort) naar een nieuwe map binnen de webroot van ServBay, bijvoorbeeld
/Applications/ServBay/www/your-site-name
. - Website toevoegen via de ServBay-GUI:
- Open de ServBay-applicatie.
- Navigeer naar het gedeelte “Websites”.
- Klik op de knop “Website toevoegen”.
- Vul de websitegegevens in:
- Domein: Voer het lokale domein in waarop u uw site wilt bereiken, bijvoorbeeld
your-site-name.servbay.demo
. - Website-root: Kies de map waarin u in stap 2 de sitebestanden hebt geplaatst, bijvoorbeeld
/Applications/ServBay/www/your-site-name
. - Webserver: Selecteer
Caddy
. - PHP-versie: Bepaal welke PHP-versie uw site vereist.
- Domein: Voer het lokale domein in waarop u uw site wilt bereiken, bijvoorbeeld
- Klik op “Opslaan” of “Aanmaken”.
- Site controleren: ServBay voegt het nieuwe domein automatisch toe aan uw lokale hosts-bestand en configureert Caddy. Bezoek het ingestelde lokale domein in uw browser (bijv.
http://your-site-name.servbay.demo
) en controleer of uw website correct wordt geladen. - Databaseconfiguratie: Heeft uw website een database nodig, zorg er dan voor dat de bijbehorende databaseservice (zoals MySQL, PostgreSQL) binnen ServBay actief is en werk uw databaseverbindingen in de websiteconfiguratie bij (adres is meestal
127.0.0.1
oflocalhost
; gebruikersnaam en wachtwoord zoals ingesteld).
Werking van Caddy in ServBay
Voor een goed begrip van de migratie is inzicht in ServBay’s Caddy-beheer van belang. Waar het handmatig beheren van Caddyfiles bij andere platforms vereist is, maakt ServBay gebruik van de grafische gebruikersinterface om sites aan te maken. Wanneer u een site toevoegt en Caddy als server selecteert, zal ServBay automatisch op basis van de door u opgegeven domeinnaam, rootfolder, PHP-versie, enzovoort de juiste Caddyfile-snippets genereren en beheren. Deze snippets worden opgenomen in het hoofd-Caddyfile van ServBay en zorgen ervoor dat de website juist draait.
Hierdoor hoeft u, zodra uw website via de ServBay-GUI is toegevoegd, geen enkel .caddyfile
of vergelijkbaar tekstbestand meer handmatig te bewerken.
Migratieproces
Het migreren van een NGINX-site naar de Caddy-server binnen ServBay is buitengewoon eenvoudig:
- Start ServBay: Zorg ervoor dat ServBay draait.
- Kopieer uw sitebestanden: Verplaats alle NGINX-sitebestanden (ook de applicatiecode, afbeeldingen, CSS, JS, enzovoort) naar een nieuwe map onder de ServBay webroot, bijvoorbeeld
/Applications/ServBay/www/your-site-name
. - Voeg de site toe via de ServBay-GUI:
- Start de ServBay-app.
- Navigeer naar “Websites”.
- Klik op “Website toevoegen”.
- Vul de vereiste gegevens in:
- Domein: Kies bijvoorbeeld
your-site-name.servbay.demo
. - Website-root: De map uit stap 2, bijvoorbeeld
/Applications/ServBay/www/your-site-name
. - Webserver: Selecteer
Caddy
. - PHP-versie: Selecteer de benodigde PHP-versie.
- Domein: Kies bijvoorbeeld
- Klik op “Opslaan” of “Aanmaken”.
- Controleer de website: ServBay verwerkt automatisch de toevoeging van het lokale domein aan uw hosts-bestand en configureert Caddy. Open uw lokale domeinnaam in de browser (bijvoorbeeld
http://your-site-name.servbay.demo
) en bekijk of uw site werkt. - Configureer de database: Wanneer uw site gebruik maakt van een database, zorg ervoor dat de benodigde database in ServBay actief is en update de verbindingsinstellingen (meestal
127.0.0.1
oflocalhost
, eigen gebruikersnaam/wachtwoord).
Voorbeeld: Laravel-website migreren
Typische NGINX-configuratie (ter referentie)
Dit is een typisch NGINX-configuratiebestand voor een Laravel-website. Het laat zien hoe de rootmap, de hoofdingang (index.php
) en de PHP FastCGI-configuratie worden ingesteld:
nginx
server {
listen 80;
server_name laravel.servbay.demo; # Gebruik het voorbeeld domein van ServBay
root /Applications/ServBay/www/laravel/public; # Wijs naar de public-folder van Laravel
index index.php index.html index.htm;
location / {
# Probeer directe toegang tot bestanden/map, anders rewrite naar index.php
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Configureer PHP FastCGI-verwerking
include fastcgi_params;
# ServBay’s standaard PHP-CGI socket-pad
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Blokkeer toegang tot verborgen bestanden
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Overeenkomstige Caddy-configuratie in ServBay (automatisch, geen handwerk vereist)
Handmatige Caddyfile-configuratie is niet nodig
In ServBay hoeft u geen Caddyfile handmatig te creëren of te bewerken om bovenstaande functionaliteit te bereiken. De GUI genereert deze automatisch op basis van uw instellingen. De onderstaande Caddy-configuratie dient enkel ter illustratie van hoe ServBay soortgelijke configuraties als NGINX intern verwerkt, ter verduidelijking van het proces.
Hieronder een (vereenvoudigd) fragment van de automatisch door ServBay gegenereerde Caddy-configuratie voor een Laravel-site (het werkelijke bestand kan uitgebreider zijn voor extra functionaliteit):
bash
# Deze configuratie wordt automatisch door ServBay beheerd
laravel.servbay.demo {
# Stel de rootmap van de website in
root * /Applications/ServBay/www/laravel/public
# Configureer PHP FastCGI en wijs naar ServBay’s PHP-CGI socket
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Schakel bestandsserver in
file_server
# Definieer een matcher voor niet-statistische bestanden
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Rewrite niet-bestaande bestanden naar index.php
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Praktische stappen voor het migreren van Laravel:
- Kopieer uw Laravel-projectbestanden naar
/Applications/ServBay/www/laravel
. - Zorg ervoor dat de
laravel/public
directory als root directory wordt gebruikt. - Voeg een nieuwe website toe in de ServBay GUI: domein
laravel.servbay.demo
, rootmap/Applications/ServBay/www/laravel/public
, kies de webserverCaddy
. - Pas de juiste database-instellingen aan in de
.env
-file van Laravel. - Bezoek
http://laravel.servbay.demo
om te testen.
Voorbeeld: WordPress-website migreren
Typische NGINX-configuratie (ter referentie)
Hier volgt een typische NGINX-configuratie voor een WordPress-site:
nginx
server {
listen 80;
server_name wordpress.servbay.demo; # Gebruik het voorbeeld domein van ServBay
root /Applications/ServBay/www/wordpress; # Wijs naar de WordPress-installatiemap
index index.php index.html index.htm;
location / {
# WordPress permalink-regels
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Configureer PHP FastCGI-verwerking
include fastcgi_params;
# ServBay’s standaard PHP-CGI socket-pad
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Blokkeer toegang tot verborgen bestanden
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Overeenkomstige Caddy-configuratie in ServBay (automatisch, geen handwerk vereist)
Handmatige Caddyfile-configuratie is niet nodig
Ook voor WordPress regelt ServBay automatisch de Caddy-configuratie. Het onderstaande voorbeeld geeft slechts inzicht in hoe ServBay intern WordPress permalinks en soortgelijke functionaliteit afhandelt.
Hieronder vindt u een automatisch door ServBay te genereren Caddy-configuratiefragment voor een WordPress-site:
bash
# Deze configuratie wordt automatisch door ServBay beheerd
wordpress.servbay.demo {
# Stel de rootmap van de website in
root * /Applications/ServBay/www/wordpress
# Configureer PHP FastCGI
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Schakel bestandsserver in
file_server
# Definieer een matcher voor niet-statistische bestanden
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Rewrite niet-bestaande bestanden naar index.php voor permalinks
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Praktische stappen voor het migreren van WordPress:
- Kopieer alle WordPress-bestanden naar
/Applications/ServBay/www/wordpress
. - Voeg binnen ServBay GUI een nieuwe website toe: domein
wordpress.servbay.demo
, website-root/Applications/ServBay/www/wordpress
, webserverCaddy
. - Werk de database-instellingen bij in het bestand
wp-config.php
van WordPress. - Bezoek
http://wordpress.servbay.demo
om te testen. Bij problemen met permalinks: ServBay heeft reeds de juiste rewrite-regels toegepast; controleer in de WordPress-beheeromgeving bij “Instellingen” -> “Permalinks” of de configuratie correct staat.
Let op
- Databaseverbindingen: Werk na de migratie de databaseverbindingen in het websitecodebestand bij zodat ze naar de actieve databaseservice binnen ServBay verwijzen.
- Omgevingsvariabelen: Gebruikt uw applicatie speciale omgevingsvariabelen, zorg dan dat deze in de ServBay-omgeving zijn ingesteld (bijv. via het
.env
-bestand van PHP of de configuratiemogelijkheden van ServBay). - Complexe NGINX-configuraties: De voorbeelden in dit artikel zijn gericht op standaard Laravel- en WordPress-configuraties. Heeft uw NGINX-configuratie ingewikkelde aangepaste regels, specifieke modules of afwijkende instellingen, dan kan het zijn dat de automatische instellingen van ServBay niet alles dekken. In dat geval kunt u de documentatie van Caddy raadplegen en – indien beschikbaar – gebruikmaken van uitbreidbare Caddy-configuratie in ServBay, of de gegenereerde logica analyseren voor handmatige aanpassingen. Voor het merendeel van de gangbare applicaties is de automatische configuratie van ServBay echter voldoende.
- HTTPS/SSL: ServBay ondersteunt het instellen van HTTPS voor lokale websites. U kunt de ServBay User CA of ServBay Public CA gebruiken om lokale SSL-certificaten te genereren en te vertrouwen – handmatige configuratie van TLS binnen Caddy is dus niet nodig.
Samenvatting
Het migreren van NGINX-websites naar de Caddy-server van ServBay is een sterk vereenvoudigd proces, dankzij de automatische Caddy-configuratie van ServBay. Voor populaire applicaties als Laravel en WordPress hoeft u enkel de bestanden in de juiste map te plaatsen en de website via de ServBay GUI toe te voegen. ServBay zorgt automatisch voor URL-rewrites en PHP FastCGI-instellingen, zodat u uw project snel lokaal met Caddy kunt draaien.