¿Cómo debo configurar un servidor web Linux CentOS hecho para aprender desarrollo web?

Si necesita configurar un servidor web (Nginx, Apache, etc.) en CentOS aprendiendo o no , tiene muchas opciones y tutoriales disponibles.

Aquí hay dos opciones de muestra para LEMP Stack :

Opción 1:
Puede probar este gran tutorial de Digital Ocean: Cómo instalar la pila de Linux, Nginx, MySQL, PHP (LEMP) en CentOS 7

Opcion 2:
Mi opción favorita es instalar Doker primero. Luego busque alguna imagen (pila LEMP) en Docker Hub y simplemente instálela.

Prima:

Además, para fines de aprendizaje en desarrollo web , tiene estas opciones para ejecutar servidores locales :

HTML / CSS / Javascript / PHP

Puede ejecutar el servidor PHP de desarrollo local desde su terminal:

php -S localhost: 8000 -t ruta_directorio

HTML / CSS / Javascript / Python
Puede ejecutar el servidor Python de desarrollo local desde su terminal:

python -m SimpleHTTPServer 8000

Aquí hay algunos pasos que copio pegados de mi esencia sobre cómo instalar un servidor CentOS: CentOS 7.0 Nueva configuración del servidor web (DigitalOcean) + EPEL + IUS + PHP + MongoDB + Sentry + PostgreSQL + MariaDB

Es principalmente para instancias de DigitalOcean, pero se puede usar para cualquier Linux basado en RedHat (CentOS, RHEL, Amazon). Este pegado cubrirá la configuración básica del sistema, la instalación de PHP, node.js (javaScript),

# [Sección general / inicial]

# Sistema de actualización
yum update

# Establezca su zona horaria
timedatectl set-timezone UTC

# La fecha de verificación es correcta
fecha

# Si desea que yum actualice datebase auto
# no se instalarán paquetes en ningún caso
yum instalar yum-cron

# Reiniciar el sistema, iniciar sesión de nuevo en el servidor (como root)
reiniciar

# [Agregar sección de usuarios / grupos]

# Crearse un usuario (super importante)
adduser josh

# Establecer contraseña de usuario
passwd josh

# Copie la clave raíz al usuario (puede eliminarla del usuario raíz más adelante)
cp -r -p /root/.ssh/ / home / josh /
chown -R josh: josh /home/josh/.ssh

# Agregue su usuario al grupo ‘rueda’ (como grupo suplementario (-G), el grupo primario aún ‘josh’)
usermod -a -G rueda josh

# Cerrar sesión en el servidor e iniciar sesión nuevamente como usuario
salida

# Verifique que el acceso a sudo esté funcionando, ahora debería ser ‘root’ nuevamente
sudo su

# [Sección de espacio SWAP]

# Compruebe si el servidor tiene intercambio, si lo tiene, puede omitir este paso
swapon -s

# Compruebe cuánta memoria tiene la máquina y cuánto espacio en disco
libre -m && df -h

# Cree un archivo de intercambio en el disco y confirme su tamaño
Fallocate -l 4G / swapfile && ls -lh / swapfile

# Habilitar intercambio
chmod 600 / swapfile && ls -lh / swapfile
mkswap / swapfile
swapon / swapfile
swapon -s

# Hacer que el archivo de intercambio sea permanente
nano / etc / fstab
/ swapfile swap swap sw 0 0
# Agregue esta línea ^^^ al archivo fstab

# [Sección de instalación y optimización de intercambio]

El valor predeterminado de CentOS 7 es una configuración de intercambio de 30, que es un punto medio justo para la mayoría de los escritorios y servidores locales.

# Para un sistema VPS, probablemente querríamos acercarlo a 0.
sysctl vm.swappiness = 10

# Esta configuración persistirá hasta el próximo reinicio.
# Para que la configuración persista entre reinicios, podemos agregar la línea de salida a nuestro archivo de configuración sysctl:
nano /etc/sysctl.conf

# Presión de caché
# Otro valor relacionado que es posible que desee modificar es vfs_cache_pressure.
# Esta configuración afecta el almacenamiento de entradas especiales de metadatos del sistema de archivos.
# Leer y actualizar constantemente esta información es generalmente muy costoso,
# por lo que almacenarlo en la memoria caché durante más tiempo es excelente para el rendimiento de su sistema.
cat / proc / sys / vm / vfs_cache_pressure

# Para hacer que la información del inodo del caché del caché sea más lenta:
sysctl vm.vfs_cache_pressure = 50

# Esta configuración persistirá hasta el próximo reinicio.
# Para que la configuración persista entre reinicios, podemos agregar la línea de salida a nuestro archivo de configuración sysctl:
nano /etc/sysctl.conf

# [Sección de repositorios adicionales]

# Instalar el repositorio EPEL
yum instalar epel-release

# Instalar repositorio IUS
rpm -ivh https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm

# [Sección del servidor web HTTP / Apache]

# Instalar el servidor HTTP Apache
yum install httpd.x86_64 httpd-manual.noarch httpd-tools.x86_64 mod_ssl

# Inicie el servidor, compruebe que funciona, habilítelo durante el arranque
systemctl iniciar httpd
systemctl status httpd
systemctl habilita httpd

# [Sección de firewall]

# Verificar el estado del firewall (debería estar apagado en la mayoría de los casos)
firewall-cmd –state

# Si no se está ejecutando, ejecute:
systemctl iniciar firewalld.service

# Alguna información de firewall
firewall-cmd –get-active-zones
firewall-cmd –list-all

# Agregar regla HTTP / HTTPS a la zona pública
firewall-cmd –zone = public –add-service = http
firewall-cmd –zone = public –add-service = https

# Agregar regla HTTP / HTTPS * permanentemente * a la zona pública
firewall-cmd –zone = public –add-service = http –permanent
firewall-cmd –zone = public –add-service = https –permanent

# O …
firewall-cmd –zone = public –add-port = 80 / tcp –permanent
firewall-cmd –zone = public –add-port = 443 / tcp –permanent

[Sección PHP]

# Instalar PHP 5.6 (IUS)
yum instalar php56u \
php56u-bcmath \
php56u-cli \
php56u-common \
php56u-dba \
php56u-gd \
php56u-imap \
php56u-mbstring \
php56u-mcrypt \
php56u-opcache \
php56u-pdo \
php56u-mysqlnd \
php56u-pgsql \
php56u-pera \
php56u-pecl-geoip \
php56u-pecl-jsonc \
php56u-pecl-memcached \
php56u-process \
php56u-soap \
php56u-tidy \
php56u-xml \
php56u-xmlrpc

# Reiniciar el servidor web
systemctl reiniciar httpd

# Crear página de prueba PHP
cd / var / www / html /
echo ““> index.php

# Abra el navegador, vaya a: http: // fcgi: //127.0.0.1: 9000 / var / www / moo / public / $ 1
ProxyPassMatch ^ / (. * \. Php (/.*)?)$ “unix: /run/php-fpm/www.sock | http: // fcgi: //127.0.0.1: 9000 / var / www / moo / public / $ 1 ”

# Ahora puedes habilitar multi-threading en PHP …
yum instalar php56u-pecl-pthreads.x86_64

# Reiniciar servicios web
reinicio de systemctl php-fpm httpd

# [Sección node.js]

# Instalar componentes básicos
yum install nodejs npm

# [Sección MariaDB (IUS)]

# Instalar repositorio IUS
rpm -ivh https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
yum -y eliminar mariadb-libs
yum -y instalar mariadb101u-servidor mariadb101u
systemctl start mariadb.service
systemctl enable mariadb.service

# si se eliminó porque se eliminó el antiguo paquete mariadb-libs
yum -y instalar postfix

# Secure databse
mysql_secure_installation

# intente conectar la base de datos
mysql -uroot -p

# Crear nueva base de datos
> CREAR BASE DE DATOS CONJUNTO DE CARACTERES `joshdb` utf8 COLLATE utf8_general_ci;

# Crear nuevo usuario
> CREAR USUARIO ‘josh’ @ ‘%’ IDENTIFICADO POR ‘YouSecurePassword!’;
> OTORGUE TODOS LOS PRIVILEGIOS EN joshdb. * A ‘josh’ @ ‘localhost’;

# O acceso de administrador a todas las bases de datos
> OTORGUE TODOS LOS PRIVILEGIOS EN *. * A ‘josh’ @ ‘localhost’ CON LA OPCIÓN DE OTORGAMIENTO;

# Actualizar privilegios del servidor
> PRIVILEGIOS DE LAVADO;

# [Sección MEMCACHED]

# Instalar servidor
yum -y instalar memcached

# Cambiar configuración
nano / etc / sysconfig / memcached

# Habilitar servicio
systemctl start memcached
systemctl habilita memcached

# [Sección PostgreSQL]

# Instalar el repositorio oficial RHEL7 de PosgreSQL 9.4
wget http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm
yum localinstall pgdg-centos94-9.4-1.noarch.rpm

# Instalar paquetes PostgreSQL
yum instalar postgresql94 postgresql94-libs postgresql94-server postgresql94-contrib \
postgresql94-docs postgresql94-devel

# Iniciar servicio y habilitar en el arranque
systemctl start postgresql-9.4
systemctl enable postgresql-9.4

# Init base de datos inicial
/usr/pgsql-9.4/bin/postgresql94-setup initdb

# Agregue el puerto del servidor al firewall y reinicie el firewall
firewall-cmd –permanent –zone = public –add-service = postgresql
## O ##
firewall-cmd –permanent –zone = public –add-port = 5432 / tcp

# Reiniciar cortafuegos
systemctl restart firewalld.service

# Cambiar a usuario postgres, verificar que el servidor se esté ejecutando
su – postgres
psql

# Prueba de usuario remoto
psql -h dbserver_name_or_ip_address -U testuser -W test

# [Sección MongoDB]
# Agregar repositorio MongoDB a yum
nano /etc/yum.repos.d/mongodb.repo
# Pegue dentro de lo siguiente:
[mongodb]
nombre = repositorio MongoDB
baseurl = Índice de / repo / redhat / os / x86_64
gpgcheck = 0
habilitado = 1

# Instalar el servidor MongoDB, el cliente y las herramientas
yum install -y mongodb-org

# Inicie el servidor MongoDB
systemctl start mongod

# Habilite MongoDB en el arranque del sistema (¡esto se hace sin systemctl!)
chkconfig mongod en

# Instalar la extensión PHP MongoDB
yum instalar php56u-pecl-mongo.x86_64

# Reinicie el servidor web nuevamente, verifique la página phpinfo
systemctl reiniciar httpd

¿Por qué quieres configurar un escritorio en un servidor?

Si fuera yo, encuentro una vieja máquina excedente y hago una instalación de centos, solo CLI.

Instale SSH y puede administrarlo desde la terminal en su máquina OSX.

Cómo instalar Nginx en CentOS 7

Configure el centOS como una instalación sin cabeza. Familiarícese con la CLI. Te ayudará más adelante.