在CentOS系统中编译安装LNMP(Linux、Nginx、MySQL、PHP)环境,一般可按以下步骤进行:
一、准备工作
1、系统更新与基础软件安装

首先确保系统是最新的,执行yum update y
命令更新系统软件包。
安装一些基础的编译工具和依赖库,如gCC
、gccc++
、make
、wget
等,使用yum install gcc gccc++ make wget y
命令安装。
2、关闭防火墙及SELinux
执行systemctl stop firewalld
关闭防火墙,并执行systemctl disable firewalld
禁止其开机自启。
编辑/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=disabled
,然后重启系统使设置生效。
二、安装Nginx
1、下载与解压

从官网或可靠镜像源下载指定版本的nginx源码包,如wget http://nginx.org/download/nginx1.14.0.tar.gz
,然后执行tar zxf nginx1.14.0.tar.gz C /usr/local/src/
进行解压。
2、创建运行用户
执行useradd M s /sbin/nologin nginx
命令添加nginx运行用户。
3、安装依赖包
Nginx需要一些依赖库支持,如PCRE、OpenSSL等,执行yum y install pcre pcredevel openssl openssldevel zlib zlibdevel
安装相关依赖包。
4、配置与编译安装

进入nginx源码目录,如cd /usr/local/src/nginx1.14.0/
,执行./configure prefix=/usr/local/nginx withhttp_ssl_module
命令配置编译选项,可根据需求添加其他模块参数。
执行make
命令开始编译,编译完成后执行make install
进行安装。
5、优化配置与启动服务
修改配置文件/usr/local/nginx/conf/nginx.conf
,如设置用户、工作进程数等参数。
执行/usr/local/nginx/sbin/nginx t
检查nginx语法是否正确,若正确则执行/usr/local/nginx/sbin/nginx
启动nginx服务。
三、安装MySQL
1、下载与解压
从官网或可靠镜像源下载指定版本的mysql源码包,如wget http://mirrors.163.com/mysql/Downloads/MySQL8.0/mysql8.0.16.tar.gz
,然后执行tar zxvf mysql8.0.16.tar.gz C /usr/local/src/
进行解压。
2、创建运行用户和组
执行groupadd mysql
和useradd r g mysql s /bin/false mysql
命令创建mysql运行用户和组。
3、安装依赖包
安装编译MySQL所需的依赖库,如ncursesdevel
等,执行yum y install ncursesdevel
命令。
4、配置与编译安装
进入mysql源码目录,如cd /usr/local/src/mysql8.0.16/
,执行cmake . DCMAKE_INSTALL_PREFIX=/usr/local/mysql DMYSQL_DATADIR=/data/mysql DSYSCONFDIR=/etc
命令配置编译选项。
执行make
命令开始编译,编译完成后执行make install
进行安装。
5、初始化数据库与启动服务
执行/usr/local/mysql/supportfiles/mysql.server start
命令初始化数据库并启动mysql服务。
可以通过修改/etc/my.cnf
配置文件来调整mysql的相关参数,如字符集、端口号等。
四、安装PHP
1、下载与解压
从官网或可靠镜像源下载指定版本的php源码包,如wget https://www.php.net/distributions/php7.2.6.tar.gz
,然后执行tar zxvf php7.2.6.tar.gz C /usr/local/src/
进行解压。
2、安装依赖包
安装编译PHP所需的依赖库,如libxml2devel
、bzip2devel
等,执行yum y install libxml2devel bzip2devel
命令。
3、配置与编译安装
进入php源码目录,如cd /usr/local/src/php7.2.6/
,执行./configure prefix=/usr/local/php withconfigfilepath=/usr/local/php/etc enablembstring withlibxmldir=/usr enablesoap withcurl withzlib withgd withpdosqlite withpdomysql withmysqli withmysqlsock enablemysqlnd disablerpath enableinlineoptimization withbz2 withzlib enablesockets enablesysvsem enablesysvshm enablepcntl enablembregex enableexif enablebcmath withmhash enablezip withpcreregex enableftp withkerberos withxmlrpc withfpmuser=www disablefileinfo enablecgi enablefpm
命令配置编译选项。
执行make
命令开始编译,编译完成后执行make install
进行安装。
4、配置PHP与Nginx关联
编辑NGINX配置文件/usr/local/nginx/conf/nginx.conf
,在server
块中添加对PHP的支持配置,如下:
- 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;
- }
启动PHP的FastCGI进程,可以在/usr/local/php/sbin/phpfpm
目录下执行phpfpm
命令启动,并将其添加到系统服务中以便开机自启。
五、测试LNMP环境
1、在浏览器中访问服务器的IP地址或域名,若能正常显示Nginx的默认页面,则说明Nginx安装成功。
2、创建一个PHP测试文件,如在网站根目录下创建test.php
为<?php phpinfo(); ?>
,然后在浏览器中访问该文件,若能正常显示PHP的信息页面,则说明PHP安装成功且与Nginx关联正常。
3、通过命令行或其他方式连接MySQL数据库,如使用mysql u root p
命令登录数据库,若能正常登录并进行数据库操作,则说明MySQL安装成功。
以下是两个关于LNMP环境的常见问题及解答:
1、问题:在编译安装过程中出现依赖库缺失的错误,导致无法继续安装。
解答:根据错误提示信息,确定缺失的依赖库名称,然后通过相应的软件源进行安装,如果提示缺少libxml2devel
库,可以执行yum y install libxml2devel
命令进行安装,也可以使用包管理工具搜索缺失的依赖库并进行安装,如使用yum search <依赖库名称>
查找可用的包。
2、问题:启动Nginx或PHP服务时报错,服务无法正常启动。
解答:首先检查配置文件是否正确,查看是否有语法错误或配置不当的地方,可以使用配置文件自带的检测工具进行检查,如Nginx的配置文件可以使用nginx t c /path/to/nginx.conf
命令检测语法是否正确,检查端口是否被占用,确保Nginx和PHP使用的端口没有被其他程序占用,如果端口被占用,可以修改配置文件中的端口号或者关闭占用端口的程序,查看错误日志文件,获取更详细的错误信息,以便进一步排查问题。