COMPARTE ESTE ARTÍCULO

Introducción

Crear un Sistema de Gestión de Contenidos (CMS) desde cero es una tarea ambiciosa que te permitirá comprender en profundidad el funcionamiento de sitios web dinámicos. Un CMS te permite crear, gestionar y modificar el contenido digital en tu sitio web de manera eficiente. En este artículo, exploraremos cómo construir un CMS utilizando Apache2, PHP y MySQL, explicando cada tecnología y los pasos necesarios para lograrlo.


1. Configuración del Entorno de Desarrollo

Antes de comenzar a programar, necesitamos preparar nuestro entorno de desarrollo. Esto incluye la instalación y configuración de Apache2, PHP y MySQL.

1.1 Apache2

Apache2 es un servidor web robusto y ampliamente utilizado. Es el software que recibe las solicitudes del navegador y devuelve las páginas web solicitadas.

  • Instalación en Ubuntu:
  sudo apt update
  sudo apt install apache2
  • Verificación de la Instalación:
    Abre un navegador y navega a http://localhost. Deberías ver la página de bienvenida de Apache.

1.2 PHP

PHP es un lenguaje de scripting del lado del servidor que se utiliza para desarrollar aplicaciones web dinámicas.

  • Instalación en Ubuntu:
  sudo apt install php libapache2-mod-php php-mysql
  • Verificación de la Instalación:
    Crea un archivo info.php en el directorio raíz de tu servidor web (por defecto /var/www/html).
  <?php
  phpinfo();
  ?>

Navega a http://localhost/info.php en tu navegador para ver la información de PHP.

1.3 MySQL

MySQL es un sistema de gestión de bases de datos relacional que se utiliza para almacenar y gestionar datos.

  • Instalación en Ubuntu:
  sudo apt install mysql-server
  • Seguridad de MySQL:
  sudo mysql_secure_installation
  • Acceso a MySQL:
  sudo mysql -u root -p

2. Creación de la Base de Datos

Para nuestro CMS, necesitamos una base de datos que almacene la información del contenido.

2.1 Crear una Base de Datos y Usuario

Accede a MySQL y crea una nueva base de datos y usuario:

CREATE DATABASE cms;
CREATE USER 'cmsuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON cms.* TO 'cmsuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2.2 Estructura de la Base de Datos

Diseña las tablas necesarias. Para simplificar, vamos a crear una tabla para almacenar artículos:

USE cms;

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

3. Desarrollo del CMS con PHP

Ahora que nuestro entorno está configurado y la base de datos está lista, podemos empezar a desarrollar nuestro CMS.

3.1 Conexión a la Base de Datos

Primero, necesitamos un archivo PHP para manejar la conexión a la base de datos:

// db.php
<?php
$servername = "localhost";
$username = "cmsuser";
$password = "password";
$dbname = "cms";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}
?>

3.2 Mostrar Artículos

Crea una página para mostrar los artículos:

// index.php
<?php
require 'db.php';

$sql = "SELECT id, title, content, created_at FROM articles";
$result = $conn->query($sql);
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Mi CMS</title>
</head>
<body>
    <h1>Artículos</h1>
    <?php
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            echo "<h2>" . $row["title"] . "</h2>";
            echo "<p>" . $row["content"] . "</p>";
            echo "<p><em>" . $row["created_at"] . "</em></p>";
        }
    } else {
        echo "No hay artículos disponibles.";
    }
    $conn->close();
    ?>
</body>
</html>

3.3 Añadir Artículos

Necesitamos una página para añadir nuevos artículos:

// create.php
<?php
require 'db.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $title = $conn->real_escape_string($_POST['title']);
    $content = $conn->real_escape_string($_POST['content']);

    $sql = "INSERT INTO articles (title, content) VALUES ('$title', '$content')";

    if ($conn->query($sql) === TRUE) {
        echo "Nuevo artículo creado con éxito";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }

    $conn->close();
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Añadir Artículo</title>
</head>
<body>
    <h1>Añadir Artículo</h1>
    <form method="post" action="create.php">
        <label for="title">Título:</label><br>
        <input type="text" id="title" name="title"><br>
        <label for="content">Contenido:</label><br>
        <textarea id="content" name="content"></textarea><br>
        <input type="submit" value="Añadir">
    </form>
</body>
</html>

Conclusión

Crear un CMS desde cero usando Apache2, PHP y MySQL te brinda un entendimiento profundo de cómo funcionan las aplicaciones web dinámicas. Hemos cubierto la configuración del entorno, la creación de la base de datos y el desarrollo de funcionalidades básicas para mostrar y añadir artículos. Este es solo el comienzo; puedes expandir tu CMS agregando funcionalidades como la edición y eliminación de artículos, autenticación de usuarios, y más. ¡Buena suerte en tu aventura de desarrollo web!


¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.


¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos. 

 

 


NUESTRAS ÚLTIMAS PUBLICACIONES

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.


¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.


¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos. 

 

 


NUESTRAS ÚLTIMAS PUBLICACIONES

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO