Red de conocimiento informático - Aprendizaje de programación - Compilación del código fuente de Linux Apache

Compilación del código fuente de Linux Apache

Primero, el protocolo del sistema

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

A continuación se enumeran solo los servicios que deben iniciarse. Se recomienda cerrar todos los servicios no listados:

atd

Klond

<. p>irqbalance

Microcode_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

#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

(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

.