{"id":289,"date":"2025-02-12T12:23:36","date_gmt":"2025-02-12T11:23:36","guid":{"rendered":"https:\/\/cienciaytecnology.com\/wordpress\/?p=289"},"modified":"2026-04-26T23:31:54","modified_gmt":"2026-04-26T21:31:54","slug":"crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap","status":"publish","type":"post","link":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/","title":{"rendered":"Crear una web con WordPress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let&#8217;s Encrypt y un dominio en Namecheap"},"content":{"rendered":"\n<p>Vamos a crear un servidor Linux en un droplet de DigitalOcean, instalar WordPress en un contenedor Docker, configurarlo para que funcione con Apache2 y asegurarlo con HTTPS utilizando un certificado gratuito de Let&#8217;s Encrypt. Adem\u00e1s, configuraremos un dominio en Namecheap. Aqu\u00ed tienes los pasos detallados:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 1: Crear un Droplet en DigitalOcean<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Inicia sesi\u00f3n en tu cuenta de DigitalOcean.<\/li>\n\n\n\n<li>Haz clic en \u00abCreate\u00bb y selecciona \u00abDroplets\u00bb.<\/li>\n\n\n\n<li>Elige una imagen de Ubuntu (por ejemplo, Ubuntu 20.04).<\/li>\n\n\n\n<li>Selecciona el tama\u00f1o del droplet seg\u00fan tus necesidades.<\/li>\n\n\n\n<li>Configura las opciones adicionales seg\u00fan tus preferencias.<\/li>\n\n\n\n<li>Asigna un nombre al droplet y haz clic en \u00abCreate Droplet\u00bb.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"374\" src=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Create-Droplet-1024x374.png\" alt=\"\" class=\"wp-image-292\" style=\"width:710px;height:auto\" srcset=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Create-Droplet-1024x374.png 1024w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Create-Droplet-300x109.png 300w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Create-Droplet-768x280.png 768w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Create-Droplet.png 1439w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 2: Conectar al Droplet<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Una vez creado el droplet, obt\u00e9n la direcci\u00f3n IP p\u00fablica.<\/li>\n\n\n\n<li>Con\u00e9ctate al droplet utilizando SSH:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@your_droplet_ip<\/code><\/pre>\n\n\n\n<p>Tambi\u00e9n puedes conectarte atrav\u00e9s de la consola desde Digitalocean:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"626\" src=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Consola_DigitalOcean-1024x626.png\" alt=\"\" class=\"wp-image-291\" style=\"width:731px;height:auto\" srcset=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Consola_DigitalOcean-1024x626.png 1024w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Consola_DigitalOcean-300x183.png 300w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Consola_DigitalOcean-768x470.png 768w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Consola_DigitalOcean.png 1256w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" src=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Terminal_DigitalOcean-1024x578.png\" alt=\"\" class=\"wp-image-294\" style=\"width:721px;height:auto\" srcset=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Terminal_DigitalOcean-1024x578.png 1024w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Terminal_DigitalOcean-300x169.png 300w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Terminal_DigitalOcean-768x434.png 768w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Terminal_DigitalOcean.png 1029w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 3: Instalar Docker y Docker Compose<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Actualiza los paquetes del sistema:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update &amp;&amp; apt upgrade -y<\/code><\/pre>\n\n\n\n<p>    2. Instala Docker:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install docker.io -y<\/code><\/pre>\n\n\n\n<p>Comprueba que est\u00e1 instalado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@ubuntu2:~# docker\n\nUsage:  docker &#91;OPTIONS] COMMAND\n\nA self-sufficient runtime for containers\n\nCommon Commands:\n  run         Create and run a new container from an image\n  exec        Execute a command in a running container\n  ps          List containers\n  build       Build an image from a Dockerfile\n  pull        Download an image from a registry\n  push        Upload an image to a registry\n  images      List images\n  login       Log in to a registry\n  logout      Log out from a registry\n  search      Search Docker Hub for images\n  version     Show the Docker version information\n  info        Display system-wide information\n\nManagement Commands:\n  builder     Manage builds\n  container   Manage containers\n  context     Manage contexts\n  image       Manage images\n  manifest    Manage Docker image manifests and manifest lists\n  network     Manage networks\n  plugin      Manage plugins\n  system      Manage Docker\n  trust       Manage trust on Docker images\n  volume      Manage volumes\n\nSwarm Commands:\n  swarm       Manage Swarm\n\nCommands:\n  attach      Attach local standard input, output, and error streams to a running container\n  commit      Create a new image from a container's changes\n  cp          Copy files\/folders between a container and the local filesystem\n  create      Create a new container\n  diff        Inspect changes to files or directories on a container's filesystem\n  events      Get real time events from the server\n  export      Export a container's filesystem as a tar archive\n  history     Show the history of an image\n  import      Import the contents from a tarball to create a filesystem image\n  inspect     Return low-level information on Docker objects\n  kill        Kill one or more running containers\n  load        Load an image from a tar archive or STDIN\n  logs        Fetch the logs of a container\n  pause       Pause all processes within one or more containers\n  port        List port mappings or a specific mapping for the container\n  rename      Rename a container\n  restart     Restart one or more containers\n  rm          Remove one or more containers\n  rmi         Remove one or more images\n  save        Save one or more images to a tar archive (streamed to STDOUT by default)\n  start       Start one or more stopped containers\n  stats       Display a live stream of container(s) resource usage statistics\n  stop        Stop one or more running containers\n  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE\n  top         Display the running processes of a container\n  unpause     Unpause all processes within one or more containers\n  update      Update configuration of one or more containers\n  wait        Block until one or more containers stop, then print their exit codes\n\nGlobal Options:\n      --config string      Location of client config files (default \"\/root\/.docker\")\n  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env\n                           var and default context set with \"docker context use\")\n  -D, --debug              Enable debug mode\n  -H, --host list          Daemon socket to connect to\n  -l, --log-level string   Set the logging level (\"debug\", \"info\", \"warn\", \"error\", \"fatal\") (default \"info\")\n      --tls                Use TLS; implied by --tlsverify\n      --tlscacert string   Trust certs signed only by this CA (default \"\/root\/.docker\/ca.pem\")\n      --tlscert string     Path to TLS certificate file (default \"\/root\/.docker\/cert.pem\")\n      --tlskey string      Path to TLS key file (default \"\/root\/.docker\/key.pem\")\n      --tlsverify          Use TLS and verify the remote\n  -v, --version            Print version information and quit\n\nRun 'docker COMMAND --help' for more information on a command.\n\nFor more help on how to use Docker, head to https:\/\/docs.docker.com\/go\/guides\/<\/code><\/pre>\n\n\n\n<p>    3. Instala Docker Compose:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install docker-compose -y<\/code><\/pre>\n\n\n\n<p>Comprueba que se ha instalado: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@ubuntu2:~# docker-\ndocker-compose  docker-init     docker-proxy    \nroot@ubuntu2:~# docker-compose\nDefine and run multi-container applications with Docker.\n\nUsage:\n  docker-compose &#91;-f &lt;arg&gt;...] &#91;--profile &lt;name&gt;...] &#91;options] &#91;--] &#91;COMMAND] &#91;ARGS...]\n  docker-compose -h|--help\n\nOptions:\n  -f, --file FILE             Specify an alternate compose file\n                              (default: docker-compose.yml)\n  -p, --project-name NAME     Specify an alternate project name\n                              (default: directory name)\n  --profile NAME              Specify a profile to enable\n  -c, --context NAME          Specify a context name\n  --verbose                   Show more output\n  --log-level LEVEL           Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)\n  --ansi (never|always|auto)  Control when to print ANSI control characters\n  --no-ansi                   Do not print ANSI control characters (DEPRECATED)\n  -v, --version               Print version and exit\n  -H, --host HOST             Daemon socket to connect to\n\n  --tls                       Use TLS; implied by --tlsverify\n  --tlscacert CA_PATH         Trust certs signed only by this CA\n  --tlscert CLIENT_CERT_PATH  Path to TLS certificate file\n  --tlskey TLS_KEY_PATH       Path to TLS key file\n  --tlsverify                 Use TLS and verify the remote\n  --project-directory PATH    Specify an alternate working directory\n                              (default: the path of the Compose file)\n  --compatibility             If set, Compose will attempt to convert keys\n                              in v3 files to their non-Swarm equivalent (DEPRECATED)\n  --env-file PATH             Specify an alternate environment file\n\nCommands:\n  build              Build or rebuild services\n  config             Validate and view the Compose file\n  create             Create services\n  down               Stop and remove resources\n  events             Receive real time events from containers\n  exec               Execute a command in a running container\n  help               Get help on a command\n  images             List images\n  kill               Kill containers\n  logs               View output from containers\n  pause              Pause services\n  port               Print the public port for a port binding\n  ps                 List containers\n  pull               Pull service images\n  push               Push service images\n  restart            Restart services\n  rm                 Remove stopped containers\n  run                Run a one-off command\n  scale              Set number of containers for a service\n  start              Start services\n  stop               Stop services\n  top                Display the running processes\n  unpause            Unpause services\n  up                 Create and start containers\n  version            Show version information and quit<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 4: Crear un Contenedor Docker para WordPress<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Crea un directorio para tu proyecto:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir wordpress &amp;&amp; cd wordpress<\/code><\/pre>\n\n\n\n<p>    2. Crea un archivo <code>docker-compose.yml<\/code> con el siguiente contenido:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: '3.1'\n\nservices:\n  wordpress:\n    image: wordpress:latest\n    restart: always\n    ports:\n      - 80:80\n    environment:\n      WORDPRESS_DB_HOST: db\n      WORDPRESS_DB_USER: exampleuser\n      WORDPRESS_DB_PASSWORD: examplepass\n      WORDPRESS_DB_NAME: exampledb\n  db:\n    image: mysql:5.7\n    restart: always\n    environment:\n      MYSQL_DATABASE: exampledb\n      MYSQL_USER: exampleuser\n      MYSQL_PASSWORD: examplepass\n      MYSQL_ROOT_PASSWORD: rootpassword<\/code><\/pre>\n\n\n\n<p>   3. Inicia los contenedores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker-compose up -d<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"785\" src=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-compose-up.png\" alt=\"\" class=\"wp-image-297\" srcset=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-compose-up.png 753w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-compose-up-288x300.png 288w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/figure>\n\n\n\n<p>Comprueba las imagenes y contenedores:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"124\" src=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-images-ps-1024x124.png\" alt=\"\" class=\"wp-image-298\" srcset=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-images-ps-1024x124.png 1024w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-images-ps-300x36.png 300w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-images-ps-768x93.png 768w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/docker-images-ps.png 1346w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 5: Instalar Apache2<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Instala Apache2:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install apache2 -y<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"647\" src=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Instalacion-apache2-1024x647.png\" alt=\"\" class=\"wp-image-299\" srcset=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Instalacion-apache2-1024x647.png 1024w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Instalacion-apache2-300x190.png 300w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Instalacion-apache2-768x485.png 768w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Instalacion-apache2.png 1253w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Detener el contenedor Docker de WordPress temporalmente para liberar el puerto 80<\/p>\n\n\n\n<p>Comprobamos que est\u00e1 activo el servicio apache2, y que se muestra la pagina de apache2 en la url de la ip en el navegador. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@ubuntu2:~\/wordpress# docker-compose down\nStopping wordpress_db_1        ... done\nStopping wordpress_wordpress_1 ... done\nRemoving wordpress_db_1        ... done\nRemoving wordpress_wordpress_1 ... done\nRemoving network wordpress_default\nroot@ubuntu2:~\/wordpress# systemctl restart apache2\nroot@ubuntu2:~\/wordpress# systemctl status apache2\n\u25cf apache2.service - The Apache HTTP Server\n     Loaded: loaded (\/usr\/lib\/systemd\/system\/apache2.service; enabled; preset: enabled)\n     Active: active (running) since Wed 2025-02-12 10:32:21 UTC; 2min 58s ago\n Invocation: 7605bfbb958d4cb5a48784561e3bfd3c\n       Docs: https:\/\/httpd.apache.org\/docs\/2.4\/\n    Process: 19643 ExecStart=\/usr\/sbin\/apachectl start (code=exited, status=0\/SUCCESS)\n   Main PID: 19646 (apache2)\n      Tasks: 55 (limit: 1110)\n     Memory: 7.3M (peak: 7.5M)\n        CPU: 60ms\n     CGroup: \/system.slice\/apache2.service\n             \u251c\u250019646 \/usr\/sbin\/apache2 -k start\n             \u251c\u250019648 \/usr\/sbin\/apache2 -k start\n             \u2514\u250019649 \/usr\/sbin\/apache2 -k start\n\nFeb 12 10:32:21 ubuntu2 systemd&#91;1]: Starting apache2.service - The Apache HTTP Server...\nFeb 12 10:32:21 ubuntu2 apachectl&#91;19645]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set t>\nFeb 12 10:32:21 ubuntu2 systemd&#91;1]: Started apache2.service - The Apache HTTP Server.<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"828\" height=\"722\" src=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/apache2.png\" alt=\"\" class=\"wp-image-300\" srcset=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/apache2.png 828w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/apache2-300x262.png 300w, https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/apache2-768x670.png 768w\" sizes=\"auto, (max-width: 828px) 100vw, 828px\" \/><\/figure>\n\n\n\n<p>Para asegurarte de que no queden contenedores, im\u00e1genes o vol\u00famenes innecesarios, aqu\u00ed tienes algunos comandos \u00fatiles:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Elimina contenedores detenidos\ndocker container prune\n\/\/ Elimina imagenes no utilizadas\ndocker image prune\n\/\/ Elimina todos los volumenes no utilizados\ndocker volume prune\n\/\/ Eliminar todo (contenedores, im\u00e1genes, vol\u00famenes y redes no utilizados)\ndocker system prune -a<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>root@ubuntu2:~\/wordpress# docker images\nREPOSITORY   TAG       IMAGE ID       CREATED         SIZE\nwordpress    latest    f5650165f084   2 months ago    701MB\nmysql        5.7       5107333e08a8   14 months ago   501MB\nroot@ubuntu2:~\/wordpress# docker ps\nCONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES\nroot@ubuntu2:~\/wordpress# docker ps -a\nCONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES\nroot@ubuntu2:~\/wordpress# docker system prune -a\nWARNING! This will remove:\n  - all stopped containers\n  - all networks not used by at least one container\n  - all images without at least one container associated to them\n  - all build cache\n\nAre you sure you want to continue? &#91;y\/N] y\nDeleted Images:\nuntagged: wordpress:latest\nuntagged: wordpress@sha256:43693c77589bcad6f6babe86fa14728a19224445ff883c4dbf8660d260dd547b\ndeleted: sha256:f5650165f08472ffc76660d4e85d2273e3ce2b89e57d7c35c7297033eef06d93\ndeleted: sha256:a5f5c6f977d5684e58d14688ac92730e1d6ffa821d5071894cbc874d160328c8\ndeleted: sha256:dee6cd5df3f5b165051340f39888df55e80d06f18732ebf85ec0edc319149fcc\ndeleted: sha256:08bcdc26a5578c4bf66d61b7aa6c9e90ed3ac99f233c683ff3f5a63d3f41b662\ndeleted: sha256:6c0ec7a043a2136e3bc3bfc116e37f6c0ea3bd6e26550ef0d592cd0e12136ad7\ndeleted: sha256:53f233af98d44b56f49754e32494ba12267c676ab6c2e9068349ccb940c27542\ndeleted: sha256:9fa09233f350d992e24ff0d8645725899f09aa762ddc75ed958faff096fa3896\ndeleted: sha256:2694705dbe138b4024e2562c3303060e7fbbeb868b1ee2bb8f43a60ce4c2e514\ndeleted: sha256:574a4324fbe5c8607b519cd6a496abe959885a65a057cffad24d08087a9d0e3d\ndeleted: sha256:d445e09bd88229f3d4f229c11b70eb4548918283ec342d5c44b2b9d25899669b\ndeleted: sha256:f7843fdd59dcdd3c19a8a245c131b82048774d482c7a55ba7db8dd60e318a88a\ndeleted: sha256:7d88a8b24a262581dcc47208951d3974f551bfd29ad45b9b48f37a01db09cb86\ndeleted: sha256:42fb4428c42888e95ac35a924d334c76e6c061657c812a06b0dbe34dc6c4093e\ndeleted: sha256:2badaef8bad2c74ad4c49959772861bc0e38bf45c57439df225d00f7c3a88271\ndeleted: sha256:39ef75f0d7ee8478b2b1708ca95bed03f0965b01e1de4a6b9f620df406aa1325\ndeleted: sha256:81c7fc0dfce5c1f2880a8682886873b47d94dbb15fe3255ee2bc809bf78cd242\ndeleted: sha256:6ed2a7f576fe94a62a525f7c38d66f301555166d1b2fa323309775b537c5b44b\ndeleted: sha256:29a6c4c1aee5d96d0716c5c873c75120a9f525499171c59bb396c2d6af270abc\ndeleted: sha256:cbba25c37c216c1b5203d63a5712db9f8d34e827b79a35a959fa850cd2d43d45\ndeleted: sha256:08d6991bf0546b2686df21956c3ac3f8568a58ee55f67dc21a79be534b58dbba\ndeleted: sha256:43d6eb5ac80fb3378c3860d3f84ee30f884ec7c4a7af016d40d0b0d4ba894571\ndeleted: sha256:2bd8f8bc943407363ab38d9fc0e96bbd74014f3443a2547c17c90cfbb4ec91bf\ndeleted: sha256:7914c8f600f532b7adbd0b003888e3aa921687d62dbe2f1f829d0ab6234a158a\nuntagged: mysql:5.7\nuntagged: mysql@sha256:4bc6bc963e6d8443453676cae56536f4b8156d78bae03c0145cbe47c2aad73bb\ndeleted: sha256:5107333e08a87b836d48ff7528b1e84b9c86781cc9f1748bbc1b8c42a870d933\ndeleted: sha256:37fd5f1492d4e9cb540c52c26655f220568050438f804275e886200c8807ffb4\ndeleted: sha256:1105a50d3483cb9f970e70cf5163e3352f0b2fe2ff07c6abcca6f34228e76dc5\ndeleted: sha256:94187496c18bb11b78e71017f2774ad3c0a734da9749a46e917c4239504e9322\ndeleted: sha256:ae59716eae3be604a4fd43e86fd2ad504cb06c89cc064c73c78eee651e675805\ndeleted: sha256:97d26ca29ec287ff4bd09a49602c44cbcabcf3303ddc726b3b94cbe26dfe1c94\ndeleted: sha256:27303974d12144264b32b8936ca7c90d72bdba939a9e791010201b3b1717c4c4\ndeleted: sha256:4d4483f06dbe01282c10cb9e429a0be826c18c61048f7860dad49ae7f6bac927\ndeleted: sha256:3b73a6f6b3298c568dcfb8fa5e96c581a1b5c0ad395b0c38f9addd0c79703124\ndeleted: sha256:46446bf265a411a4a13a4adc86f60c9e0479a2e03273c98cafab7bc4151dd2bc\ndeleted: sha256:1d5264146b09a27a8fc6801dc239a4962582ed27dd2fbd8ee708463a1857b06b\ndeleted: sha256:cff044e186247f93aa52554c96d77143cc92f99b2b55914038d0941fddeb6623\n\nTotal reclaimed space: 1.202GB\nroot@ubuntu2:~\/wordpress# docker images\nREPOSITORY   TAG       IMAGE ID   CREATED   SIZE<\/code><\/pre>\n\n\n\n<p>Vamos a modificar el archivo <code>docker-compose.yml<\/code> para que el contenedor Docker de WordPress utilice el puerto 8080 en lugar del puerto 80:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: '3.1'\n\nservices:\n  wordpress:\n    image: wordpress:latest\n    restart: always\n    ports:\n      - 8080:80\n    environment:\n      WORDPRESS_DB_HOST: db\n      WORDPRESS_DB_USER: exampleuser\n      WORDPRESS_DB_PASSWORD: examplepass\n      WORDPRESS_DB_NAME: exampledb\n  db:\n    image: mysql:5.7\n    restart: always\n    environment:\n      MYSQL_DATABASE: exampledb\n      MYSQL_USER: exampleuser\n      MYSQL_PASSWORD: examplepass\n      MYSQL_ROOT_PASSWORD: rootpassword<\/code><\/pre>\n\n\n\n<p>    2. Configura Apache2 para que funcione con Docker:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a2enmod proxy proxy_http<\/code><\/pre>\n\n\n\n<p>    3. Crea un archivo de configuraci\u00f3n para tu sitio en <code>\/etc\/apache2\/sites-available\/wordpress.conf<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80>\n    ServerName your_domain\n    ProxyPass \/ http:\/\/localhost:80\/\n    ProxyPassReverse \/ http:\/\/localhost:80\/\n&lt;\/VirtualHost><\/code><\/pre>\n\n\n\n<p>     4. Habilita el sitio y reinicia Apache2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a2ensite wordpress\nsystemctl restart apache2<\/code><\/pre>\n\n\n\n<p>Antes de crear el VirtualHost con SSL, necesitas obtener e instalar un certificado SSL de Let&#8217;s Encrypt. A continuaci\u00f3n, te explico los pasos para hacerlo, junto con la configuraci\u00f3n del VirtualHost teniendo en cuenta tu situaci\u00f3n actual.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 1: Instalar Certbot y Obtener el Certificado SSL de Let&#8217;s Encrypt<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Instala Certbot:<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update\nsudo apt-get install certbot python3-certbot-apache<\/code><\/pre>\n\n\n\n<p>    2. <strong>Obtener el Certificado SSL:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot certonly --apache -d economicypolitic.info<\/code><\/pre>\n\n\n\n<p>Sigue las instrucciones proporcionadas por Certbot para completar el proceso de validaci\u00f3n y obtener el certificado SSL.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 2: Configurar el VirtualHost con ProxyPass<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Configuraci\u00f3n Inicial del VirtualHost con IP (sin SSL):<\/h4>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Abre el archivo de configuraci\u00f3n de Apache, <code>wordpress.conf<\/code>.<\/li>\n\n\n\n<li>A\u00f1ade la siguiente configuraci\u00f3n para redirigir las solicitudes al puerto 8080 del contenedor:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80>\n    ServerAdmin webmaster@localhost\n    ProxyPreserveHost On\n    ProxyPass \/ http:\/\/127.0.0.1:8080\/\n    ProxyPassReverse \/ http:\/\/127.0.0.1:8080\/\n    ServerName 161.35.213.21\n\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n&lt;\/VirtualHost><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Configuraci\u00f3n con Dominio y SSL:<\/h4>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Actualiza el archivo de configuraci\u00f3n del VirtualHost para incluir el dominio y SSL:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80>\n    ServerAdmin webmaster@localhost\n    ProxyPreserveHost On\n    ProxyPass \/ http:\/\/127.0.0.1:8080\/\n    ProxyPassReverse \/ http:\/\/127.0.0.1:8080\/\n    ServerName economicypolitic.info\n\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n\n    # Redirigir todo el tr\u00e1fico HTTP a HTTPS\n    RewriteEngine on\n    RewriteCond %{SERVER_NAME} =economicypolitic.info\n    RewriteRule ^ https:\/\/%{SERVER_NAME}%{REQUEST_URI} &#91;END,NE,R=permanent]\n&lt;\/VirtualHost>\n\n&lt;VirtualHost *:443>\n    ServerAdmin webmaster@localhost\n    ProxyPreserveHost On\n    ProxyPass \/ http:\/\/127.0.0.1:8080\/\n    ProxyPassReverse \/ http:\/\/127.0.0.1:8080\/\n    ServerName economicypolitic.info\n\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n\n    SSLEngine on\n    SSLCertificateFile \/etc\/letsencrypt\/live\/economicypolitic.info\/fullchain.pem\n    SSLCertificateKeyFile \/etc\/letsencrypt\/live\/economicypolitic.info\/privkey.pem\n    SSLCertificateChainFile \/etc\/letsencrypt\/live\/economicypolitic.info\/chain.pem\n&lt;\/VirtualHost>\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Explicaci\u00f3n de las Directivas Proxy:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ProxyPreserveHost On:<\/strong> Mantiene el encabezado <code>Host<\/code> original del cliente al reenviar la solicitud al servidor backend. Esto es \u00fatil para asegurar que el servidor backend maneje la solicitud correctamente basado en el nombre del host.<\/li>\n\n\n\n<li><strong>ProxyPass:<\/strong> Especifica la URL a la que Apache debe reenviar las solicitudes. En este caso, redirige todas las solicitudes al servidor en <code>http:\/\/127.0.0.1:8080\/<\/code>.<\/li>\n\n\n\n<li><strong>ProxyPassReverse:<\/strong> Reescribe las cabeceras de respuesta para que el cliente vea las URLs originales en lugar de las URLs internas del backend. Esto es \u00fatil para mantener la consistencia de las URL en las respuestas HTTP.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Habilitar M\u00f3dulos y Reiniciar Apache:<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Habilita los m\u00f3dulos necesarios y reinicia Apache:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo a2enmod proxy\nsudo a2enmod proxy_http\nsudo a2enmod ssl\nsudo systemctl restart apache2<\/code><\/pre>\n\n\n\n<p>Con esto, deber\u00edas estar listo para probar tu configuraci\u00f3n primero con la IP y luego con el dominio y SSL.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vamos a crear un servidor Linux en un droplet de DigitalOcean, instalar WordPress en un contenedor Docker, configurarlo para que funcione con Apache2 y asegurarlo con HTTPS utilizando un certificado gratuito de Let&#8217;s Encrypt. Adem\u00e1s, configuraremos un dominio en Namecheap. Aqu\u00ed tienes los pasos detallados: Paso 1: Crear un Droplet en DigitalOcean Paso 2: Conectar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":755,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[61,565,62],"tags":[226,4,273,280,271,57],"class_list":["post-289","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-programacion","category-servidores","tag-apache2","tag-docker","tag-proxypass","tag-servidor","tag-ssl","tag-virtualhost"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Crear una web con Wordpress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let&#039;s Encrypt y un dominio en Namecheap - Ciencia y Tecnologia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Crear una web con Wordpress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let&#039;s Encrypt y un dominio en Namecheap - Ciencia y Tecnologia\" \/>\n<meta property=\"og:description\" content=\"Vamos a crear un servidor Linux en un droplet de DigitalOcean, instalar WordPress en un contenedor Docker, configurarlo para que funcione con Apache2 y asegurarlo con HTTPS utilizando un certificado gratuito de Let&#8217;s Encrypt. Adem\u00e1s, configuraremos un dominio en Namecheap. Aqu\u00ed tienes los pasos detallados: Paso 1: Crear un Droplet en DigitalOcean Paso 2: Conectar...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/\" \/>\n<meta property=\"og:site_name\" content=\"Ciencia y Tecnologia\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-12T11:23:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-26T21:31:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Create-Droplet.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1439\" \/>\n\t<meta property=\"og:image:height\" content=\"525\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"david\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"david\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/\"},\"author\":{\"name\":\"david\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\"},\"headline\":\"Crear una web con WordPress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let&#8217;s Encrypt y un dominio en Namecheap\",\"datePublished\":\"2025-02-12T11:23:36+00:00\",\"dateModified\":\"2026-04-26T21:31:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/\"},\"wordCount\":586,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\"},\"image\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/post_289.jpg\",\"keywords\":[\"apache2\",\"Docker\",\"Proxypass\",\"servidor\",\"SSL\",\"VirtualHost\"],\"articleSection\":[\"Linux\",\"Programaci\u00f3n\",\"Servidores\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/\",\"url\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/\",\"name\":\"Crear una web con Wordpress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let's Encrypt y un dominio en Namecheap - Ciencia y Tecnologia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/post_289.jpg\",\"datePublished\":\"2025-02-12T11:23:36+00:00\",\"dateModified\":\"2026-04-26T21:31:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/post_289.jpg\",\"contentUrl\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/post_289.jpg\",\"width\":1280,\"height\":826},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Crear una web con WordPress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let&#8217;s Encrypt y un dominio en Namecheap\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/\",\"name\":\"Ciencia y Tecnologia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\",\"name\":\"david\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\",\"caption\":\"david\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Crear una web con Wordpress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let's Encrypt y un dominio en Namecheap - Ciencia y Tecnologia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/","og_locale":"es_ES","og_type":"article","og_title":"Crear una web con Wordpress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let's Encrypt y un dominio en Namecheap - Ciencia y Tecnologia","og_description":"Vamos a crear un servidor Linux en un droplet de DigitalOcean, instalar WordPress en un contenedor Docker, configurarlo para que funcione con Apache2 y asegurarlo con HTTPS utilizando un certificado gratuito de Let&#8217;s Encrypt. Adem\u00e1s, configuraremos un dominio en Namecheap. Aqu\u00ed tienes los pasos detallados: Paso 1: Crear un Droplet en DigitalOcean Paso 2: Conectar...","og_url":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/","og_site_name":"Ciencia y Tecnologia","article_published_time":"2025-02-12T11:23:36+00:00","article_modified_time":"2026-04-26T21:31:54+00:00","og_image":[{"width":1439,"height":525,"url":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2025\/02\/Create-Droplet.png","type":"image\/png"}],"author":"david","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"david","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#article","isPartOf":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/"},"author":{"name":"david","@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b"},"headline":"Crear una web con WordPress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let&#8217;s Encrypt y un dominio en Namecheap","datePublished":"2025-02-12T11:23:36+00:00","dateModified":"2026-04-26T21:31:54+00:00","mainEntityOfPage":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/"},"wordCount":586,"commentCount":0,"publisher":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b"},"image":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#primaryimage"},"thumbnailUrl":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2026\/04\/post_289.jpg","keywords":["apache2","Docker","Proxypass","servidor","SSL","VirtualHost"],"articleSection":["Linux","Programaci\u00f3n","Servidores"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/","url":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/","name":"Crear una web con Wordpress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let's Encrypt y un dominio en Namecheap - Ciencia y Tecnologia","isPartOf":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#primaryimage"},"image":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#primaryimage"},"thumbnailUrl":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2026\/04\/post_289.jpg","datePublished":"2025-02-12T11:23:36+00:00","dateModified":"2026-04-26T21:31:54+00:00","breadcrumb":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#primaryimage","url":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2026\/04\/post_289.jpg","contentUrl":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2026\/04\/post_289.jpg","width":1280,"height":826},{"@type":"BreadcrumbList","@id":"https:\/\/cienciaytecnology.com\/wordpress\/crear-una-web-con-wordpress-en-un-servidor-linux-con-docker-apache2-y-con-un-certificado-ssl-en-lets-encrypt-y-un-dominio-en-namecheap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/cienciaytecnology.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Crear una web con WordPress, en un servidor Linux con Docker, Apache2 y con un certificado ssl en Let&#8217;s Encrypt y un dominio en Namecheap"}]},{"@type":"WebSite","@id":"https:\/\/cienciaytecnology.com\/wordpress\/#website","url":"https:\/\/cienciaytecnology.com\/wordpress\/","name":"Ciencia y Tecnologia","description":"","publisher":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cienciaytecnology.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b","name":"david","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g","caption":"david"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g"},"sameAs":["https:\/\/cienciaytecnology.com\/wordpress"]}]}},"_links":{"self":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts\/289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/comments?post=289"}],"version-history":[{"count":7,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts\/289\/revisions"}],"predecessor-version":[{"id":304,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts\/289\/revisions\/304"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/media\/755"}],"wp:attachment":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/media?parent=289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/categories?post=289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/tags?post=289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}