Mark van Eijk — Author at Rocketeers - Rocketeers

  [ Rocketeers ](/)   

[Login](https://rocketeersapp.com) 

 Author

Mark van Eijk
=============

Mark is the founder of Rocketeers and has been building web applications and hosting infrastructure for over a decade. He writes about self-hosting, server management, DNS, and web performance.

[ github.com ](https://github.com/markvaneijk) [ markvaneijk.com ](https://markvaneijk.com)

169 articles
------------

- Nov 2024 [Enable JIT in PHP 8.x OPcache](https://rocketee.rs/php-8-opcache-jit)
- Nov 2024 [Detect Googlebot visits using nginx](https://rocketee.rs/detect-googlebot-nginx)
- Nov 2024 [Log bot requests in nginx](https://rocketee.rs/log-bot-requests-nginx)
- Nov 2024 [Use nginx try\_files to make your site static](https://rocketee.rs/nginx-try-files)
- Oct 2024 [Improving PHP performance](https://rocketee.rs/php-performance)
- Jul 2026 [Run DeepSeek locally](https://rocketee.rs/run-deepseek-locally)
- Jul 2026 [Use the OpenAI API in Laravel](https://rocketee.rs/use-the-openai-api-in-laravel)
- Jul 2026 [Self-host an LLM on your own server](https://rocketee.rs/self-host-an-llm-on-your-own-server)
- Jul 2026 [Fix the OpenAI API rate limit (429) error](https://rocketee.rs/fix-openai-api-rate-limit-429-error)
- Jul 2026 [Run a local LLM with Ollama](https://rocketee.rs/run-a-local-llm-with-ollama)
- Jul 2026 [Track AI bots visiting your website](https://rocketee.rs/track-ai-bots-visiting-your-website)
- Jun 2026 [What is Cloudflare?](https://rocketee.rs/what-is-cloudflare)
- Jun 2026 [How to host your own website](https://rocketee.rs/how-to-host-your-own-website)
- Jun 2026 [Important PHP config options](https://rocketee.rs/important-php-config-options)
- Jun 2026 [How to renew SSL certificates automatically](https://rocketee.rs/renew-ssl-certificates-automatically)
- Jun 2026 [Tools to validate your website](https://rocketee.rs/tools-to-validate-website)
- Jun 2026 [How to install Certbot](https://rocketee.rs/how-to-install-certbot)
- Jun 2026 [How to install MySQL on Ubuntu](https://rocketee.rs/how-to-install-mysql)
- Jun 2026 [How to install PHP on Ubuntu](https://rocketee.rs/how-to-install-php)
- Jun 2026 [How to install Nginx on Ubuntu](https://rocketee.rs/how-to-install-nginx)
- Jun 2026 [Why do you need Cloudflare?](https://rocketee.rs/why-do-you-need-cloudflare)
- Jun 2026 [Website launch checklist](https://rocketee.rs/website-checklist)
- Jun 2026 [How to install multiple PHP versions on the same server](https://rocketee.rs/how-to-install-multiple-php-versions-on-same-server)
- Jun 2026 [How to install Node.js on Ubuntu](https://rocketee.rs/how-to-install-nodejs)
- Jun 2026 [How to install the Xcode Command Line Tools on macOS](https://rocketee.rs/install-xcode-command-line-tools)
- Jun 2026 [How to configure rate limiting in nginx](https://rocketee.rs/nginx-rate-limiting)
- Jun 2026 [How to find files in Linux with the find command](https://rocketee.rs/find-files-linux-command)
- Jun 2026 [PHP Fatal error: Class "X" not found](https://rocketee.rs/php-class-not-found)
- Jun 2026 [How to delete a local (and remote) Git branch](https://rocketee.rs/git-delete-local-branch)
- Jun 2026 [Fix: Cannot connect to the Docker daemon at unix:///var/run/docker.sock](https://rocketee.rs/cannot-connect-to-docker-daemon)
- Jun 2026 [PHP Warning: Undefined array key](https://rocketee.rs/undefined-array-key-php)
- Jun 2026 [MySQL ERROR 1040: Too many connections](https://rocketee.rs/mysql-1040-too-many-connections)
- Jun 2026 [How to find your IP address from the Linux command line](https://rocketee.rs/find-ip-address-linux-command-line)
- Jun 2026 [How to kill the process running on a port in Linux](https://rocketee.rs/kill-process-on-port-linux)
- Jun 2026 [SQLSTATE\[HY000\] \[2002\] Connection refused](https://rocketee.rs/sqlstate-hy000-2002-connection-refused)
- Jun 2026 [A complete guide to caching in Laravel](https://rocketee.rs/laravel-cache)
- Jun 2026 [git stash pop vs apply: save and restore changes](https://rocketee.rs/git-stash-pop)
- Jun 2026 [Essential Linux command line basics for developers](https://rocketee.rs/linux-command-line-basics)
- Jun 2026 [nginx: upstream sent too big header](https://rocketee.rs/nginx-upstream-sent-too-big-header)
- Jun 2026 [PHP: Call to a member function on null](https://rocketee.rs/call-to-a-member-function-on-null)
- Jun 2026 [GitHub Permission denied (publickey)](https://rocketee.rs/github-permission-denied-publickey)
- Jun 2026 [CSRF token mismatch in Laravel](https://rocketee.rs/csrf-token-mismatch-laravel)
- Jun 2026 [How to improve Laravel performance](https://rocketee.rs/laravel-performance)
- Jun 2026 [How to create and extract tar archives in Linux](https://rocketee.rs/create-extract-tar-archives-linux)
- Jun 2026 [How to sync files and directories with rsync](https://rocketee.rs/sync-files-rsync-command)
- Jun 2026 [How to clean up Docker with prune (images, volumes, system)](https://rocketee.rs/docker-prune)
- Jun 2026 [How to update Ubuntu from the command line](https://rocketee.rs/update-ubuntu-command-line)
- Jun 2026 [SQLSTATE\[23000\] 1062 Duplicate entry](https://rocketee.rs/sqlstate-23000-1062-duplicate-entry)
- Jun 2026 [MySQL 1071: Specified key was too long (Laravel migration)](https://rocketee.rs/mysql-1071-specified-key-was-too-long)
- Jun 2026 [How to generate SSH keys with ssh-keygen](https://rocketee.rs/generate-ssh-keys-ssh-keygen)
- Jun 2026 [What port does SSH use (and how to change it)](https://rocketee.rs/ssh-port)
- Jun 2026 [How to checkout a Git tag](https://rocketee.rs/git-checkout-tag)
- Jun 2026 [ERR\_TOO\_MANY\_REDIRECTS (redirect loop)](https://rocketee.rs/err-too-many-redirects)
- Jun 2026 [How to find and optimize slow MySQL queries](https://rocketee.rs/mysql-query-optimization)
- Jun 2026 [403 Forbidden in nginx](https://rocketee.rs/403-forbidden-nginx)
- Jun 2026 [How to generate an SSH key](https://rocketee.rs/generate-ssh-key)
- Jun 2026 [Composer out of memory (allowed memory size exhausted)](https://rocketee.rs/composer-out-of-memory-allowed-memory-size-exhausted)
- Jun 2026 [MySQL ERROR 1064: SQL syntax error](https://rocketee.rs/mysql-1064-sql-syntax-error)
- Jun 2026 [Address already in use (port already bound)](https://rocketee.rs/address-already-in-use-port)
- Jun 2026 [503 Service Unavailable](https://rocketee.rs/503-service-unavailable)
- Jun 2026 [SSH Permission denied (publickey)](https://rocketee.rs/ssh-permission-denied-publickey)
- Jun 2026 [How to run a command on a remote server over SSH](https://rocketee.rs/run-command-over-ssh)
- Jun 2026 [How to copy files over SSH with scp](https://rocketee.rs/copy-files-over-ssh-scp)
- Jun 2026 [How to search file contents with grep](https://rocketee.rs/search-files-grep-command)
- Jun 2026 [How database indexing works (with MySQL examples)](https://rocketee.rs/database-indexing)
- Jun 2026 [Git fatal: not a git repository](https://rocketee.rs/git-not-a-git-repository)
- Jun 2026 [How to enable and configure OPcache for faster PHP](https://rocketee.rs/enable-opcache-php)
- Jun 2026 [docker compose up: options and common flags](https://rocketee.rs/docker-compose-up)
- Jun 2026 [CORS error: No Access-Control-Allow-Origin header](https://rocketee.rs/cors-error-no-access-control-allow-origin)
- Jun 2026 [Your connection is not private](https://rocketee.rs/your-connection-is-not-private)
- Jun 2026 [The complete guide to the curl command](https://rocketee.rs/curl-command-complete-guide)
- Jun 2026 [How to change file permissions with chmod](https://rocketee.rs/change-file-permissions-chmod-linux)
- Jun 2026 [nginx rewrite or internal redirection cycle](https://rocketee.rs/nginx-rewrite-or-internal-redirection-cycle)
- Jun 2026 [What is an SSH key](https://rocketee.rs/what-is-an-ssh-key)
- Jun 2026 [How to connect to a server with the ssh command](https://rocketee.rs/connect-to-server-ssh-command)
- Jun 2026 [PHP Fatal error: Allowed memory size exhausted](https://rocketee.rs/php-allowed-memory-size-exhausted)
- Jun 2026 [Convert SSL certificate formats with OpenSSL](https://rocketee.rs/convert-ssl-certificate-formats)
- Jun 2026 [502 Bad Gateway in nginx](https://rocketee.rs/502-bad-gateway-nginx)
- Jun 2026 [Git: Updates were rejected (non-fast-forward)](https://rocketee.rs/git-updates-were-rejected-non-fast-forward)
- Jun 2026 [Laravel failed to open stream: Permission denied](https://rocketee.rs/laravel-failed-to-open-stream-permission-denied)
- Jun 2026 [SSL handshake failed in nginx (ERR\_SSL\_PROTOCOL\_ERROR)](https://rocketee.rs/ssl-handshake-failed-nginx)
- Jun 2026 [Target class does not exist in Laravel](https://rocketee.rs/target-class-does-not-exist-laravel)
- Jun 2026 [How to change the SSH port on Ubuntu](https://rocketee.rs/change-ssh-port-ubuntu)
- Jun 2026 [npm ci vs npm install: when to use which](https://rocketee.rs/npm-ci-vs-npm-install)
- Jun 2026 [PHP Maximum execution time of N seconds exceeded](https://rocketee.rs/php-maximum-execution-time-exceeded)
- Jun 2026 [How to increase the PHP memory limit](https://rocketee.rs/increase-php-memory-limit)
- Jun 2026 [How to optimize MySQL performance](https://rocketee.rs/optimize-mysql-performance)
- Jun 2026 [docker exec: run a command in a running container](https://rocketee.rs/docker-exec)
- Jun 2026 [Git fatal: refusing to merge unrelated histories](https://rocketee.rs/git-refusing-to-merge-unrelated-histories)
- Jun 2026 [Getting started with the AWS CLI](https://rocketee.rs/getting-started-aws-cli)
- Jun 2026 [MySQL ERROR 2006: server has gone away](https://rocketee.rs/mysql-2006-server-has-gone-away)
- Jun 2026 [SQLSTATE\[HY000\] \[1045\] Access denied for user](https://rocketee.rs/sqlstate-hy000-1045-access-denied-for-user)
- Jun 2026 [MySQL ERROR 1698: Access denied for user 'root'@'localhost'](https://rocketee.rs/mysql-1698-access-denied-auth-socket)
- Jun 2026 [No application encryption key has been specified](https://rocketee.rs/no-application-encryption-key-has-been-specified)
- Jun 2026 [How to make a script executable with chmod +x](https://rocketee.rs/make-script-executable-chmod-x)
- Jun 2026 [How to check your Ubuntu version from the command line](https://rocketee.rs/check-ubuntu-version-command-line)
- Jun 2026 [curl (60) SSL certificate problem: unable to get local issuer certificate](https://rocketee.rs/curl-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate)
- Jun 2026 [MySQL ERROR 1205: Lock wait timeout exceeded](https://rocketee.rs/mysql-1205-lock-wait-timeout-exceeded)
- Jun 2026 [504 Gateway Timeout in nginx](https://rocketee.rs/504-gateway-timeout-nginx)
- Jun 2026 [How to clear the Redis cache](https://rocketee.rs/clear-redis-cache)
- Jun 2026 [Vite manifest not found in Laravel](https://rocketee.rs/vite-manifest-not-found-laravel)
- Jun 2026 [Redis connection refused in Laravel](https://rocketee.rs/redis-connection-refused-laravel)
- Jun 2026 [git reset --hard explained (soft vs mixed vs hard)](https://rocketee.rs/git-reset-hard)
- Jun 2026 [How to enable Gzip and Brotli compression in Nginx](https://rocketee.rs/enable-gzip-compression-nginx)
- Jun 2026 [PHP file upload exceeds upload\_max\_filesize](https://rocketee.rs/php-file-upload-exceeds-upload-max-filesize)
- Jun 2026 [How to send GET and POST requests with curl](https://rocketee.rs/curl-post-get-api-requests)
- Jun 2026 [How to forward ports with SSH tunneling](https://rocketee.rs/ssh-tunnel-port-forwarding)
- Jun 2026 [NET::ERR\_CERT\_AUTHORITY\_INVALID](https://rocketee.rs/net-err-cert-authority-invalid)
- Jun 2026 [MySQL max\_allowed\_packet: packet too large](https://rocketee.rs/mysql-max-allowed-packet-packet-too-large)
- Jun 2026 [500 Internal Server Error in Laravel](https://rocketee.rs/500-internal-server-error-laravel)
- Jun 2026 [Brotli vs Gzip: which compression should you use?](https://rocketee.rs/brotli-vs-gzip)
- Jun 2026 [How to check SSL certificate expiration](https://rocketee.rs/check-ssl-certificate-expiration)
- Jun 2026 [How to rename a Git branch (local and remote)](https://rocketee.rs/git-rename-branch)
- Jun 2026 [No space left on device on Ubuntu](https://rocketee.rs/no-space-left-on-device-ubuntu)
- Jun 2026 [How to generate a CSR with OpenSSL](https://rocketee.rs/generate-csr-with-openssl)
- Jun 2026 [SQLSTATE\[42S02\] Base table or view not found](https://rocketee.rs/sqlstate-42s02-base-table-or-view-not-found)
- Jun 2026 [How to remove untracked files in Git (git clean)](https://rocketee.rs/git-remove-untracked-files)
- Jun 2026 [How to generate a self-signed certificate with OpenSSL](https://rocketee.rs/generate-self-signed-certificate-openssl)
- Jun 2026 [What is an SSL certificate chain](https://rocketee.rs/what-is-an-ssl-certificate-chain)
- Feb 2026 [How to setup OpenClaw securely on your own VPS](https://rocketee.rs/setup-openclaw-vps-securely)
- Sep 2024 [How to get A+ grade SSL using Cloudflare](https://rocketee.rs/a-plus-grade-ssl-using-cloudflare)
- Sep 2024 [How to rename a MySQL database](https://rocketee.rs/rename-mysql-database)
- Sep 2024 [How much RAM memory on Ubuntu](https://rocketee.rs/how-much-memory-on-ubuntu)
- Sep 2024 [How many CPU cores on Ubuntu](https://rocketee.rs/how-many-cpu-cores-on-ubuntu)
- May 2024 [Import MySQL database without timezone difference](https://rocketee.rs/mysql-import-without-timezone-difference)
- Mar 2024 [Zero downtime deployments using PHP-FPM and nginx](https://rocketee.rs/zero-downtime-php-deployments)
- Mar 2024 [Environment variables in Laravel](https://rocketee.rs/environment-variables-laravel)
- Feb 2024 [419 Page Expired error in Laravel](https://rocketee.rs/419-page-expired-laravel)
- Feb 2024 [How to clear cache in Laravel](https://rocketee.rs/clear-cache-laravel)
- Feb 2024 [How to check Ubuntu version](https://rocketee.rs/ubuntu-version)
- Jan 2024 [413 Request Entity Too Large in nginx](https://rocketee.rs/413-request-entity-too-large)
- Jan 2024 [Configure Content Security Policy with nonce using nginx](https://rocketee.rs/content-security-policy)
- Dec 2023 [Server Side Includes (SSI) in nginx](https://rocketee.rs/server-side-includes-ssi-nginx)
- Dec 2023 [How to install PostgreSQL with pgvector on Ubuntu](https://rocketee.rs/install-postgresql-pgvector-ubuntu)
- Nov 2023 [How to install Composer packages locally](https://rocketee.rs/install-composer-packages-locally)
- Oct 2023 [Complete list of Laravel events](https://rocketee.rs/laravel-events)
- Sep 2023 [Error in the HTTP2 framing layer](https://rocketee.rs/error-in-the-http2-framing-layer)
- Apr 2023 [Laravel Valet](https://rocketee.rs/laravel-valet)
- Mar 2023 [Install PHP memcached extension on macOS](https://rocketee.rs/install-php-memcached-extension-on-macos)
- Mar 2023 [Creating an encrypted cookie value in Laravel](https://rocketee.rs/creating-an-encrypted-cookie-value-in-laravel)
- Jan 2023 [Backup MySQL databases in separate files](https://rocketee.rs/backup-mysql-databases-separate-files)
- Jan 2023 [Backup MySQL databases except system databases in a single file](https://rocketee.rs/backup-mysql-databases-except-system)
- Jan 2023 [Backup MySQL databases in single file](https://rocketee.rs/backup-mysql-databases-single-file)
- Jan 2023 [How to upgrade MySQL 5.7 to 8.0 on Ubuntu](https://rocketee.rs/upgrade-mysql-5-7-to-8-0-ubuntu)
- Dec 2022 [How to optimize web application security](https://rocketee.rs/optimize-web-application-security)
- Dec 2022 [Best practices for sending email](https://rocketee.rs/best-practices-sending-email)
- Dec 2022 [Improving email deliverability](https://rocketee.rs/improving-email-deliverability)
- Dec 2022 [Disable CSRF in Laravel](https://rocketee.rs/disable-csrf-in-laravel)
- Nov 2022 [Change casing of file or directory in Git](https://rocketee.rs/change-casing-of-file-or-directory-in-git)
- Nov 2022 [Logging in Laravel](https://rocketee.rs/laravel-logging)
- Nov 2022 [How to check which Laravel version of your app is using](https://rocketee.rs/check-laravel-version)
- Nov 2022 [How to run PHP files](https://rocketee.rs/run-php-files)
- Oct 2022 [Argument list too long (Bash: /bin/rm)](https://rocketee.rs/argument-list-too-long)
- Sep 2022 [Removing tracked files in Git that should have been ignored](https://rocketee.rs/removing-tracked-files-git)
- Sep 2022 [Disable cookies in Laravel](https://rocketee.rs/disable-cookies-in-laravel)
- Aug 2022 [Export MySQL database using command line](https://rocketee.rs/export-database-mysql-command-line)
- Aug 2022 [Importing database in MySQL using command line](https://rocketee.rs/import-database-mysql-command-line)
- Aug 2022 [Reclaim disk space on Ubuntu server](https://rocketee.rs/reclaim-diskspace-on-ubuntu)
- Aug 2022 [Disable unnecessary and unused PHP versions (FPM pools)](https://rocketee.rs/disable-unused-php-fpm-pools)
- Aug 2022 [How to measure TTFB (Time To First Byte)](https://rocketee.rs/measure-ttfb)
- Aug 2022 [Stream MySQL backup directly to S3 bucket](https://rocketee.rs/stream-mysql-backup-s3-bucket)
- Aug 2022 [How to use different PHP versions with Laravel Valet](https://rocketee.rs/different-php-versions-laravel-valet)
- Aug 2022 [How to add Swap Space on Ubuntu servers](https://rocketee.rs/add-swap-space-on-ubuntu)
- Aug 2022 [How to optimize website performance](https://rocketee.rs/optimize-website-performance)
- Aug 2022 [How to optimize server performance](https://rocketee.rs/optimize-server-performance)
- Aug 2022 [How to get top processes with highest memory usage](https://rocketee.rs/top-processes-memory)
- Aug 2022 [How to get top processes with highest CPU usage](https://rocketee.rs/top-processes-cpu)
- Aug 2022 [How to extract private key from PFX file](https://rocketee.rs/extract-private-key-from-pfx-file)
- Aug 2022 [How to extract the certificate from a PFX file](https://rocketee.rs/extract-certificate-from-pfx-file)
