Pagina web y servidor, una ayuda

Bueno preparaos para un tochon :p; lo he puesto aqui xq parece q es lugar mas apropiado, si no pues q se mueva a donde sea.

Tengo q hacer un trabajo para la uni, en concreto tengo q hacer un proyecto de una pagina web.
SITUACION: Una empresa de telecomunicaciones seria (a partir de ahora "empresa X") viene a mi empresa (a partir de ahora, "mi empresa" X-D ) y me pide q le haga una pagina web. Vosotros me direis q use la busqueda y tal, lo he hecho y he sacaco bastante informacion (antes tenia 0 conocimientos de crear pagina web y tal); pero os pido q veais mis soluciones y me ayudeis en las partes q todavia estan en blanco.

Empezamos con el servidor:
Tendremos en mi empresa un ordenador donde instalaremos algo de linux (ando un poco pez de las distintas versiones, ¿cual me convendria?) e instalamos el APACHE.
Contratamos (alquilamos) un dominio, pienso q no gratuito, xq la empresa se supone q es grande y seria. ¿Pagina donde alquilen dominios?
La pagina web la haremos con php (quiza html, pero no lo se todavia) y MySQL. Tambien he pensado en que se utilice como correo tambien, aunq no tengo ni idea si es el apache quien lo hace...

Quiero que se pueda hacer compras on-line de los productos que ofrece la empresa X ¿Esto se hace con un programa especial o algo? Es decir la idea es que una persona se pueda registrar (nombre + clave) y pueda realizar compras a traves de la pagina web y q ademas se guarde la informacion de q ha comprado o por donde ha navegado mas (esto ultimo creo q el MyQSL lo hace, pero no lo se exacto)
En esto de las compras tambien necesito un alto grado de seguridad para mis clientes; ¿con una buena configuracion de lo anterior vale? ¿necesito programas para aumentar la seguridad? ¿Backups de la pagina o la base de datos?

He leido por ahi algo del samba, pero como no se q es lo q realiza pues tambien pregunto si me haria falta

umm, tenia mas pero ahora no me acuerdo, a ver si dentro de un rato se me ocurre mas.

Por ultimo deciros q aunque parezca lo contrario NO me estais haciendo el trabajo, yo tengo q hacer otras pero tengo q tener claro como se hace esto.
Como veis no necesito respuesta de como se hace de verdad (es un trabajo "imaginario") si no soluciones mas conceptuales, mas orientados a lo q es capaz de hacer los programas estos y q cosas me faltan o sobran

Saludos y gracias por la ayuda (seguro q estareis aburridos de contar siempre lo mismo [+risas] )
Buenas...
Intentare ayudarte algo xD
Sobra la distribucion a utilizar yo probaria con Ubuntu ya que esta basada en debian por lo tanto es bastante robusta y es muy sencilla de configurar (tener en la sources.list los servidores de seguridad para tapar los fallitos),una vez instalada la distribucion lo siguiente sera instalar como bien dijistes un Apache facil no?
Sobre el tema de los dominios supongo que tendras que comprar alguno si quieres algo serio , creo que no pasan de 18 o 20€ypos.
Sobre la tienda online, tienes varias opciones , una de ellas es utilizar alguna ya creada (la cual puede tener fallos de seguridad casi seguro y tendras que actualizarla cada 2x3) y la mas recomendable y mas engorrosa seria crearte la tuya propia.
El tema de programas de seguridad pues... creo que lo unico seria hacerte un firewall con ipchains porque si metes algun carrito y la programacion tiene fallo no te daras cuenta hasta que veas reportado el bug o te entren al sistema.
Sobre copias de seguridad puedes meter en sistema que ciertos dias a X hora te haga una copia de la tabla mysql , luego otro script que despues de hacerte la copia de la base de datos que te la grabe en un cd con multisesion por ejemplo, eso ya es cosa tuya.
Bueno creo que no se me olvida nada , espero haberte servido un poco de ayuda pero esque lo que has preguntado no se resuelve con 1 solo post y con 2 palabras.
Que tengas suerte y a leer te toca!
Un saludo
PD.Si quieres preguntarme algo mas detalladamente no te cortes que intentare responder siempre que pueda :)
Gracias [oki], me has ayudado un monton, me has dejado las ideas claras; mañana me toca redactar las soluciones iniciales, asi q seguro q se me ocurre algo mas.

Otra cosa q se me acaba de ocurrir, en mi empresa toqueteo todo y tal; pero si quiero q un encargado de la empresa X actualice ofertas o mire datos del MySQL ¿como se da los permisos? (se supone q no esta fisicamente en el servidor claro X-D ) ¿Este supuesto encargado tendria acceso a todo o yo podria limitar su radio de accion? Lo pregunto por si él necesitaria un programa especifico o desde el servidor se puede habilitar una cuenta al hombrecillo este para q ponga cosas de la empresa.

Saludos

P.D.: Ya les dije a mis compañeros q habia q cojer el del viaje de fin de curso, q era mirar los billetes, el hotel y 4 cosas mas [qmparto]
El tema de modificar la base de datos no lo tengo muy claro , creo que hay desde algun programita podras modificarlo por http , no estoy seguro , o desde ssh a mano tambien se podra pero no se que tendra esto de complicado , ahi si que te tocara usar google
Un saludo.
Amos a ver... te aclaro un poco.

Aqui hay dos cosas, lo que necesitas para DESARROLLAR la pagina, testearla, probarla y demas y lo que necesites para ALOJARLA ya terminada.

Es conveniente probarla "off line", es decir en tu propio ordenador, para eso necesitas "de entrada" lo que se conoce comunmente como AMP (Apache + MySql+Php). Esto es para crear y probar la pagina. No es obligatorio usar esto, se pueden usar mil y una tecnologias diferentes pero te he puesto esto por dos razones:

A: Son las mas sencillas de encontrar en el 99% de los servidores
B: Son Gratis

Puedes usarlos bajo Windows o bajo Linux, es indiferente. Las versiones de los programas son faciles de encontrar, aunque si no tienes algo de practica te recomiendo leer con cuidado los manuales de instalación o buscar algun paquete que te instale y configure las tres cosas (que los hay)

Sobre "con que hago la pagina". Pues en el apartado de programas, en realidad con el bloc de notas te valdria, pero hay varios editores HTML por ahi gratuitos que funcionan mas que bien, ahi es el gusto de cada uno.

Las paginas se prueban en el servidor local, y POR FAVOR no cometas el típico error de intentar cargarlas directamente en el navegador, hay que meter la dirección "Localhost" (mira de nuevo los manuales)

Las paginas es preferible hacerlas en HTML, el php junto con las extensiones MySql se "empotran" dentro del codigo HTML. Es algo lioso al principio, pero en realidad no lo es tanto. Recomiendo también conocer un poco las CCS (Cascade Style Sheets) para unificar de forma simple y sencilla el estilo de las paginas. Algo de Javascript para comprobar formularios nunca esta de mas.

Para lo que son "carritos de compra", hay opciones "de pago" ya hechas a tu disposición en muchos servidores. Si nunca has programado aplicaciones en php es mas que recomendable "tirar por ahi", ya que el desarrollo, comprobación y testeo exaustivo de una aplicación de ese tipo es infernal. Idem si necesitas sistemas de pago seguro y demas, hay servicios ya hechos que una empresa puede permitirse perfectamente pagar. Alguno te dira que es "mas barato" hacerlo uno mismo. Falso, el tiempo cuesta también dinero, y no poco.

¿Modificar datos en la base de datos?. Nada mas sencillo, una pagina HTML con los formularios de los datos a modificar y unas pocas instrucciones php con extensiones mysql y ... listos. Es recomendable eso si el uso de sesiones y contraseñas para controlar que no pueda entrar cualquiera. Mejor si el servidor da opción a tener "directorios con password" aunque no veo que sea MUCHO mas seguro que un buen sistema con php y sesiones.

¿A prueba de Hackers?... pues mete la pagina en un disquete y entierralo en un pozo de hormigon. No hay NADA seguro al 100%, en todo caso nunca esta de mas tomar precauciones. Puede que a un "hacker" de verdad le cueste mucha faena meterse, pero seguro que el 99% que son meros "lamers" no podra.

Diseña la pagina pensando que los usuarios son idiotas, memos o debiles mentales. No des nada "por supuesto". La gente es capaz de las barbaridades mas grandes cuando les das un cuadro donde meter texto. Algo tan simple como un formulario para pedir media docena de datos (nombre, dirección, correo electronico...) puede tener bastante mas follón de lo que parece si simplemente compuebas que los datos son "correctos" o al menos consistentes.

En general que diria que mucha paciencia, leer mucho y en el caso de que hablemos de una empresa "media", tirar dentro de lo posible a soluciones "ya hechas" para lo mas complejo o delicado. Sabes que funciona, sabes que esta probado y el tiempo que se ahorra no tiene precio por lo general.

Se me olvidaba... es mas que interesante conseguirse el "phpmyadmin" que esta en http://www.phpmyadmin.net/ una fabulosa herramienta para crear, gestionar y mantener las bases de datos en MySql. También suelen incluirla en la mayoria de los "paquetes" de servicios de los proveedores de internet.
4 respuestas