Compilación del código fuente de Linux Apache
La ubicación de almacenamiento del paquete de código fuente del software:/usr/local/src
La ubicación de compilación e instalación del paquete de código fuente (prefijo):/usr/ local/nombre_software .
La ubicación de almacenamiento de scripts y programas de mantenimiento: /usr/local/sbin.
Ubicación de la base de datos MySQL: /var/lib/mysql (se puede configurar según la situación)
Directorio raíz del sitio web de Apache: /home/www/wwwroot (se puede configurar según la situación) la situación).
Directorio raíz del registro del host virtual de Apache: /home/www/logs (se puede configurar según la situación)
Diario de Apache: www: www
2 . Entorno del sistema Despliegue y ajuste
1. Compruebe si el sistema es normal.
# more /var/log/messages (verifique los mensajes de error a nivel del sistema)
# dmesg (verifique los mensajes de error del dispositivo de hardware)
# ifconfig (verifique Si la configuración de la tarjeta de red es correcta)
# ping www.163.com (verifique si la red es normal)
2. Cierre los servicios innecesarios
# ntsysv p>
A continuación se enumeran solo los servicios que deben iniciarse. Se recomienda cerrar todos los servicios no listados:
atd
Klond
<. p>irqbalanceMicrocode_ctl
Red
Enviar correo electrónico
sshd
Registro del sistema
3. Reiniciar el sistema
#Inicialización 6
Configurar vim
# vi /root/. bashrc
Agregue una línea bajo el alias mv='mv -i ': alias vi='vim 'Guardar y salir.
# echo 'sintaxis en ' gt/root/. vimrc
5. Utilice el programa yum para instalar los paquetes de desarrollo necesarios (los siguientes son los nombres de los paquetes RPM estándar)
# yum installs ntp vim advanced gcc gcc-c gcc-G77 flex bison autoconf automake bzip2-devel ncurses-devel lib JPEG-devel libpng-devel libtiff-devel freetype-devel PAM-devel kernel
6. Centro Nacional de Cronometraje de China.
# crontab -e agrega una línea: */30 * * * ntpdate 210. 72. 145.44.
7. Paquete de compilación e instalación del código fuente (código fuente)
(1) GD2
# cd /usr/local/src
# tar xzvf gd-2.0.34.tar.gz
# cd gd-2.0.34
# ./configure-prefix =/usr/local/gd2 p>
#Fabricación
#Instalar
(2) LibXML2
# cd /usr/local/src
# tar xjvf libxml2-2.6.30.tar.bz2
# cd libxml2-2.6.30
# ./configure-prefix =/usr/local/libxml 2
#Fabricación
#Instalar
(3) LibMcrypt
# cd /usr/local/src
# tar xjvf libmcrypt-2 5 . p>#Fabricación
#Instalación
(4) Programa de truncamiento de registros de Apache
# cd /usr/local/src
# tar xzvf cronolog-1 . 0-beta tar .
#Manufactura
#Instalar
8. Actualizar OpenSSL y OpenSSH
# cd /usr/local/src
# tar xzvf openssl-0.9.8e.tar.gz
# cd openssl-0.9.8e
# ./config-prefix =/usr/local/OpenSSL
#Fabricación
#Pruebas
#Instalación
# cd..
# tar xzvf OpenSSH-4.7 p 1 .
"-con-pam" \
"-con-zlib" \
"- sysconfdir=/etc/ssh" \
"- with-SSL-dir =/usr/local/OpenSSL " \
"-with-MD5-password"
#Fabricación
#Realizar instalación p>
(1) Deshabilitar el protocolo SSH V1.
Buscar:
#Protocol2,1
Reemplazar con:
Protocol2
(2) Prohibir root usuarios inicien sesión directamente
Aquí, primero cree un usuario normal del sistema:
# usuarioadd nombre de usuario
#contraseña nombre de usuario
Buscar:
#PermitRootLogin es
Reemplazar con:
Número de inicio de sesión de PermitRootLogin
(3) Deshabilitar GSSAPI del lado del servidor
Busque las siguientes dos líneas y coméntelas:
GSSAPIAuthentication es
GSSAPICleanupCredentials es
(4) Deshabilitar la resolución de nombres DNS
Buscar:
#UseDNS es
Reemplazar con:
Usar número
(5) Deshabilitar cliente GSSAPI
# vi /etc/ssh/ssh_config
Buscar:
GSSAPIAuthentication es
Comentar esta línea.
Finalmente, tras confirmar las modificaciones correctas, reinicia el servicio SSH.
#Service sshd restart
# ssh -v
Confirma que las versiones de OpenSSH y OpenSSL son correctas.
En tercer lugar, compila e instala el entorno L.A.M.P
1 Descarga el software
# cd /usr/local/src
f. / etc/my.cnf
# mv/usr/local/MySQL/data/var/lib/MySQL
# chown-R MySQL:MySQL/var/lib/MySQL/
# vi /etc/my.cnf
Modificar el siguiente contenido:
(1) Agregar una línea en la sección [mysql]:
default-character-set = gbk | Latin 1 | big 5
(2) Agregar o modificar en el párrafo [mysqld]:
datadir = /var /lib/mysql
-skip-innodb
default-character-set = gbk | Latin utf8 | big 5
- tiempo de espera = 3 | 5 | 10
max_connections = 256 | 384 | 512
Número máximo de errores de conexión = 10000000
Thread_concurrency = número × 2.
Cuadro de registro de comentarios
# bin/mysqladmin -u contraseña de raíz 'contraseña de raíz'
3. Compile e instale Apache
# cd /usr/local/src
# tar xjvf httpd-2.2.6.tar.bz2
# cd httpd-2.2.6
# ./ Configuración\
- prefix=/usr/local/apache2" \
"-include-include-April" \
"-enable-so" \
"- enable-deflate=shared" \
"- enable-expires=shared" \
- enable-rewrite=shared" \
" p>
"-Activar-soporte-estático" \
"-Desactivar-directorio de usuarios"
#Fabricación
# Instalar
# echo '/usr/local/Apache 2/bin/Apache CTL start ' gt; gt/etc/rc .local
4. >
# cd /usr/local/src
# tar xjvf php-5.2.4.tar.bz2
# cd php-5.2.4
# . /config\
"- prefix=/usr/local/php" \
"-con-APX S2 =/usr/local/Apache 2/bin/ apxs " \
"-with-config-file-path =/usr/local/PHP/etc " \
"-with-mysql=/usr/local/mysql" \
"-with-libxml-dir =/usr/local/libxml 2 " \
"-with-gd=/usr/local/gd2" \
" -con-jpeg-dir" \
"-con-png-dir" \
"-con-bz2" \
" -con-freetype -dir "
"-con-iconv-dir" \
"-con-zlib-dir " \
"-con- OpenSSL =/usr /local/OpenSSL " \
"-with-mcrypt =/usr/local/libmcrypt " \
"-enable-soap" \
- habilitar -gd-native-ttf" \
"-enable-ftp" \
"-enable-mbstring" \
-enable- exif" \
"-disable ipv6" \
"-disable-cgi" \
"-disable interfaz de línea de comando"
#Fabricación
#Instalar
# mkdir /usr/local/php/etc
# CP PHP . etc/PHP .ini
5. Integrar Apache y PHP.
# VI/usr/local/Apache 2/conf/httpd .
Buscar:
Agregar tipo de aplicación/x-gzip. gz. tgz
Bajo esta línea, agregue
AddType application/x-httpd-php. Lenguaje de programación del lado del servidor (abreviatura de Preprocesador de hipertexto profesional)
Buscar:
ltIfModule dir _ module gt
index.html Director Index
lt/if module gt;
Reemplace esta línea con la siguiente
ltIfModule dir _ module gt
index.html·index.htm·index. php
lt/if module gt;
Buscar:
#include conf/extra/httpd-mpm.conf
#include conf/extra/httpd-info.conf
# Incluir conf/extra/httpd-vhosts
#Incluir conf/extra/httpd-default.conf
Elimine el "#" anterior y descoméntelo.
Nota: ¡Configure correctamente los ajustes en los cuatro archivos de configuración extendidos anteriores de acuerdo con los principios relevantes! Guardar y salir después de la modificación.
#/usr/local/Apache 2/bin/Apache CTL Restart
6. Verifique y confirme la información del entorno de L.A.M.P para mejorar la seguridad de PHP.
Coloque el script phpinfo.php en el directorio raíz del sitio web y verifique si toda la información en phpinfo es correcta.
Después de confirmar que php puede funcionar normalmente, configúrelo en php.ini para mejorar la seguridad de PHP.
# vi /etc/php.ini
Buscar:
disable_functions =
Establecer en:
phpinfo, passthru, exec, system, chroot, scandir, chgrp, chown, shell_exec, proc_open,
proc_get_status, ini_alter, ini_alter, ini_restore, dl, pfsockopen, openlog, syslog,
readlink, symlink, popepassthru, stream_socket_server
4. Configuración de seguridad del servidor
1 Configure el firewall del sistema
# vi /usr/local/sbin/fw. .sh
Pegue los siguientes comandos de script en el archivo fw.sh.
#!/bin/bash
#Primero detenga el servicio iptables
Detenga el servicio iptables
#Cargue el módulo del kernel FTP
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
#Política predeterminada de cadena inicial
/sbin/iptables -F - t filtro
/sbin/iptables -P entrada descartada
/sbin/iptables -P salida aceptada
#Habilitar transmisión de red local
/ sbin/iptables -A input -i lo -j aceptar
#Aceptar la conexión establecida
/sbin/iptables -A input -m status -status establecido, relacionado -j aceptar
# control ICMP
/sbin/iptables -A input -p icmp -m limit-limit 1/s-limit-burst 10 -j aceptar
# servicio WWW
/sbin/iptables -A input -p tcp - dport 80 -j aceptar
# servicio FTP
/sbin/iptables -A entrada -p tcp - dport 21 -j aceptar
# servicio SSH
/sbin/iptables -A entrada -p tcp - dport 22 -j aceptar # chmod 755 /usr/local /sbin/fw.sh
# echo '/usr/local/sbin/fw sh ' gt/etc/rc .local
.