Cómo instalar WordPress desde la línea de comandos

¿Qué necesito?
¿Qué es WordPress?
WordPress es la forma más fácil y popular de comenzar un nuevo sitio web o blog. Es compatible con más del 38% de todos los sitios web y el 63% de todos los sistemas de gestión de contenido utilizados en todo el mundo. Sin lugar a dudas, es un favorito como sistema de gestión de contenido de código abierto que permite cambios avanzados a nivel de código. La conclusión es que WordPress hace que la creación de sitios web sea fácil y divertida, especialmente para todos, incluso para aquellos que no son desarrolladores.
sudo dnf update -y
sudo hostnamectl set-hostname server.example.com
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install httpd mariadb mariadb-server php php-common php-gd php-xml php-mbstring mod_ssl php php-pdo php-mysqlnd php-opcache php-xml php-gd php-devel php-json mod_ssl fail2ban nano firewalld certbot wget -y
sudo systemctl start firewalld sudo systemctl enable firewalld sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
sudo systemctl enable fail2ban
sudo nano /etc/fail2ban/jail.conf
#banaction = iptables-multiport #banaction_allports = iptables-allports banaction = firewallcmd-multiport banaction_allports = firewallcmd-allports
[sshd] enabled = true
sudo systemctl restart fail2ban
sudo tail -n 100 /var/log/secure | grep -i failed | tail -n 5 sudo fail2ban-client status sshd
sudo systemctl start httpd sudo systemctl start mariadb sudo systemctl enable httpd sudo systemctl enable mariadb sudo mysql_secure_installation
Answers to mysql secure installation: Set root password? [Y/n] Y 3iMC2GVavHJ^u8#rx#mA Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y Create database for mariadb, you should use different password for both root mariadb password and wordpress database password: mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES on wordpress.* to 'wordpress_user'@'localhost' identified by 'UyWqwqrK5rysYXFQGoNHF'; FLUSH PRIVILEGES; Exit
grep DocumentRoot /etc/httpd/conf.d/ssl.conf sudo certbot certonly --webroot -w /var/www/html/ --renew-by-default --email webmaster@example.com --text --agree-tos -d example.com -d www.example.com sudo ls /etc/letsencrypt/live/example.com/
crontab -e
0 0 * * 0 /usr/bin/certbot renew >> /var/log/certbot-renew.log
sudo nano /etc/httpd/conf.d/ssl.conf
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ </VirtualHost>
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256: DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256: AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES: !RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on SSLOptions +StrictRequire
sudo apachectl -t sudo systemctl restart httpd
sudo wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo cp -avr wordpress/* /var/www/html/
restorecon -r /var/www/html
sudo mkdir /var/www/html/wp-content/uploads
sudo chown -R apache:apache /var/www/html/ sudo chmod -R 755 /var/www/html/ cd /var/www/html/
sudo mv wp-config-sample.php wp-config.php
sudo nano wp-config.php
define( 'DB_NAME', 'wordpress' ); /** MySQL database username */ define( 'DB_USER', 'wordpress_user' ); /** MySQL database password */ define( 'DB_PASSWORD', 'UyWqwqrK5rysYXFQGoNHF' )
Próximos pasos
Personalmente, le recomiendo que use WPSEC para verificar su instalación en busca de vulnerabilidades y problemas de seguridad. WPSEC es un gran sitio web que puede utilizar para ejecutar análisis de vulnerabilidades de forma gratuita. Pruébelo y haga lo que sea necesario para solucionar lo que surja, ya que son las mismas fallas de seguridad que los piratas informáticos y otros usarán para piratear su sitio web o alquilar su sitio web como parte de una botnet.
Conclusión
WordPress es una de las plataformas más versátiles para crear sitios web atractivos y divertidos. Su flexibilidad y el hecho de que sea de código abierto también es el arma de doble filo, por así decirlo, ya que significa que se convierte en un objetivo para los malos actores. La clave para mitigar esta amenaza omnipresente es tener actualizaciones y actualizaciones periódicas y descargar un complemento llamado Wordfence para que pueda mantenerse protegido y prohibir a los malos actores que llaman a su puerta.