Εγκαταστήστε τον διακομιστή Web Caddy από την πηγή για συμμόρφωση με άδεια χρήσης στο Ubuntu 16.04 LTS

Τον Σεπτέμβριο του 2017, η Άδεια Χρήσης Caddy άλλαξε και όλες οι περιπτώσεις Caddy που διαχειρίζονται επιχειρήσεις και προσωπικοί ιστότοποι που διεξάγουν εμπόριο απαιτούν εμπορική άδεια για το δυαδικό αρχείο λήψης του Caddy. Αυτό το σεμινάριο βοηθά τους πελάτες που θέλουν να εγκαταστήσουν τον διακομιστή web Caddy σε συμμόρφωση με τη νέα EULA. Κατά τη στιγμή της σύνταξης, κατά τη μεταγλώττιση του Caddy από την πηγή και τη δημιουργία του δικού σας δυαδικού αρχείου, δεν απαιτείται άδεια επί πληρωμή είτε είστε επιχείρηση είτε ασκείτε εμπόριο στον προσωπικό σας ιστότοπο. Είναι σημαντικό να ελέγξετε την πιο πρόσφατη EULA για συμμόρφωση πριν ακολουθήσετε τα βήματα σε αυτόν τον οδηγό.

Χαρακτηριστικά:

  • Σύντομη, εύκολα κατανοητή διαμόρφωση
  • Χτισμένο με Go
  • Επεκτάσιμη υλοτομία
  • Εξαιρετικά γρήγορη παράδοση στατικών αρχείων
  • Υποστήριξη δυναμικού ιστότοπου και διακομιστή μεσολάβησης
  • Εσωτερικός έλεγχος διαμόρφωσης
  • Στατικό δυαδικό
  • Χρησιμοποιεί από προεπιλογή τους προτεινόμενους σύγχρονους κρυπτογράφους της Mozilla
  • Ανίχνευση MITM (άνθρωπος στη μέση).
  • Υποστήριξη SNI (δείκτης ονόματος διακομιστή).
  • Automatic Let's Encrypt Δημιουργία/ανάκτηση/ανανέωση πιστοποιητικού
  • Υποστήριξη OCSP
  • Υποστήριξη εικονικών κεντρικών υπολογιστών
  • Υποστήριξη απόδοσης Markdown2html
  • Ενσωματωμένη υποστήριξη HTTP/2, QUIC & Websocket
  • Εξισορρόπηση φόρτου, αντίστροφη διακομιστή μεσολάβησης & υποστήριξη τερματισμού SSL

Προαπαιτούμενα

Ενημέρωση συστήματος

Συνδεθείτε ως κανονικός χρήστης που έχει δικαίωμα χρήσης της εντολής sudo. Ενημερώστε το σύστημα ως εξής.

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

Εγκαταστήστε το Caddy από την πηγή

Κάντε λήψη της πιο πρόσφατης έκδοσης του πηγαίου κώδικα του διακομιστή web 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/κατάλογο, ο οποίος θα περιέχει το αρχείο διαμόρφωσης διακομιστή web Caddy. τον /etc/ssl/caddy/κατάλογο, ο οποίος θα περιέχει τα πιστοποιητικά Let's Encrypt. τον /usr/share/caddy/κατάλογο, ο οποίος θα περιέχει το δείγμα αρχείου html. και τον /var/log/caddy/κατάλογο, ο οποίος θα περιέχει τα αρχεία καταγραφής του διακομιστή web 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/

Ενεργοποιήστε τον διακομιστή web Caddy.

sudo systemctl daemon-reload && sudo systemctl enable caddy

Διαμόρφωση του διακομιστή Web Caddy

Κάθε ενότητα παρακάτω εξηγεί πώς να διαμορφώσετε το Caddy για διαφορετικά σενάρια. Μπορείτε να τα χρησιμοποιήσετε ως αναφορά και να μεταβείτε στην ενότητα που ικανοποιεί τις απαιτήσεις σας.

Ρύθμιση Caddy για εμφάνιση στατικών σελίδων HTML (χωρίς SSL)

Δημιουργήστε ένα βασικό αρχείο προτύπου διαμόρφωσης σε επίπεδο ρίζας με όνομα caddy.confστον /etc/caddy/κατάλογο, το οποίο χρησιμοποιεί μια εισαγωγή για το πραγματικό αρχείο ρύθμισης παραμέτρων vhost για ένα δείγμα στατικής τοποθεσίας web 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'

Εκκινήστε τον διακομιστή web Caddy.

sudo systemctl start caddy

Ανοίξτε το πρόγραμμα περιήγησής σας στο FQDN ( example.com) της παρουσίας VPS.

Ρύθμιση Caddy για εμφάνιση στατικών σελίδων HTML (SSL)

Δημιουργήστε ένα βασικό αρχείο προτύπου ρύθμισης παραμέτρων σε επίπεδο ρίζας με όνομα caddy.confστον /etc/caddy/κατάλογο, το οποίο χρησιμοποιεί μια εισαγωγή για το πραγματικό αρχείο διαμόρφωσης vhost για ένα δείγμα στατικής τοποθεσίας web 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'

Εκκινήστε τον διακομιστή web Caddy.

sudo systemctl start caddy

Ανοίξτε το πρόγραμμα περιήγησής σας στο FQDN ( 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

Εκκινήστε τον διακομιστή web Caddy.

sudo systemctl start caddy

Ανοίξτε το πρόγραμμα περιήγησής σας στο FQDN ( 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

Εκκινήστε τον διακομιστή web Caddy.

sudo systemctl start caddy

Ανοίξτε το πρόγραμμα περιήγησής σας στο FQDN ( example.com) της παρουσίας VPS.

Ρύθμιση του Caddy για εκτέλεση του Wordpress μέσω διακομιστή μεσολάβησης του διακομιστή PHP-FPM (χωρίς 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 [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'

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.


Εγκαταστήστε το Plesk στο CentOS 7

Εγκαταστήστε το Plesk στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Plesk είναι ένας ιδιόκτητος πίνακας ελέγχου web host που επιτρέπει στους χρήστες να διαχειρίζονται τους προσωπικούς ή/και τους πελάτες τους ιστότοπους, βάσεις δεδομένων

Εγκαταστήστε το Lets Encrypt SSL σε εφαρμογή WordPress με ένα κλικ

Εγκαταστήστε το Lets Encrypt SSL σε εφαρμογή WordPress με ένα κλικ

Εισαγωγή Το Lets Encrypt είναι μια υπηρεσία αρχής έκδοσης πιστοποιητικών που προσφέρει δωρεάν πιστοποιητικά TLS/SSL. Η διαδικασία εγκατάστασης απλοποιείται από το Certbot,

Πώς να ρυθμίσετε έναν διακομιστή Tekkit Classic στο Ubuntu 16.10

Πώς να ρυθμίσετε έναν διακομιστή Tekkit Classic στο Ubuntu 16.10

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Τι είναι το Tekkit Classic; Το Tekkit Classic είναι ένα modpack για το παιχνίδι που όλοι γνωρίζουν και αγαπούν. Minecraft. Περιέχει μερικά από τα εδ

Δημιουργία ιστολογίου Jekyll στο Ubuntu 16.04

Δημιουργία ιστολογίου Jekyll στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Jekyll είναι μια εξαιρετική εναλλακτική λύση στο WordPress για blogging ή κοινή χρήση περιεχομένου. Δεν απαιτεί βάσεις δεδομένων και είναι πολύ εύκολο

Πώς να ρυθμίσετε αναβαθμίσεις χωρίς παρακολούθηση στο Debian 9 (Stretch)

Πώς να ρυθμίσετε αναβαθμίσεις χωρίς παρακολούθηση στο Debian 9 (Stretch)

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εάν αγοράσετε έναν διακομιστή Debian, τότε θα πρέπει να έχετε πάντα τις πιο πρόσφατες ενημερώσεις κώδικα και ενημερώσεις, είτε κοιμάστε είτε όχι

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους της PHP 7.0 ή της PHP 7.1 στο Ubuntu 16.04

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους της PHP 7.0 ή της PHP 7.1 στο Ubuntu 16.04

Η PHP και τα σχετικά πακέτα είναι τα πιο συχνά χρησιμοποιούμενα στοιχεία κατά την ανάπτυξη ενός διακομιστή web. Σε αυτό το άρθρο, θα μάθουμε πώς να ρυθμίζετε την PHP 7.0 ή την PHP 7.1 o

Πώς να εγκαταστήσετε το Squid Proxy στο CentOS

Πώς να εγκαταστήσετε το Squid Proxy στο CentOS

Το Squid είναι ένα δημοφιλές, δωρεάν πρόγραμμα Linux που σας επιτρέπει να δημιουργήσετε έναν διακομιστή μεσολάβησης web προώθησης. Σε αυτόν τον οδηγό, θα δείτε πώς να εγκαταστήσετε το Squid στο CentOS για να σας μετατρέψει

Πώς να εγκαταστήσετε το Lighttpd (Στοίβα LLMP) στο CentOS 6

Πώς να εγκαταστήσετε το Lighttpd (Στοίβα LLMP) στο CentOS 6

Εισαγωγή Το Lighttpd είναι ένα πιρούνι του Apache που έχει ως στόχο να είναι πολύ λιγότερο εντάσεως πόρων. Είναι ελαφρύ, εξ ου και το όνομά του, και είναι αρκετά απλό στη χρήση. Εγκατάσταση

Τρεις δωρεάν πίνακες ελέγχου διακομιστή (Γρήγορη εγκατάσταση)

Τρεις δωρεάν πίνακες ελέγχου διακομιστή (Γρήγορη εγκατάσταση)

1. Virtualmin/Webmin Το Virtualmin είναι ένας ισχυρός και ευέλικτος πίνακας ελέγχου φιλοξενίας ιστοσελίδων για συστήματα Linux και UNIX που βασίζεται στη γνωστή διαδικτυακή βάση ανοιχτού κώδικα

Ρύθμιση μιας εφαρμογής Yii στο Ubuntu 14.04

Ρύθμιση μιας εφαρμογής Yii στο Ubuntu 14.04

Το Yii είναι ένα πλαίσιο PHP που σας επιτρέπει να αναπτύσσετε εφαρμογές πιο γρήγορα και εύκολα. Η εγκατάσταση του Yii στο Ubuntu είναι απλή, όπως θα μάθετε ακριβώς

Χρήση της οθόνης στο Ubuntu 14.04

Χρήση της οθόνης στο Ubuntu 14.04

Το Screen είναι μια εφαρμογή που επιτρέπει πολλαπλή χρήση περιόδων σύνδεσης τερματικού σε ένα παράθυρο. Αυτό σας επιτρέπει να προσομοιώνετε πολλά παράθυρα τερματικού όπου είναι ma

Ρυθμίστε τον δικό σας διακομιστή DNS σε Debian/Ubuntu

Ρυθμίστε τον δικό σας διακομιστή DNS σε Debian/Ubuntu

Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή DNS χρησιμοποιώντας Bind9 σε Debian ή Ubuntu. Σε όλο το άρθρο, αντικαταστήστε το your-domain-name.com ανάλογα. Στο ου

Χρήση Logrotate για διαχείριση αρχείων καταγραφής

Χρήση Logrotate για διαχείριση αρχείων καταγραφής

Εισαγωγή Το Logrotate είναι ένα βοηθητικό πρόγραμμα Linux που απλοποιεί τη διαχείριση αρχείων καταγραφής. Συνήθως εκτελείται μία φορά την ημέρα μέσω μιας εργασίας cron και διαχειρίζεται τη βάση καταγραφής

Τροποποίηση Icinga2 για χρήση Μοντέλου Master/Client σε CentOS 6 ή CentOS 7

Τροποποίηση Icinga2 για χρήση Μοντέλου Master/Client σε CentOS 6 ή CentOS 7

Το Icinga2 είναι ένα ισχυρό σύστημα παρακολούθησης και όταν χρησιμοποιείται σε μοντέλο master-client, μπορεί να αντικαταστήσει την ανάγκη για ελέγχους παρακολούθησης που βασίζονται σε NRPE. Ο κύριος-πελάτης

Ρύθμιση του Red5 Media Server στο Ubuntu 16.04

Ρύθμιση του Red5 Media Server στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Red5 είναι ένας διακομιστής πολυμέσων ανοιχτού κώδικα που υλοποιείται σε Java που σας επιτρέπει να εκτελείτε εφαρμογές Flash πολλών χρηστών, όπως η ζωντανή ροή

Μεταγλώττιση και εγκατάσταση του Nginx με τη μονάδα PageSpeed ​​στο Debian 8

Μεταγλώττιση και εγκατάσταση του Nginx με τη μονάδα PageSpeed ​​στο Debian 8

Σε αυτό το άρθρο, θα δούμε πώς να μεταγλωττίσετε και να εγκαταστήσετε το Nginx mainline από τις επίσημες πηγές του Nginx με τη μονάδα PageSpeed, η οποία σας επιτρέπει να

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο Ubuntu 16.04 LTS

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο Ubuntu 16.04 LTS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο CentOS 7

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή

Πώς να εγκαταστήσετε το Vanilla Forum στο Ubuntu 16.04

Πώς να εγκαταστήσετε το Vanilla Forum στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Vanilla forum είναι μια εφαρμογή φόρουμ ανοιχτού κώδικα γραμμένη σε PHP. Είναι πλήρως προσαρμόσιμο, εύκολο στη χρήση και υποστηρίζει εξωτερικά

Πώς να εγκαταστήσετε το Kanboard στο Ubuntu 18.04 LTS

Πώς να εγκαταστήσετε το Kanboard στο Ubuntu 18.04 LTS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Kanboard είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα λογισμικού διαχείρισης έργων που έχει σχεδιαστεί για να διευκολύνει και να οπτικοποιήσει

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα