Fuera de mi cabeza necesitarás:
- Obtenga información sobre el sistema de archivos.
- Aprenda cómo iniciar/detener los procesos (servicios) que está utilizando.
- Encuentre o aprenda un editor de texto básico (Vim, JOE o Pico)
- Aprenda a verificar los procesos para ver si las cosas se están ejecutando (ps, top)
- Si está realizando el mantenimiento del servidor, deberá aprender a instalar paquetes.
Estos son solo los conceptos básicos. El siguiente paso es darse cuenta cuando tiene un problema y saber a dónde puede acudir para obtener más información al respecto. Incluso con todo esto, solo está arañando la superficie y muchas cosas pueden no tener sentido. Sin embargo, es un buen comienzo.
El 80% de tus problemas serán los permisos. Windows los hace de manera diferente; si inicia sesión como root (o con privilegios similares a los de root), puede omitir los permisos. Apache no puede y no lo hará.
- Aprenda a establecer correctamente la propiedad de archivos y directorios. Cualquier libro de Unix cubrirá esto:asegúrese de entenderlo realmente, no es la seguridad de Windows escrita de manera diferente, es un modelo diferente para la seguridad.
De los problemas restantes, el 80% serán problemas de PATH. PHP no tiene un problema de RUTA tan grande como Java y Python, pero todos usan una configuración de RUTA para encontrar componentes y bibliotecas. Te equivocarás con regularidad. Windows tiene una RUTA, pero también tiene un registro, lo que hace que las cosas sean súper fáciles o súper secretas. Unix no guarda secretos.
- Aprenda qué variables de entorno usan PHP y MySQL. Asegúrese de saber dónde y cómo se establecen. Apache se ejecuta en su propio entorno peculiar y tiene comandos para proporcionar la configuración del entorno de tiempo de ejecución a través de
mod_php
. Escribeecho $PATH
corto shell scripts para revelar lo que está pasando.
De los problemas restantes, el 80% estará relacionado con la base de datos. Después de ordenar los permisos de la base de datos, aún tendrá que conectarse, y las cosas de "tubería con nombre" frente a "host local" estarán mal de maneras oscuras y confusas. MySQL es muy indulgente, pero cometerá algunos errores aquí.
- Pruebe cada conexión alternativa, sepa cómo funcionan. No elija uno porque es similar a Windows o "más simple". En realidad ejercitar cada uno. También es importante cómo pasa los nombres de usuario y las contraseñas de la aplicación web al servidor de la base de datos. Apache se ejecuta como "nadie", y no desea darles acceso predeterminado a nada. Su aplicación debe establecer una conexión intencional con la base de datos sin utilizar los valores predeterminados.
De los problemas restantes, el 80% serán configuraciones de Apache. Apache es realmente simple, pero tiene un millón de opciones. Hay cuatro formas de hacer todo, y siempre probarás dos que no funcionan en absoluto y te conformarás con la tercera que será asquerosa. El cuarto, que es mucho más simple, nunca se te ocurrirá.
- Lea MUCHO sobre la configuración de Apache. El sitio httpd.apache.org tiene mucha información. Esfuércese por la simplicidad. Copie los ejemplos existentes y utilícelos. No invente requisitos o implementaciones deseadas según la experiencia de IIS o la experiencia de escritorio de Windows. Copie algo que funcione.
De los problemas restantes, el 80% será el uso de aplicaciones del sistema de archivos. Si intenta abrir, leer o escribir archivos locales, encontrará que (a) los permisos no son correctos en el directorio que está tratando de usar [ver arriba] y (b) las rutas de archivo de Unix son diferentes. No muy diferente, pero lo suficiente como para que algo se rompa de forma oscura.
- Cada libro de programación en Unix/Linux cubre esto. No es muy diferente de Windows, solo lo suficientemente diferente como para hacerte tropezar la primera vez. Escriba páginas PHP similares a "hola mundo" para aumentar la versión más simple posible de cargas o descargas solo para asegurarse de que tiene todas las piezas en su lugar. Luego corrija su aplicación completa para hacerlo correctamente.
De los problemas restantes, el 80% será la creación de subprocesos. Windows hace esto de manera diferente. Una de las cosas más importantes en Unix es recordar que su subproceso es su hijo y debe esperar a que termine para que el sistema operativo pueda limpiar. Si piensa en un subproceso como algo paralelo de "disparar y olvidar", tendrá procesos zombis y se verá obligado a realizar reinicios periódicos.
- Escriba páginas PHP muy simples para aumentar la administración de subprocesos. La regla de oro es cuidar a sus hijos y limpiar después de ellos. Luego corrija su aplicación completa para hacerlo correctamente.
Los problemas restantes serán la lógica de la aplicación trivial, pero debido a las diferencias de plataforma, culpará a Unix antes de localizar el error en la aplicación PHP.
- Obtenga sus pruebas unitarias y su registro para que pueda depurar de manera efectiva.