Problemen met de FTP verbinding oplossen.

Onze WooCommerce-plugin maakt het mogelijk om automatisch bestanden uit het KING ERP pakket op te halen via een FTP-verbinding. Dit gebeurt met het WordPress cron-systeem, zodat de webshop regelmatig wordt bijgewerkt zonder handmatig ingrijpen.

Soms lukt het de plugin niet om verbinding te maken met de externe FTP-server. Dit kan verschillende oorzaken hebben. Omdat zowel de webserver (waar WordPress draait) als het netwerk van de FTP-server door verschillende partijen beheerd kunnen worden, is het belangrijk om goed te weten wie wat moet controleren.

Voordat de koppeling automatisch via WordPress cron gaat lopen, kun je in de plugin zelf de verbinding handmatig testen met een knop. Dit is altijd de eerste stap om problemen te onderzoeken: lukt de handmatige test niet, dan werkt de cron ook niet.

Voor de webshop eigenaar

Als eigenaar hoef je meestal niets zelf in te stellen, maar je moet wel zorgen dat de juiste partijen met elkaar communiceren.

  • Zorg dat je weet welke partij de webserver beheert (hostingbedrijf of systeembeheerder).

  • Zorg dat je weet welke partij het netwerk en de FTP-server beheert.

  • Geef beide partijen de juiste contactgegevens, zodat ze direct met elkaar kunnen schakelen.

Voor de webserverbeheerder (WordPress-kant)

De plugin maakt vanuit WordPress zelf de FTP-verbinding. Hiervoor moet de webserver het volgende toelaten:

  1. PHP FTP-extensie

    • Controleer of de PHP-extensie ftp actief is. Zonder deze extensie werkt ftp_connect() niet.

  2. Rechten voor de webuser

    • De gebruiker waaronder PHP draait (www-data, apache of een andere user) moet uitgaande verbindingen mogen opzetten.

  3. Firewall en poorten

    • Zorg dat poort 21 (FTP) of 990 (FTPS) openstaat voor uitgaand verkeer.

    • Als de plugin passieve modus gebruikt: open ook de reeks poorten die daarvoor nodig zijn.

  4. Logging

    • Voeg logging toe bij ftp_connect() om foutmeldingen zichtbaar te maken.

Voor de netwerk-/FTP-serverbeheerder (KING ERP-kant)

Als de webserver wel naar buiten mag, kan de verbinding alsnog worden geweigerd door de ontvangende kant.

  1. FTP Server
    • Is de FTP-server actief en kan deze van binnen het netwerk wel benaderd worden?
  2. IP-whitelist
    • Het publieke IP-adres van de webserver moet op de whitelist staan van de FTP-server.
  3. Firewall
    • Controleer zowel de routerfirewall als de serverfirewall. Beide moeten FTP-verkeer accepteren.
    • Zorg dat poort 21 of 990 en de passieve data-poorten openstaan.
  4. Active / Passive / Extended Passive Mode
    • PHP kan overweg met active en passive mode, maar niet met Extended Passive Mode (EPSV). Zorg er dus voor dat er geen Extended Passive Mode gebruikt wordt.

Conclusie

  • De testknop in de plugin is altijd stap 1: als die geen verbinding maakt, moet eerst de oorzaak worden gevonden.

  • De webserverbeheerder kijkt naar logbestanden, PHP-instellingen, gebruikersrechten en de firewall aan de WordPress-kant.

  • De netwerk-/FTP-serverbeheerder kijkt naar de whitelist en firewall aan de KING ERP-kant.

  • De webshop eigenaar zorgt dat beide partijen direct met elkaar kunnen schakelen.