Forutsetninger
System oppdatering
Installer Caddy fra kilden
Konfigurer Caddy Web Server
I september 2017 ble Caddy EULA endret, og alle Caddy-forekomster drevet av bedrifter og personlige nettsider som driver handel krever en kommersiell lisens til Caddy-nedlastet binær. Denne opplæringen hjelper kunder som ønsker å installere Caddy-nettserveren i samsvar med den nye EULA. I skrivende stund, når du kompilerer Caddy fra kilden og lager din egen binære, er det ikke nødvendig med en betalt lisens enten du er en bedrift eller driver handel på ditt personlige nettsted. Det er viktig å gå gjennom den siste EULA for overholdelse før du følger trinnene i denne opplæringen.
Funksjoner:
- Kort, lett forståelig konfigurasjon
- Bygget med Go
- Utvidbar logging
- Ekstremt rask statisk fillevering
- Dynamisk side og proxy-støtte
- Intern konfigurasjonskontroll
- Statisk binær
- Bruker Mozillas anbefalte moderne chiffer som standard
- MITM (mann i midten) deteksjon
- Støtte for SNI (servernavnindikator).
- Automatisk Let's Encrypt generering/henting/fornyelse av sertifikater
- OCSP-støtte
- Støtte for virtuelle verter
- Markdown2html gjengivelsesstøtte
- Innebygd HTTP/2, QUIC og Websocket-støtte
- Lastbalansering, omvendt proxy og støtte for SSL-avslutning
Forutsetninger
System oppdatering
Logg på som en vanlig bruker som har tillatelse til å bruke sudo-kommandoen. Oppdater systemet som følger.
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
Installer Caddy fra kilden
Last ned den nyeste versjonen av Caddy-nettserverens kildekode. Denne inneholder ingen tredjeparts plugins for Caddy.
go get -u github.com/mholt/caddy/caddy && go get -u github.com/caddyserver/builds && cd go/src/github.com/mholt/caddy/caddy
Valgfritt: Hvis du trenger tredjeparts tls.dns.vultrdnsproviders-plugin, kopierer du følgende. Dette vil laste ned både Caddy-kildekoden og tredjeparts tls.dns.vultrdnsproviders-plugin hvis du ønsker å bruke den.
go get -u github.com/mholt/caddy/caddy && go get -u github.com/caddyserver/builds && go get -u github.com/caddyserver/dnsproviders/vultr && cd go/src/github.com/mholt/caddy/caddy && sed -i '38i\\t_ "github.com/caddyserver/dnsproviders/vultr"' caddymain/run.go
Kompiler det caddybinære. Dette vil ta mindre enn ett minutt å kompilere.
go run build.go
Sjekk versjonen og pluginlisten til caddybinæren.
./caddy -version && ./caddy -plugins
Kopier Caddy binære ligger i ~/go/src/github.com/mholt/caddy/caddy/den /usr/binkatalogen og endre katalogen tilbake til roten på brukerkatalog.
sudo cp caddy /usr/bin/ && cd
Opprett caddy.servicesystemd-filen i /etc/systemd/system/katalogen ved å bruke echokommandoen.
sudo su -c "echo -e '[Unit]\nAfter=network-online.target\nDescription=Caddy HTTP/2 web server\nDocumentation=https://caddyserver.com/docs\nWants=network.target\n\n[Service]\nAmbientCapabilities=CAP_NET_BIND_SERVICE\nCapabilityBoundingSet=CAP_NET_BIND_SERVICE\nEnvironment=CADDYPATH=/etc/ssl/caddy\n## Environment=VULTR_API_KEY=XXXXXXXX ##Uncomment and add your Vultr API (API tab on the Settings page) if using the Vultr DNS Manager to handle DNS for your VPS instance.\nExecReload=/bin/kill -USR1 $MAINPID\nExecStart=/usr/bin/caddy -agree=true -conf=/etc/caddy/caddy.conf -quic -root=/var/tmp\nGroup=www-data\nKillMode=mixed\nKillSignal=SIGQUIT\nLimitNOFILE=1048576\nLimitNPROC=512\nNoNewPrivileges=true\nPrivateDevices=true\nPrivateTmp=true\nProtectHome=true\nProtectSystem=full\nReadWriteDirectories=/etc/ssl/caddy\nRestart=on-abnormal\nTimeoutStopSec=5s\nUser=www-data\n\n[Install]\nWantedBy=multi-user.target' > /etc/systemd/system/caddy.service"
Opprett /etc/caddy/katalogen, som vil inneholde konfigurasjonsfilen for Caddy-nettserveren; den /etc/ssl/caddy/katalogen, som vil inneholde La oss Krypter sertifikater; den /usr/share/caddy/katalogen, som vil inneholde html-filen; og /var/log/caddy/katalogen, som vil inneholde Caddy-nettserverloggene, ved å bruke mkdirkommandoen. Endre gruppeeierskap til www-datagruppen ved å bruke chownkommandoen til katalogene /etc/ssl/caddy/og /var/log/caddy/. Fjern verdens kjørbare, lesbare og skrivbare tillatelser ved å bruke chmodkommandoen for å sikre /etc/ssl/caddy/katalogen.
sudo mkdir -p {/etc/{caddy/conf.d,ssl/caddy},/usr/share/caddy,/var/log/caddy} && sudo chown www-data /etc/ssl/caddy/ /var/log/caddy/ && sudo chmod 750 /etc/ssl/caddy/
Aktiver Caddy-nettserveren.
sudo systemctl daemon-reload && sudo systemctl enable caddy
Hvert avsnitt nedenfor forklarer hvordan du konfigurerer Caddy for forskjellige scenarier. Du kan bruke disse som referanse og hoppe til delen som oppfyller dine krav.
Konfigurer Caddie for å vise statiske HTML-sider (ikke-SSL)
Lag en grunnleggende konfigurasjonsmalfil på rotnivå som er navngitt caddy.confi /etc/caddy/katalogen, som bruker en import for den faktiske vhost-konfigurasjonsfilen for et statisk HTML-nettsted som er navngitt example.com.confi /etc/caddy/conf.d/katalogen ved å bruke echokommandoen.
sudo su -c 'echo -e "import conf.d/*.conf" > /etc/caddy/caddy.conf' && sudo su -c 'echo -e "example.com:80 {\n\tredir http://www.example.com{url}\n}\nwww.example.com:80 {\n\terrors /var/log/caddy/example.com-error.log\n\timport header.protection\n\tlog /var/log/caddy/example.com-access.log\n\troot /var/www/html/\n}" > /etc/caddy/conf.d/example.com.conf' && sudo su -c 'echo -e "header / {\n\tX-XSS-Protection \"1; mode=block\"\n\tX-Content-Type-Options \"nosniff\"\n\tX-Frame-Options \"SAMEORIGIN\"\n}" > /etc/caddy/conf.d/header.protection'
Lag /var/www/htmlkatalogen og lag en enkel index.htmlinnside ved å bruke echokommandoen.
sudo mkdir -p /var/www/html && sudo su -c 'echo -e "<!DOCTYPE html>"\\n"<head>"\\n\\t"<meta charset="utf-8">"\\n\\t"<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">"\\n\\t"<title>Static HTML Page"\\n\\t"</title>"\\n\\t"<meta name="description" content="">"\\n\\t"<meta name="viewport" content="width=device-width, initial-scale=1">"\\n"</head>"\\n"<body>"\\n\\t"<p>Caddy is working."\\n\\t"</p>"\\n"</body>"\\n"</html>" > /var/www/html/index.html'
Start Caddy-nettserveren.
sudo systemctl start caddy
Åpne nettleseren til FQDN ( example.com) til VPS-forekomsten.
Konfigurer Caddie for å vise statiske HTML-sider (SSL)
Lag en grunnleggende konfigurasjonsmalfil på rotnivå som er navngitt caddy.confi /etc/caddy/katalogen som bruker en import for den faktiske vhost-konfigurasjonsfilen for et statisk HTML-nettsted som er navngitt example.com.confi /etc/caddy/conf.d/katalogen ved å bruke echokommandoen.
sudo su -c 'echo -e "import conf.d/*.conf" > /etc/caddy/caddy.conf' && sudo su -c 'echo -e "example.com {\n\tredir https://www.example.com{url}\n}\nwww.example.com {\n\terrors /var/log/caddy/example.com-error.log\n\timport header.protection\n\tlog /var/log/caddy/example.com-access.log\n\troot /var/www/html/\n\ttls joe.q.public@example.com\n}" > /etc/caddy/conf.d/example.com.conf' && sudo su -c 'echo -e "header / {\n\tX-XSS-Protection \"1; mode=block\"\n\tX-Content-Type-Options \"nosniff\"\n\tX-Frame-Options \"SAMEORIGIN\"\n}" > /etc/caddy/conf.d/header.protection'
Lag /var/www/htmlkatalogen og lag en enkel index.htmlinnside ved å bruke echokommandoen.
sudo mkdir -p /var/www/html && sudo su -c 'echo -e "<!DOCTYPE html>"\\n"<head>"\\n\\t"<meta charset="utf-8">"\\n\\t"<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">"\\n\\t"<title>Static HTML Page"\\n\\t"</title>"\\n\\t"<meta name="description" content="">"\\n\\t"<meta name="viewport" content="width=device-width, initial-scale=1">"\\n"</head>"\\n"<body>"\\n\\t"<p>Caddy is working."\\n\\t"</p>"\\n"</body>"\\n"</html>" > /var/www/html/index.html'
Start Caddy-nettserveren.
sudo systemctl start caddy
Åpne nettleseren til FQDN ( example.com) til VPS-forekomsten.
Konfigurer Caddie for å behandle PHP-sider ved å proxyere PHP-FPM-serveren (ikke-SSL)
Opprett en grunnleggende konfigurasjonsmalfil på rotnivå som er navngitt caddy.confi /etc/caddy/katalogen som bruker en import for den faktiske vhost-konfigurasjonsfilen for en eksempel PHPInfo-side navngitt example.com.confi /etc/caddy/conf.d/katalogen ved å bruke echokommandoen.
sudo su -c 'echo -e "import conf.d/*.conf" > /etc/caddy/caddy.conf' && sudo su -c 'echo -e "example.com:80 {\n\tredir http://www.example.com{url}\n}\nwww.example.com:80 {\n\terrors /var/log/caddy/example.com-error.log\n\tfastcgi / /var/run/php/php7.0-fpm.sock php\n\timport header.protection\n\tlog /var/log/caddy/example.com-access.log\n\troot /var/www/html/\n}" > /etc/caddy/conf.d/example.com.conf' && sudo su -c 'echo -e "header / {\n\tX-XSS-Protection \"1; mode=block\"\n\tX-Content-Type-Options \"nosniff\"\n\tX-Frame-Options \"SAMEORIGIN\"\n}" > /etc/caddy/conf.d/header.protection'
Create a simple index.php in the /var/www/html directory using the echo command.
sudo su -c 'echo -e "<?php\nphpinfo();\n?>" > /var/www/html/index.php'
Install the PHP-FPM server to process PHP files.
sudo apt install php-fpm -y
Start the Caddy web server.
sudo systemctl start caddy
Open your web browser to the FQDN (example.com) of your VPS instance.
Setup Caddy To Process PHP Pages By Proxying The PHP-FPM Server (SSL)
Create a basic, root level configuration template file named caddy.conf in the /etc/caddy/ directory which uses an import for the actual vhost configuration file for a sample dynamic test web site named example.com.conf in the /etc/caddy/conf.d/ directory using the echo command.
sudo su -c 'echo -e "import conf.d/*.conf" > /etc/caddy/caddy.conf' && sudo su -c 'echo -e "example.com {\n\tredir https://www.example.com{url}\n}\nwww.example.com {\n\terrors /var/log/caddy/example.com-error.log\n\tfastcgi / /var/run/php/php7.0-fpm.sock php\n\timport header.protection\n\tlog /var/log/caddy/example.com-access.log\n\troot /var/www/html/\n\ttls joe.q.public@example.com\n}" > /etc/caddy/conf.d/example.com.conf' && sudo su -c 'echo -e "header / {\n\tX-XSS-Protection \"1; mode=block\"\n\tX-Content-Type-Options \"nosniff\"\n\tX-Frame-Options \"SAMEORIGIN\"\n}" > /etc/caddy/conf.d/header.protection'
Create a simple index.php in the /var/www/html directory using the echo command.
sudo su -c 'echo -e "<?php\nphpinfo();\n?>" > /var/www/html/index.php'
Install the PHP-FPM server to process PHP files.
sudo apt install php-fpm -y
Start the Caddy web server.
sudo systemctl start caddy
Open your web browser to the FQDN (example.com) of your VPS instance.
Setup Caddy To Run Wordpress By Proxying The PHP-FPM Server (Non-SSL)
Create a basic, root level configuration template file named caddy.conf in the /etc/caddy/ directory which uses an import for the actual vhost configuration file for a sample Wordpress test web site named example.com.conf in the /etc/caddy/conf.d/ directory using the echo command.
sudo su -c 'echo -e "import conf.d/*.conf" > /etc/caddy/caddy.conf' && sudo su -c 'echo -e "example.com:80 {\n\tredir http://www.example.com{url}\n}\nwww.example.com:80 {\n\terrors /var/log/caddy/example.com-error.log\n\tfastcgi / /var/run/php/php7.0-fpm.sock php\n\timport header.protection\n\tlog /var/log/caddy/example.com-access.log\n\trewrite {\n\t\tif {path} not_starts_with /wp-admin\n\t\tif {path} not_starts_with /wp-content\n\t\tif {path} not_starts_with /wp-includes\n\t\tto {path} {path}/ /index.php\n\t}\n\troot /var/www/html/\n}" > /etc/caddy/conf.d/example.com.conf' && sudo su -c 'echo -e "header / {\n\tX-XSS-Protection \"1; mode=block\"\n\tX-Content-Type-Options \"nosniff\"\n\tX-Frame-Options \"SAMEORIGIN\"\n}" > /etc/caddy/conf.d/header.protection'
Install the unzip program in order to extract the Wordpress tar-gzipped file (latest.tar.gz).
sudo apt install unzip
Download the latest.tar.gz file into the /tmp/ directory, change the user and group permissions of the /var/www/html directory to the user www-data and group www-data and extract the contents of the latest.tar.gz file into the /var/www/html/ directory.
sudo su - www-data -c "wget -N -P /tmp/ -q https://wordpress.org/latest.tar.gz" -s /bin/bash && sudo chown -R www-data.www-data /var/www/html && sudo su - www-data -c "tar -C /var/www/html/ -zxf /tmp/latest.tar.gz --strip-components=1" -s /bin/bash && sudo su - www-data -c "rm /tmp/latest.tar.gz" -s /bin/bash
Install the PHP-FPM server to process PHP files and the required PHP extensions required to interact with Wordpress.
sudo apt install php-curl php-fpm php-imagick php-mbstring php-mcrypt php-mysql php-pspell php-xmlrpc -y
Install the MariaDB database server to store data for Wordpress.
sudo apt install mariadb-server -y
Optional: Disable skip-name-resolve to avoid the DNS lookup penalty for client connections, turn off the database TCP/IP listener and use unix sockets only.
sudo sed -i '26iskip-name-resolve\nskip-networking' /etc/mysql/mariadb.conf.d/50-server.cnf
Restart the MariaDB database server to the new configuration changes.
sudo systemctl restart mysql
Secure the MariaDB database server. Replace the ******** holder below in the first command with a new root password.
sudo mysql -e "UPDATE mysql.user SET Password=PASSWORD('********') WHERE User='root'" && sudo mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')" && sudo mysql -e "DELETE FROM mysql.user WHERE User=''" && sudo mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'" && sudo mysql -e "" && sudo mysql -e "FLUSH PRIVILEGES"
Create a database, wordpress_example_com, for Wordpress; a specific database user, wordpress_example_com_admin and the minimal database permissions necessary, (ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, & UPDATE ), for Wordpress core and plugin installations' day to day functioning and core/plugin updates. Replace the example_com in wordpress_example_com with your actual domain name, example_com in wordpress_example_com_admin with your actual domain name and ******** with a new password specifically for the wordpress_example_com_admin user.
sudo mysql -e "CREATE DATABASE wordpress_example_com DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" && sudo mysql -e "CREATE USER 'wordpress_example_com_admin'@'localhost' IDENTIFIED BY '********'; GRANT USAGE ON *.* TO 'wordpress_example_com_admin'@'localhost';" && sudo mysql -e "GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON wordpress_example_com.* TO 'wordpress_example_com_admin'@'localhost';" && sudo mysql -e "FLUSH PRIVILEGES"
Create the Wordpress configuration file, wp-config.php, in the /var/www/html directory. Replace the example_com in wordpress_example_com with your actual domain name, example_com in wordpress_example_com_admin with your actual domain name and ******** with a new password specifically for the wordpress_example_com_admin user.
sudo su - www-data -c 'echo -e "<?php\ndefine('\'DB_CHARSET''\'', '\'utf8''\'');\ndefine('\'DB_COLLATE''\'', '\'''\'');\ndefine('\'DB_HOST''\'', '\'localhost''\'');\ndefine('\'DB_NAME''\'', '\'wordpress_example_com''\'');\ndefine('\'DB_PASSWORD''\'', '\'********''\'');\ndefine('\'DB_USER''\'', '\'wordpress_example_com_admin''\'');\ndefine('\'FS_METHOD''\'', '\'direct''\'');\ndefine('\'WP_DEBUG''\'', false);" > /var/www/html/wp-config.php' -s /bin/bash && sudo su -c www-data -c "curl -s https://api.wordpress.org/secret-key/1.1/salt/ >> /var/www/html/wp-config.php" && sudo su - www-data -c 'echo -e "\$table_prefix = '\'wp_''\'';\nif ( !defined('\'ABSPATH''\'') )\n\tdefine('\'ABSPATH''\'', dirname(__FILE__) . '\'/''\'');\nrequire_once(ABSPATH . '\'wp-settings.php''\'');\nfunction _remove_script_version( \$src ){ if ( strpos( \$src, '\'ver=''\'' ) ) \$src = remove_query_arg( '\'ver''\'', \$src ); return \$src; }\nadd_filter( '\'script_loader_src''\'', '\'_remove_script_version''\'', 15, 1 );\nadd_filter( '\'style_loader_src''\'', '\'_remove_script_version''\'', 15, 1 );" >> /var/www/html/wp-config.php' -s /bin/bash
Start the Caddy web server.
sudo systemctl start caddy
Open your web browser to the FQDN (example.com) of your VPS instance. You will see a language selection page. After selecting the language, click the blue Continue button, on the bottom right, to go to the next step of the Wordpress installation.
On the next page, enter a title for your website in the Site Title field (1), an administrator's username in the Username field (2). Use the generated password or input your own password in the Password field (3). Enter a valid email address in the Your Email field (4) and enable or leave disabled the Search Engine Visibility option (5), depending on whether your site is in the building phase. When you are satisfied, click the gray Install Wordpress button (6) to complete the Wordpress setup.
You will arrive in the Wordpress administration area. The initial installation of Wordpress is now complete.
Setup Caddy To Run Wordpress By Proxying The PHP-FPM Server (Non-SSL)
Create a basic, root level configuration template file named caddy.conf in the /etc/caddy/ directory which uses an import for the actual vhost configuration file for a sample Wordpress test web site named example.com.conf in the /etc/caddy/conf.d/ directory using the echo command.
sudo su -c 'echo -e "import conf.d/*.conf" > /etc/caddy/caddy.conf' && sudo su -c 'echo -e "example.com {\n\tredir https://www.example.com{url}\n}\nwww.example.com {\n\terrors /var/log/caddy/example.com-error.log\n\tfastcgi / /var/run/php/php7.0-fpm.sock php\n\timport header.protection\n\tlog /var/log/caddy/example.com-access.log\n\trewrite {\n\t\tif {path} not_starts_with /wp-admin\n\t\tif {path} not_starts_with /wp-content\n\t\tif {path} not_starts_with /wp-includes\n\t\tto {path} {path}/ /index.php\n\t}\n\troot /var/www/html/\n\ttls joe.q.public@example.com\n}" > /etc/caddy/conf.d/example.com.conf' && sudo su -c 'echo -e "header / {\n\tX-XSS-Protection \"1; mode=block\"\n\tX-Content-Type-Options \"nosniff\"\n\tX-Frame-Options \"SAMEORIGIN\"\n}" > /etc/caddy/conf.d/header.protection'
Install the unzip program in order to extract the Wordpress tar-gzipped file, (latest.tar.gz).
sudo apt install unzip
Download the latest.tar.gz file into the /tmp/ directory, change the user and group permissions of the /var/www/html directory to the user www-data and group www-data and extract the contents of the latest.tar.gz file into the /var/www/html/ directory.
sudo su - www-data -c "wget -N -P /tmp/ -q https://wordpress.org/latest.tar.gz" -s /bin/bash && sudo chown -R www-data.www-data /var/www/html && sudo su - www-data -c "tar -C /var/www/html/ -zxf /tmp/latest.tar.gz --strip-components=1" -s /bin/bash && sudo su - www-data -c "rm /tmp/latest.tar.gz" -s /bin/bash
Install the PHP-FPM server to process PHP files and the required PHP extensions required to interact with Wordpress.
sudo apt install php-curl php-fpm php-imagick php-mbstring php-mcrypt php-mysql php-pspell php-xmlrpc -y
Install the MariaDB database server to store data for Wordpress.
sudo apt install mariadb-server -y
Optional: Disable skip-name-resolve to avoid the DNS lookup penalty for client connections, turn off the database TCP/IP listener and use unix sockets only.
sudo sed -i '26iskip-name-resolve\nskip-networking' /etc/mysql/mariadb.conf.d/50-server.cnf
Restart the MariaDB database server to the new configuration changes.
sudo systemctl restart mysql
Secure the MariaDB database server. Replace the ******** holder below in the first command with a new root password.
sudo mysql -e "UPDATE mysql.user SET Password=PASSWORD('********') WHERE User='root'" && sudo mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')" && sudo mysql -e "DELETE FROM mysql.user WHERE User=''" && sudo mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'" && sudo mysql -e "" && sudo mysql -e "FLUSH PRIVILEGES"
Create a database, wordpress_example_com, for Wordpress; a specific database user, wordpress_example_com_admin and the minimal database permissions necessary (ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, & UPDATE )for Wordpress core and plugin installations' day to day functioning and core/plugin updates. Replace the example_com in wordpress_example_com with your actual domain name, example_com in wordpress_example_com_admin with your actual domain name and ******** with a new password specifically for the wordpress_example_com_admin user.
sudo mysql -e "CREATE DATABASE wordpress_example_com DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" && sudo mysql -e "CREATE USER 'wordpress_example_com_admin'@'localhost' IDENTIFIED BY '********'; GRANT USAGE ON *.* TO 'wordpress_example_com_admin'@'localhost';" && sudo mysql -e "GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON wordpress_example_com.* TO 'wordpress_example_com_admin'@'localhost';" && sudo mysql -e "FLUSH PRIVILEGES"
Create the Wordpress configuration file, wp-config.php, in the /var/www/html directory. Replace the example_com in wordpress_example_com with your actual domain name, example_com in wordpress_example_com_admin with your actual domain name and ******** with a new password specifically for the wordpress_example_com_admin user.
sudo su - www-data -c 'echo -e "<?php\ndefine('\'DB_CHARSET''\'', '\'utf8''\'');\ndefine('\'DB_COLLATE''\'', '\'''\'');\ndefine('\'DB_HOST''\'', '\'localhost''\'');\ndefine('\'DB_NAME''\'', '\'wordpress_example_com''\'');\ndefine('\'DB_PASSWORD''\'', '\'********''\'');\ndefine('\'DB_USER''\'', '\'wordpress_example_com_admin''\'');\ndefine('\'FS_METHOD''\'', '\'direct''\'');\ndefine('\'WP_DEBUG''\'', false);" > /var/www/html/wp-config.php' -s /bin/bash && sudo su -c www-data -c "curl -s https://api.wordpress.org/secret-key/1.1/salt/ >> /var/www/html/wp-config.php" && sudo su - www-data -c 'echo -e "\$table_prefix = '\'wp_''\'';\nif ( !defined('\'ABSPATH''\'') )\n\tdefine('\'ABSPATH''\'', dirname(__FILE__) . '\'/''\'');\nrequire_once(ABSPATH . '\'wp-settings.php''\'');\nfunction _remove_script_version( \$src ){ if ( strpos( \$src, '\'ver=''\'' ) ) \$src = remove_query_arg( '\'ver''\'', \$src ); return \$src; }\nadd_filter( '\'script_loader_src''\'', '\'_remove_script_version''\'', 15, 1 );\nadd_filter( '\'style_loader_src''\'', '\'_remove_script_version''\'', 15, 1 );" >> /var/www/html/wp-config.php' -s /bin/bash
Start the Caddy web server.
sudo systemctl start caddy
Open your web browser to the FQDN (example.com) of your VPS instance. After selecting the language, click the blue Continue button, on the bottom right, to go to the next step of the Wordpress installation.
On the next page, enter a title for your website in the Site Title field (1), an administrator's username in the Username field (2). Use the generated password or input your own password in the Password field (3). Enter a valid email address in the Your Email field (4) and enable or leave disabled the Search Engine Visibility option (5), depending on whether your site is in the building phase. When you are satisfied, click the gray Install Wordpress button (6) to complete the Wordpress setup.
You will arrive in the Wordpress administration area. The initial installation of Wordpress is now complete.