Tabla de contenido
1. Instalar paquetes dependientes
2. Crear un usuario en ejecución de Nginx
3. Compile e instale el paquete fuente de Nginx
4. Optimice la ruta para facilitar su uso
5. Agregue el servicio del sistema Nginx
Dos, instalar el servicio Mysql
1. Instale el paquete de dependencia del entorno Mysql
2. Crear un usuario en ejecución de Mysql
4. Modificar el archivo de configuración mysql
6. Establezca la variable de entorno de ruta para un uso fácil
7. Inicializar la base de datos
8. Agregue el servicio del sistema mysqld
9. Modificar la contraseña de inicio de sesión de mysql
10. Autorice al usuario root para iniciar sesión de forma remota
1. Instalar paquetes dependientes del entorno
3. Optimice la ruta para facilitar su uso
4. Ajuste el archivo de configuración de php
6. Configure Nginx para admitir el análisis de PHP
7. Agregue el archivo inex.php para probar si el servicio php es efectivo
8. Verifique que la base de datos funcione correctamente
4. Usa la arquitectura LNMP para construir un foro bbs
La arquitectura LNMP se refiere a Linux+Nginx+Mysql+PHP (Perl, Python)
Primero prepare el host de Linux, apague el firewall y selinux
Es necesario obtener los paquetes de código fuente relevantes
Para conocer el significado de los campos de configuración, consulte el funcionamiento real de la arquitectura LAMP_Evens7xxX Blog-CSDN Blog
diagrama de arquitectura
editar
Diferencias con LAMP
En la arquitectura LNMP, nginx maneja las solicitudes de páginas estáticas y fastCGI reenvía las solicitudes de páginas dinámicas al módulo php-fpm, luego pasa a través de la detección de contenedores y finalmente las analiza para php. Los datos relacionados con la base de datos abrirán la interfaz de conexión de la base de datos para obtener los datos.
1. Instalar el servicio Nginx
1. Instalar paquetes dependientes
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
2. Crear un usuario en ejecución de Nginx
useradd -M -s /sbin/nologin nginx
3. Compile e instale el paquete fuente de Nginx
#解压源码包
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
#自定义安装
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
#编译安装
make && make install
4. Optimice la ruta para facilitar su uso
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
5. Agregue el servicio del sistema Nginx
#自定义service文件
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#设置权限,使文件生效
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
Dos, instalar el servicio Mysql
1. Instale el paquete de dependencia del entorno Mysql
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
2. Crear un usuario en ejecución de Mysql
useradd -M -s /sbin/nologin mysql
3. Compilar e instalar
#解压源码包
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz
#自定义安装
cd /opt/mysql-5.7.20/
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=boost \
-DWITH_SYSTEMD=1
#编译安装
make && make install
4. Modificar el archivo de configuración mysql
vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
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
5. Cambie el propietario y el grupo del directorio de instalación de mysql y los archivos de configuración
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
6. Establezca la variable de entorno de ruta para un uso fácil
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
7. Inicializar la base de datos
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
8. Agregue el servicio del sistema mysqld
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
9. Modificar la contraseña de inicio de sesión de mysql
mysqladmin -u root -p password "abc123"
10. Autorice al usuario root para iniciar sesión de forma remota
mysql -u root -p
Introduzca la contraseña para iniciar sesión
3. Instalar el servicio PHP
1. Instalar paquetes dependientes del entorno
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
2. Compilar e instalar
#解压源码包
cd /opt
tar jxvf php-7.1.10.tar.bz2
#自定义安装
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
#编译安装
make && make install
3. Optimice la ruta para facilitar su uso
ln -s /usr/local/php/bin/* /usr/local/bin/ ln -s /usr/local/php/sbin/* /usr/local/sbin/
4. Ajuste el archivo de configuración de php
/usr/local/php/lib/php.ini | archivo de configuración principal |
---|---|
/usr/local/php/etc/php-fpm.conf | Archivo de configuración del servicio de proceso (el valor predeterminado es solo un archivo de plantilla, que debe copiarse y renombrarse a php-fpm.conf) |
/usr/local/php/etc/php-fpm.d/www.conf | Archivo de configuración extendido (el valor predeterminado es solo un archivo de plantilla, que debe copiarse y renombrarse) |
(1) Modificar php.ini
#复制模板并修改
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
#939行,取消注释,修改
date.timezone = Asia/Shanghai
#1170行,修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
#验证安装的模块
php -m
(2) Modificar php-fpm.conf
#复制模板文件
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
#修改进程服务配置文件
vim php-fpm.conf
#17行,去掉";"注释
pid = run/php-fpm.pid
La última línea representa la carga de todos los archivos conf en /usr/local/php/etc/php-fpm.d/
(3) Modificar www.conf
cd /usr/local/php/etc/php-fpm.d/ cp www.conf.default www.conf vim www.conf
Modifique la dirección de escucha (de forma predeterminada, la IP especificada es la máquina local. Si el host que proporciona el servicio nginx y el servicio php no es el mismo, debe modificarse para proporcionar la dirección IP del servidor nginx)
El propietario y el grupo se pueden modificar a nginx
5. Inicie php-fpm
#进入软件包目录,复制并启用service文件
cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
#重载并开启服务
systemctl daemon-reload
systemctl restart php-fpm.service
Comprobar encontrado que el servicio está habilitado
6. Configure Nginx para admitir el análisis de PHP
vim /usr/local/nginx/conf/nginx.conf
#65行,取消注释,修改
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#重启服务使配置生效
systemctl restart nginx.service
Cambie /scripts a $document_root para representar el valor especificado en el comando raíz de la solicitud actual (directorio raíz web)
7. Agregue el archivo inex.php para probar si el servicio php es efectivo
Primero, debe agregar el archivo de página de inicio especificado index.php en /usr/local/nginx/conf/nginx.conf
Vuelva a cargar el servicio para que la configuración surta efecto
systemctl reload nginx.service
Agregue el archivo index.php para la prueba de acceso
#在root指定的根目录下创建index.php文件,并添加内容
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
8. Verifique que la base de datos funcione correctamente
Agregar autorización, escribir página de prueba
editar
editar
4. Usa la arquitectura LNMP para construir un foro bbs
Descomprimir el archivo zip del foro
Ingrese al archivo del foro y copie la página al directorio raíz de la página web de bbs
autorización de base de datos
visita la página
Corrija la parte de informe de errores, cambie el propietario y los permisos
Continúe con el siguiente paso después de actualizar la página
editar
Elija instalación limpia
Configure la base de datos y la contraseña ahora mismo, y luego configure un administrador y una contraseña
Visita después de una instalación exitosa
Puede iniciar sesión en el administrador en la esquina superior derecha
Hasta ahora, el uso de LNMP para publicar un sitio web está completo