前言
LINUX操作系统在服务器领域中广泛应用,其稳定性、安全性和可靠性是其他操作系统无法比拟的。LNMP是一种高性能的Web服务器搭建方案,由Linux、Nginx、MySQL和PHP四个开源软件组成,能够满足大规模Web访问的需求。本文将介绍如何在CentOS操作系统中通过源码安装LNMP,以及相关的配置和优化。
安装前准备
在开始安装LNMP之前,需要对系统进行一些准备工作。需要安装一些必要的软件包,如gcc、make、autoconf等。可以通过yum命令进行安装:
```
yum install gcc gcc-c++ make autoconf automake
需要安装一些LNMP所依赖的库文件,如pcre、zlib、openssl等。可以通过yum命令进行安装:
yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装Nginx
Nginx是一种高性能的Web服务器,可以处理大量并发请求。在安装Nginx之前,需要先下载最新的源码包,并解压到指定目录中。可以通过以下命令进行下载和解压:
wget -1.18.0.tar.gz
tar zxvf nginx-1.18.0.tar.gz -C /usr/local/src
解压完成后,进入Nginx源码目录,执行以下命令进行编译和安装:
cd /usr/local/src/nginx-1.18.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module
make
make install
以上命令中,--prefix指定了Nginx的安装目录,--with-http_ssl_module启用了SSL支持,--with-http_stub_status_module启用了状态监控模块,--with-http_gzip_static_module启用了静态压缩模块。
安装完成后,可以通过以下命令启动Nginx:
/usr/local/nginx/sbin/nginx
也可以通过以下命令停止Nginx:
/usr/local/nginx/sbin/nginx -s stop
安装MySQL
MySQL是一种常用的关系型数据库管理系统,可以存储和管理数据。在安装MySQL之前,需要先下载最新的源码包,并解压到指定目录中。可以通过以下命令进行下载和解压:
wget -5.7/mysql-5.7.33.tar.gz
tar zxvf mysql-5.7.33.tar.gz -C /usr/local/src
解压完成后,进入MySQL源码目录,执行以下命令进行编译和安装:
cd /usr/local/src/mysql-5.7.33
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system
以上命令中,-DCMAKE_INSTALL_PREFIX指定了MySQL的安装目录,-DMYSQL_DATADIR指定了数据存储目录,-DDEFAULT_CHARSET和-DDEFAULT_COLLATION指定了默认字符集和排序规则,-DEXTRA_CHARSETS指定了额外的字符集支持,-DWITH_开头的选项指定了各种存储引擎和插件的支持,-DWITH_SSL和-DWITH_ZLIB指定了SSL和Zlib的支持。
安装完成后,可以通过以下命令启动MySQL服务:
/usr/local/mysql/bin/mysqld_safe --user=mysql &
也可以通过以下命令停止MySQL服务:
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
安装PHP
PHP是一种常用的服务器端脚本语言,可以与Web服务器配合使用。在安装PHP之前,需要先下载最新的源码包,并解压到指定目录中。可以通过以下命令进行下载和解压:
wget -7.4.22.tar.gz
tar zxvf php-7.4.22.tar.gz -C /usr/local/src
解压完成后,进入PHP源码目录,执行以下命令进行编译和安装:
cd /usr/local/src/php-7.4.22
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--enable-fpm \
--enable-mbstring \
--enable-opcache \
--enable-zip \
--with-gd \
--with-jpeg \
--with-png \
--with-freetype \
--with-zlib \
--with-iconv \
--with-openssl \
--with-curl \
--with-libxml-dir
以上命令中,--prefix指定了PHP的安装目录,--with-config-file-path指定了PHP的配置文件路径,--with-mysqli和--with-pdo-mysql指定了MySQL的支持,--enable-fpm启用了FastCGI进程管理器,--enable-mbstring启用了多字节字符串支持,--enable-opcache启用了缓存支持,--enable-zip启用了ZIP压缩支持,--with-开头的选项指定了各种扩展库的支持。
安装完成后,可以通过以下命令启动PHP-FPM服务:
/usr/local/php/sbin/php-fpm
也可以通过以下命令停止PHP-FPM服务:
/usr/local/php/sbin/php-fpm -s stop
配置Nginx、MySQL和PHP
在安装完Nginx、MySQL和PHP之后,需要对其进行配置,才能正常使用。以下是一些常用的配置项:
Nginx配置:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
gzip on;
gzip_vary on;
gzip_static on;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
include /etc/nginx/conf.d/*.conf;