Explicación detallada del gráfico de instalación de la fuente LAMP (siga los pasos, muy fácil)

Directorio de artículos

1. Descripción general de LAMP

La arquitectura LAMP es uno de los modos de aplicación de sitios web empresariales maduros actuales, que se refiere a un conjunto de sistemas y software relacionado que trabajan juntos para proporcionar entornos de desarrollo de aplicaciones y servicios de sitios web dinámicos. LAMP es un acrónimo que incluye específicamente el sistema operativo Linux, el servidor web Apache, el servidor de base de datos MySQL, el lenguaje de programación web PHP (o Perl, Python).

1. El papel de cada componente

L: (Plataforma) Linux: Como base de la arquitectura LAMP, proporciona un sistema operativo para respaldar el sitio web, que puede proporcionar una mejor estabilidad y compatibilidad con los otros tres componentes (los componentes AMP también admiten plataformas como Windows y UNIX).

A: (primer plano) Apache: Como interfaz de la arquitectura LAMP, es un programa de servidor web potente y estable que proporciona directamente a los usuarios acceso al sitio web, enviando páginas web, imágenes y otro contenido de archivos.

M: (Fondo) MySQL: Como back-end de la arquitectura LAMP, es un popular sistema de base de datos relacional de código abierto. En aplicaciones como sitios web corporativos y sistemas comerciales, se puede almacenar diversa información de cuentas, información de productos, información de clientes, datos comerciales, etc. en la base de datos MySQL, y otros programas pueden consultar y cambiar esta información a través de declaraciones SQL.

P: (Conexión intermedia) PHP / Perl / Python: Como tres lenguajes de programación para desarrollar páginas web dinámicas, es responsable de interpretar archivos de páginas web dinámicas, comunicarse con servidores web y sistemas de bases de datos para trabajar juntos y proporcionar un entorno operativo y de desarrollo para aplicaciones web. Entre ellos, PHP es un lenguaje de scripting multipropósito de código abierto ampliamente utilizado, que se puede incrustar en HTML y es especialmente adecuado para el desarrollo de aplicaciones web.

2. Secuencia de instalación de cada componente

Al construir la plataforma LAMP, el orden de instalación de cada componente es Linux, Apache, MySQL, PHP. No existe un orden estricto para la instalación de Apache y MySQL, la instalación del entorno PHP generalmente se coloca al final, responsable de comunicarse con el servidor web y el sistema de base de datos para trabajar juntos.

3. Paquete de instalación

Paquete de instalación LAMP
Extracto de código: ap64

Dos, compile e instale el servicio httpd de Apache

1. Apague el firewall y cargue los paquetes de software necesarios para instalar Apache en el directorio / opt.

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

httpd-2.4.29.tar.gz
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz

El paquete de componentes #apr se utiliza para admitir aplicaciones de nivel superior de Apache multiplataforma y proporcionar la biblioteca de interfaz subyacente, que puede reducir eficazmente la cantidad de conexiones simultáneas, reducir los procesos y reducir la congestión del acceso.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Paquetes dependientes del entorno de instalación

yum -y install \
gcc \							#C语言的编译器
gcc-c++ \						#C++的编译器
make \							#源代码编译器(源代码转换成二进制文件)
pcre \							#pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel \                    #perl的接口开发包
expat-devel \                   #用于支持网站解析HTML、XML文件
perl                            #perl语言编译

yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl            

Inserte la descripción de la imagen aquí

3. Configure el módulo de software

cd /opt/
tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2

mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \		#指定将 httpd 服务程序的安装路径
--enable-so \					#启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \				#启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \			#启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi					#启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Compila e instala

make							#make -j 2  表示开2核同时进行编译
make install

Inserte la descripción de la imagen aquí

5. Optimice la ruta del archivo de configuración y coloque el archivo de programa ejecutable del servicio httpd en el directorio de la variable de entorno de ruta para una fácil identificación del sistema.

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

Inserte la descripción de la imagen aquí

6. Agregue el servicio del sistema httpd

método uno:

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd		#用于service服务管理
chmod +x /etc/init.d/httpd
vi /etc/init.d/httpd
#!/bin/bash												#在第一行前插入新行,添加此三行内容
# chkconfig: 35 85 21									#35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server

chkconfig --add httpd     		#将httpd服务加入到service管理器

systemctl start httpd.service
service httpd start

Método dos:

vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server						#描述
After=network.target									#描述服务类别
[Service]
Type=forking											#后台运行方式
PIDFile=/usr/local/httpd/logs/httpd.pid					#PID文件位置
ExecStart=/usr/local/bin/apachectl $OPTIONS				#启动服务
ExecReload=/bin/kill -HUP $MAINPID						#根据PID重载配置
[Install]
WantedBy=multi-user.target

systemctl start httpd.service
systemctl enable httpd.service

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

7. Modifique el archivo de configuración del servicio httpd.

vim /etc/httpd.conf
--52行--修改
Listen 192.168.126.10:80
--197行--取消注释,修改
ServerName www.kgc.com:80

--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默认首页文件名设置
DirectoryIndex index.html

httpd -t  或 apachectl -t			#检查配置文件的配置项是否有误
cat /usr/local/httpd/htdocs/index.html
systemctl restart httpd.service

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

8. Verificación del acceso al navegador

echo "192.168.126.10 www.kgc.com" >> /etc/hosts

http://192.168.12610
http://www.kgc.com

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Tres, compile e instale el servicio mysqld

1. Transfiera los paquetes de software necesarios para instalar mysql al directorio / opt

mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz		#支持c++的运行库

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Paquetes dependientes del entorno de instalación

yum -y install \
gcc \
gcc-c++ \
ncurses \				#字符终端下图形互动功能的动态库
ncurses-devel \			#ncurses开发包
bison \					#语法分析器
cmake					#mysql需要用cmake编译安装

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake

Inserte la descripción de la imagen aquí

3. Configure el módulo de software

tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz

cd /opt
mv boost_1_59_0 /usr/local/boost		#重命名

cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Opciones de motor de almacenamiento:
Los motores MYISAM, MERGE, MEMORY y CSV se compilan en el servidor de forma predeterminada y no es necesario instalarlos explícitamente.
Para compilar estáticamente un motor de almacenamiento en el servidor, utilice -DWITH_engine_STORAGE_ENGINE = 1. Los
valores del motor de almacenamiento disponibles son: ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (compatibilidad con particiones) y PERFSCHEMA (Performance Schema)

注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

4. Compila e instala

make -j 2 && make install

Inserte la descripción de la imagen aquí

需要长时间等待,-j 2 表示使用两个核进行编译

5. Cree un usuario de mysql

useradd -M -s /sbin/nologin  mysql

Inserte la descripción de la imagen aquí

6. Modifique el archivo de configuración de mysql

vim /etc/my.cnf								#删除原配置项,再重新添加下面内容
[client]									#客户端设置
port = 3306
socket=/usr/local/mysql/mysql.sock			
 
[mysqld]									#服务全局设置
user = mysql       							#设置管理用户
basedir=/usr/local/mysql					#指定数据库的安装目录
datadir=/usr/local/mysql/data				#指定数据库文件的存储路径
port = 3306									#指定端口
character-set-server=utf8					#设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件
bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve							#禁用DNS解析
max_connections=2048						#设置mysql的最大连接数
default-storage-engine=INNODB				#指定默认存储引擎
max_allowed_packet=16M						#设置数据库接收的数据包大小的最大值
server-id = 1								#指定服务ID号
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

Los valores comunes de sql_mode son los siguientes:
NO_ENGINE_SUBSTITUTION
Si el motor de almacenamiento requerido está deshabilitado o no se compila, se genera un error. Cuando no se establece este valor, reemplácelo con el motor de almacenamiento predeterminado y lance una excepción

STRICT_TRANS_TABLES
En este modo, si no se puede insertar un valor en una tabla de transacciones, la operación actual se interrumpe y no hay restricción en las tablas no transaccionales

NO_AUTO_CREATE_USER
prohíbe a GRANT crear usuarios con contraseñas vacías

NO_AUTO_VALUE_ON_ZERO
La columna de incremento automático en mysql puede comenzar desde 0. De forma predeterminada, la columna auto-creciente comienza desde 1, si inserta datos con un valor de 0, se informará un error

NO_ZERO_IN_DATE
no permite que la fecha y el mes sean cero

NO_ZERO_DATE la
base de datos mysql no permite insertar la fecha cero, insertar la fecha cero arrojará un error en lugar de una advertencia

ERROR_FOR_DIVISION_BY_ZERO
Durante INSERT o UPDATE, si los datos se dividen por cero, se genera un error en lugar de una advertencia. De forma predeterminada, MySQL devuelve NULL cuando los datos se dividen por cero

PIPES_AS_CONCAT
considera "||" como un operador de concatenación de cadenas en lugar de un operador OR, que es el mismo que la base de datos Oracle y similar a la función de concatenación de cadenas Concat

ANSI_QUOTES Después de
habilitar ANSI_QUOTES, no puede usar comillas dobles para citar una cadena porque se interpreta como un identificador

Inserte la descripción de la imagen aquí

7. Cambie el grupo propietario del directorio de instalación y el archivo de configuración de mysql.

chown -R mysql:mysql /usr/local/mysql
chown mysql:mysql /etc/my.cnf

Inserte la descripción de la imagen aquí

8. Establezca la variable de entorno de ruta

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

Inserte la descripción de la imagen aquí

9. Inicialice la base de datos

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

Inserte la descripción de la imagen aquí

10. Agregue el servicio del sistema mysqld

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/		#用于systemctl服务管理
systemctl daemon-reload         #刷新识别     
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口

Inserte la descripción de la imagen aquí

11. Modifique la contraseña de inicio de sesión de mysql

mysqladmin -u root -p password "abc123" 	#给root账号设置密码为abc123,提示输入的是原始密码(为空)

12. Autorice el inicio de sesión remoto

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限

show databases;			#查看当前已有的数据库

Inserte la descripción de la imagen aquí

Cuatro, compile e instale el entorno de análisis PHP

1. Transfiera los paquetes de software necesarios para instalar PHP al directorio / opt

php-7.1.10.tar.bz2

Inserte la descripción de la imagen aquí

2. Instale la biblioteca GD y los programas relacionados con la biblioteca GD para procesar y generar imágenes

yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

Inserte la descripción de la imagen aquí

3. Configure el módulo de software

cd /opt
tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/

Inserte la descripción de la imagen aquí


./configure \
--prefix=/usr/local/php7 \							#指定将 PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \			#指定Apache httpd服务提供的apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指定mysql 数据库连接文件的存储路径
--with-config-file-path=/usr/local/php7				#设置 PHP 的配置文件 php.ini 将要存放的位置
--with-mysqli \										#添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \										#支持zlib功能,提供数据压缩
--with-curl \										#开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
--with-gd \											#激活gd 库的支持
--with-jpeg-dir \									#激活jpeg 的支持
--with-png-dir \									#激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \									#启用多字节字符串功能,以便支持中文等代码
--enable-xml \										#开启扩展性标记语言模块
--enable-session \									#会话
--enable-ftp \										#文本传输协议
--enable-pdo \										#函数库
--enable-tokenizer \								#令牌解释器
--enable-zip										#ZIP压缩格式

./configure \
--prefix=/usr/local/php7 \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/usr/local/php7 \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

Inserte la descripción de la imagen aquí

4. Compila e instala

make && make install

Inserte la descripción de la imagen aquí

5. Copie el archivo de plantilla como archivo de configuración principal de PHP y modifíquelo.

cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini	
#在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件

vim /usr/local/php7/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

Inserte la descripción de la imagen aquí

6. Optimice para colocar archivos de programa ejecutables PHP en el directorio de la variable de entorno de ruta para una fácil identificación del sistema

ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m 			#查看PHP 加载了哪些模块

Inserte la descripción de la imagen aquí

7. Modifique el archivo de configuración del servicio httpd para permitir que Apache admita PHP

vim /etc/httpd.conf 
--393行--插入以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
--256行--修改首页文件名设置
DirectoryIndex index.html index.php

---检查支持php7的模块是否存在------
LoadModule php7_module        modules/libphp7.so

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

8. Verifique la página de prueba de PHP

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

systemctl restart httpd.service

浏览器访问
http://192.168.184.10

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51573771/article/details/112289833
Recomendado
Clasificación