Установите Caddy Web Server из исходного кода для соответствия лицензии на Ubuntu 16.04 LTS

В сентябре 2017 года лицензионное соглашение с Caddy было изменено, и все экземпляры Caddy, управляемые предприятиями и личными веб-сайтами, ведущими коммерцию, требуют коммерческой лицензии для загружаемого двоичного файла Caddy. Это руководство поможет клиентам, которые хотят установить веб-сервер Caddy в соответствии с новым лицензионным соглашением. На момент написания статьи, при компиляции Caddy из исходного кода и создании собственного бинарного файла, платная лицензия не требуется, если вы занимаетесь бизнесом или ведете коммерцию на своем личном веб-сайте. Важно ознакомиться с последним лицензионным соглашением на соответствие, прежде чем выполнять действия, описанные в этом руководстве.

Особенности:

  • Короткая, легко понятная конфигурация
  • Построен с Go
  • Расширяемая регистрация
  • Очень быстрая доставка статических файлов
  • Динамическая поддержка сайта и прокси
  • Внутренняя проверка конфигурации
  • Статический бинарный
  • По умолчанию использует рекомендованные современные шифры Mozilla
  • MITM (человек посередине) обнаружение
  • Поддержка SNI (указатель имени сервера)
  • Автоматическое создание / поиск / продление сертификата Let's Encrypt
  • Поддержка OCSP
  • Поддержка виртуальных хостов
  • Markdown2html поддержка рендеринга
  • Встроенная поддержка HTTP / 2, QUIC и Websocket
  • Балансировка нагрузки, обратное проксирование и поддержка SSL-терминации

Предпосылки

Обновление системы

Войдите в систему как обычный пользователь, у которого есть разрешение на использование команды sudo. Обновите систему следующим образом.

sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Установите Caddy From Source

Загрузите последнюю версию исходного кода веб-сервера Caddy. Это не содержит сторонних плагинов для Caddy.

go get -u github.com/mholt/caddy/caddy && go get -u github.com/caddyserver/builds && cd go/src/github.com/mholt/caddy/caddy

Необязательно: Если вам требуется сторонний tls.dns.vultrплагин dnsproviders, скопируйте следующее. Это позволит загрузить как исходный код Caddy, так и сторонний tls.dns.vultrплагин dnsproviders, если вы хотите его использовать.

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

Скомпилируйте caddyбинарный файл. Это займет меньше минуты, чтобы скомпилировать.

go run build.go

Проверьте версию и список плагинов caddyбинарника.

./caddy -version && ./caddy -plugins

Скопируйте Caddy бинарный файл , расположенный в ~/go/src/github.com/mholt/caddy/caddy/в /usr/binкаталог и измените каталог обратно в корень каталога пользователя.

sudo cp caddy /usr/bin/ && cd

Создайте caddy.serviceфайл systemd в /etc/systemd/system/каталоге с помощью echoкоманды.

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"

Создайте /etc/caddy/каталог, в котором будет находиться файл конфигурации веб-сервера Caddy; /etc/ssl/caddy/каталог, который будет содержать Шифровать сертификаты ДАВАЙТЕ; /usr/share/caddy/каталог, который будет содержать файл образца HTML; и /var/log/caddy/каталог, который будет содержать журналы веб-сервера Caddy, используя mkdirкоманду. Изменение владельца группы к www-dataгруппе , используя chownкоманду к /etc/ssl/caddy/и /var/log/caddy/каталогам. Удалите исполняемые, доступные для чтения и записи права доступа, используя chmodкоманду для защиты /etc/ssl/caddy/каталога.

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/

Включите веб-сервер Caddy.

sudo systemctl daemon-reload && sudo systemctl enable caddy

Настройте веб-сервер Caddy

В каждом разделе ниже объясняется, как настроить Caddy для различных сценариев. Вы можете использовать их для справки и перейти к разделу, который соответствует вашим требованиям.

Настройка Caddy для отображения статических HTML-страниц (без SSL)

Создайте базовый файл шаблона конфигурации корневого уровня с именем caddy.confв /etc/caddy/каталоге, который использует импорт для фактического файла конфигурации vhost для примера статического веб-сайта HTML, названного example.com.confв /etc/caddy/conf.d/каталоге, с помощью echoкоманды.

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'

Создайте /var/www/htmlкаталог и создайте простой index.htmlвнутри с помощью echoкоманды.

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'

Запустите веб-сервер Caddy.

sudo systemctl start caddy

Откройте веб-браузер для полного доменного имени ( example.com) вашего экземпляра VPS.

Настройка Caddy для отображения статических HTML-страниц (SSL)

Создайте базовый файл шаблона конфигурации корневого уровня с именем caddy.confв /etc/caddy/каталоге, который использует импорт для фактического файла конфигурации vhost для примера статического веб-сайта HTML, названного example.com.confв /etc/caddy/conf.d/каталоге, с помощью echoкоманды.

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 [email protected]\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'

Создайте /var/www/htmlкаталог и создайте простой index.htmlвнутри с помощью echoкоманды.

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'

Запустите веб-сервер Caddy.

sudo systemctl start caddy

Откройте веб-браузер для полного доменного имени ( example.com) вашего экземпляра VPS.

Настройка Caddy для обработки страниц PHP с помощью прокси-сервера PHP-FPM (без SSL)

Создайте базовый файл шаблона конфигурации корневого уровня с именем caddy.confв /etc/caddy/каталоге, который использует импорт для фактического файла конфигурации vhost для образца страницы PHPInfo, названной example.com.confв /etc/caddy/conf.d/каталоге, с помощью echoкоманды.

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'

Создайте простое index.phpв /var/www/htmlкаталоге с помощью echoкоманды.

sudo su -c 'echo -e "<?php\nphpinfo();\n?>" > /var/www/html/index.php'

Установите сервер PHP-FPM для обработки файлов PHP.

sudo apt install php-fpm -y

Запустите веб-сервер Caddy.

sudo systemctl start caddy

Откройте веб-браузер для полного доменного имени ( example.com) вашего экземпляра VPS.

Настройка Caddy для обработки страниц PHP с помощью прокси-сервера PHP-FPM (SSL)

Создайте базовый файл шаблона конфигурации корневого уровня с именем caddy.confв /etc/caddy/каталоге, который использует импорт для фактического файла конфигурации vhost для примера веб-сайта динамического тестирования, названного example.com.confв /etc/caddy/conf.d/каталоге, с помощью echoкоманды.

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 [email protected]\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'

Создайте простое index.phpв /var/www/htmlкаталоге с помощью echoкоманды.

sudo su -c 'echo -e "<?php\nphpinfo();\n?>" > /var/www/html/index.php'

Установите сервер PHP-FPM для обработки файлов PHP.

sudo apt install php-fpm -y

Запустите веб-сервер Caddy.

sudo systemctl start caddy

Откройте веб-браузер для полного доменного имени ( example.com) вашего экземпляра VPS.

Настройка Caddy для запуска Wordpress путем прокси сервера PHP-FPM (без SSL)

Создайте базовый файл шаблона конфигурации корневого уровня с именем caddy.confв /etc/caddy/каталоге, который использует импорт для фактического файла конфигурации vhost для примера тестового веб-сайта Wordpress, названного example.com.confв /etc/caddy/conf.d/каталоге, с помощью echoкоманды.

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'

Установите unzipпрограмму, чтобы извлечь файл WordPress tar-gzipped ( latest.tar.gz).

sudo apt install unzip

Загрузите latest.tar.gzфайл в /tmp/каталог, измените права доступа пользователя и группы /var/www/htmlдля пользователя www-dataи группы www-dataи извлеките содержимое latest.tar.gzфайла в /var/www/html/каталог.

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

Установите сервер PHP-FPM для обработки файлов PHP и необходимые расширения PHP, необходимые для взаимодействия с Wordpress.

sudo apt install php-curl php-fpm php-imagick php-mbstring php-mcrypt php-mysql php-pspell php-xmlrpc -y

Установите сервер базы данных MariaDB для хранения данных для Wordpress.

sudo apt install mariadb-server -y

Необязательно: отключите, skip-name-resolveчтобы избежать штрафов за поиск DNS для клиентских подключений, отключите TCP/IPпрослушиватель базы данных и используйте только сокеты Unix.

sudo sed -i '26iskip-name-resolve\nskip-networking' /etc/mysql/mariadb.conf.d/50-server.cnf

Перезапустите сервер базы данных MariaDB для новых изменений конфигурации.

sudo systemctl restart mysql

Защитите сервер базы данных MariaDB. Замените ********держатель ниже в первой команде новым корневым паролем.

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"

Создать базу данных wordpress_example_com, для Wordpress; пользователь конкретной базы данных, wordpress_example_com_adminа минимальные разрешения базы данных , необходимые, ( ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, и UPDATE), для ядра Wordpress и дня Plugin установок на функционирующий день и ядро / плагин обновления. Замените example_comin wordpress_example_comна ваше фактическое доменное имя, example_comin wordpress_example_com_adminна ваше фактическое доменное имя и ********новый пароль специально для wordpress_example_com_adminпользователя.

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"

Создайте файл конфигурации Wordpress wp-config.phpв /var/www/htmlкаталоге. Замените example_comin wordpress_example_comна ваше фактическое доменное имя, example_comin wordpress_example_com_adminна ваше фактическое доменное имя и ********новый пароль специально для wordpress_example_com_adminпользователя.

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

Запустите веб-сервер Caddy.

sudo systemctl start caddy

Откройте веб-браузер для полного доменного имени ( example.com) вашего экземпляра VPS. Вы увидите страницу выбора языка. После выбора языка нажмите синюю Continueкнопку в правом нижнем углу, чтобы перейти к следующему шагу установки Wordpress.

На следующей странице введите название для вашего сайта в Site Titleполе (1), имя пользователя администратора в Usernameполе (2). Используйте сгенерированный пароль или введите свой пароль в Passwordполе (3). Введите действительный адрес электронной почты в Your Emailполе (4) и включите или оставьте отключенным Search Engine Visibilityпараметр (5), в зависимости от того, находится ли ваш сайт в стадии создания. Когда вы будете удовлетворены, нажмите серую Install Wordpressкнопку (6), чтобы завершить настройку Wordpress.

Вы прибудете в область администрирования Wordpress. Начальная установка Wordpress завершена.

Настройка Caddy для запуска Wordpress путем прокси сервера PHP-FPM (без SSL)

Создайте базовый файл шаблона конфигурации корневого уровня с именем caddy.confв /etc/caddy/каталоге, который использует импорт для фактического файла конфигурации vhost для примера тестового веб-сайта Wordpress, названного example.com.confв /etc/caddy/conf.d/каталоге, с помощью echoкоманды.

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 [email protected]\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'

Установите unzipпрограмму, чтобы извлечь файл WordPress tar-gzipped ( latest.tar.gz).

sudo apt install unzip

Загрузите latest.tar.gzфайл в /tmp/каталог, измените права доступа пользователя и группы /var/www/htmlдля пользователя www-dataи группы www-dataи извлеките содержимое latest.tar.gzфайла в /var/www/html/каталог.

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.



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше