千家信息网

CentOS 7中怎么搭建LNMP环境

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家介绍CentOS 7中怎么搭建LNMP环境,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1,安装epel源yum install -y epel-release2,
千家信息网最后更新 2026年11月01日CentOS 7中怎么搭建LNMP环境

这篇文章给大家介绍CentOS 7中怎么搭建LNMP环境,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1,安装epel源

yum install -y epel-release

2, 安装需要的软件

yum install -y gcc automake autoconf libtool make gcc-c++ glibc libxslt-devel \libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 \libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 \bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \krb5-devel libidn libidn-devel openssl openssl-devel pcre pcre-devel libmcrypt \libmcrypt-devel cmake
1,下载的软件,先找好需要下载的软件的下载地址
cat > /usr/local/src/url << "EOF"http://nginx.org/download/nginx-1.14.2.tar.gzhttp://jp2.php.net/distributions/php-5.6.39.tar.gzhttps://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gzEOF
2,开始下载
wget -P /usr/local/src -i /usr/local/src/url
3,解压
cd /usr/local/srcfor i in *.tar.gz ; do tar zxvf $i; done

3,安装MySQL

安装依赖包

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

mysql5.7 编译安装需要boost 库,这里官网下载含boost的源码包

添加用户

useradd -s /sbin/nologin mysql

建立所需目录并更改所有者为mysql

mkdir -p /data/mysql/datachown -R mysql:mysql /data/mysql

将下载好的mysql 解压到/usr/local/mysql 目录下

mv /usr/local/src/mysql-boost-5.7.25 /usr/local/mysql

切换到/usr/local/mysql-5.7.25 目录下,编译安装

cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make && make install

安装好后的/usr/local/mysql目录结构



配置

编辑/etc/my.cnf ( 如果没有则创建)
我这边的一个配置文件内容如下

[client]port        = 3306socket      = /tmp/mysql.sock[mysqld]port        = 3306socket      = /tmp/mysql.sockuser = mysqlbasedir = /usr/local/mysqldatadir = /data/mysql/datapid-file = /data/mysql/mysql.pidlog_error = /data/mysql/mysql-error.logslow_query_log = 1long_query_time = 1slow_query_log_file = /data/mysql/mysql-slow.logskip-external-lockingkey_buffer_size = 32Mmax_allowed_packet = 1024Mtable_open_cache = 128sort_buffer_size = 768Knet_buffer_length = 8Kread_buffer_size = 768Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mthread_cache_size = 16query_cache_size = 16Mtmp_table_size = 32Mperformance_schema_max_table_instances = 1000explicit_defaults_for_timestamp = true#skip-networkingmax_connections = 500max_connect_errors = 100open_files_limit = 65535log_bin=mysql-binbinlog_format=mixedserver_id   = 232expire_logs_days = 10early-plugin-load = ""default_storage_engine = InnoDBinnodb_file_per_table = 1innodb_buffer_pool_size = 128Minnodb_log_file_size = 32Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 1innodb_lock_wait_timeout = 50[mysqldump]quickmax_allowed_packet = 16M[mysql]no-auto-rehash[myisamchk]key_buffer_size = 32Msort_buffer_size = 768Kread_buffer = 2Mwrite_buffer = 2M

以上配置内容非必须,可依据实际情况,做相应的调整!

把安装目录用户和组更改为mysql

chown -R mysql:mysql  /usr/local/mysql

把数据库数据目录用户和组更改为mysql ( 数据库数据目录:/data/mysql/data),方法同上!
注:/data/mysql/data目录下一定要为空才行

初始化mysql

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

注:到这一步很容易出问题,在初始化的时候一定要加上面的参数,而且在执行这一步操作前/data/mysql/data 这个目录必须是空的;在这里指定的basedir 和 datadir 目录必须要和/etc/my.cnf 配置的目录一直才行。

拷贝可执行配置文件

cp mysql.server /etc/init.d/mysqld

注:有些网友文章在这一步中会写到从/usr/local/mysql/support-files 这个目录复制my-default.cnf 到/etc/下作为my.cnf 配置文件,我这里没有这个文件,所以直接在配置环节,自己配置了一个my.cnf文件。

启动

service mysqld start

注:这一步也是很容易出问题的地方,当这里出现问题的时候,不要慌,看mysql 错误日志的内容,一般根据mysql 错误日志的提示都能很好的解决问题。

测试连接

./mysql -hlocalhost -uroot -p

无需密码即可连接成功

修改环境变量
在/etc/profile 中新增一行

PATH=/usr/local/mysql/bin:$PATH

保存退出

source /etc/profile

设置开机自启动

systemctl enable mysqld

登录MySql并修改root密码

#mysql -uroot -pmysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'new psd';

4,安装PHP; 创建php账户进入目录

useradd -s /sbin/nologin php-fpmcd /usr/local/src/php-5.6.39
1, 编译
./configure \--prefix=/usr/local/php \--with-config-file-path=/usr/local/php/etc \--enable-fpm \--with-fpm-user=php-fpm \--with-fpm-group=php-fpm \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-libxml-dir \--enable-pcntl \--enable-mysqlnd \--enable-opcache \--enable-sockets \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \--enable-shmop \--enable-zip \--enable-soap \--enable-xml \--enable-mbstring \--disable-rpath \--disable-debug \--disable-fileinfo \--with-pcre-regex \--with-iconv \--with-zlib \--with-mcrypt \--with-gd \--with-jpeg-dir \--with-png-dir \--enable-gd-native-ttf \--with-freetype-dir \--with-openssl \--with-mhash \--with-xmlrpc \--with-curl \--with-pear \--enable-ftp \--enable-exif \--disable-ipv6 \--with-imap-ssl
解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.configure: error: mcrypt.h not found. Please reinstall libmcrypt.方法一:yum install -y epel-releaseyum install -y libmcrypt-devel两个不能一起安装,因为CentOs6默认的yum源没有 libmcrypt-devel这个包,只能借助epel的yum源,所以先安装epel,再安装libmcrypt。方法二:报错内容:configure: error: mcrypt.h not found. Please reinstall libmcrypt网上搜索了很多,包括自带的 yum install libmcrypt libmcrypt-devel,这个是没有效果的。去SourceForget下载libmcrypt http://sourceforge.net/projects/mcrypt/files/Libmcrypt/ ,最新版是mcrypt 2.6.7.gz。下载下来安装仍旧报错libmcrypt没有找到!继续测试,最后安装成功,感觉是版本太高。方法(关键点在用 2.5.7版本):#使用wget可以通过以下路径下载wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz  #解压tar -zxvf libmcrypt-2.5.7.tar.gz  #进入目录cd libmcrypt-2.5.7  #编译(默认安装到/usr/local/lib/)./configure --prefix=/usr/local/libmcrypt  #执行安装make && make install  再回到PHP-5.5.13解压缩的ext目录的mcrypt里面 phpize  ./configure --with-php-config=/usr/local/php5/bin/php-config \  --with-libmcrypt=/usr/lib/libmcrypt  make  make test  make install  vim /etc/php.ini   #加入extension=mcrypt.so
2,安装
make && make install
3,修改配置文件
cp php.ini-production /usr/local/php-fpm/etc/php.inivi /usr/local/php-fpm/etc/php-fpm.conf
4,写入如下内容
[global]pid = /usr/local/php-fpm/var/run/php-fpm.piderror_log = /usr/local/php-fpm/var/log/php-fpm.log[www]listen = /tmp/php-fcgi.socklisten.mode = 666user = php-fpmgroup = php-fpmpm = dynamicpm.max_children = 50pm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 500rlimit_files = 1024
5,设置启动文件,开机启动
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod 755 /etc/init.d/php-fpmchkconfig --add php-fpmchkconfig php-fpm onservice php-fpm startps aux |grep php-fpm

5,安装nginx

1,进入目录编译
cd /usr/local/src/nginx-1.14.2./configure --prefix=/usr/local/nginx
2,开始安装
make &&  make install
3,修改启动文件
vim /etc/init.d/nginx
4,写入以下内容
#!/bin/bash# chkconfig: - 30 21# description: http service.# Source Function Library. /etc/init.d/functions# Nginx SettingsNGINX_SBIN="/usr/local/nginx/sbin/nginx"NGINX_CONF="/usr/local/nginx/conf/nginx.conf"NGINX_PID="/usr/local/nginx/logs/nginx.pid"RETVAL=0prog="Nginx"start(){    echo -n $"Starting $prog: "    mkdir -p /dev/shm/nginx_temp    daemon $NGINX_SBIN -c $NGINX_CONF    RETVAL=$?    echo    return $RETVAL}stop(){    echo -n $"Stopping $prog: "    killproc -p $NGINX_PID $NGINX_SBIN -TERM    rm -rf /dev/shm/nginx_temp    RETVAL=$?    echo    return $RETVAL}reload(){    echo -n $"Reloading $prog: "    killproc -p $NGINX_PID $NGINX_SBIN -HUP    RETVAL=$?    echo    return $RETVAL}restart(){    stop    start}configtest(){    $NGINX_SBIN -c $NGINX_CONF -t    return 0}case "$1" in  start)        start        ;;  stop)        stop        ;;  reload)        reload        ;;  restart)        restart        ;;  configtest)        configtest        ;;  *)        echo $"Usage: $0 {start|stop|reload|restart|configtest}"        RETVAL=1esacexit $RETVAL
5,设置启动权限,开机启动
chmod 755 /etc/init.d/nginxchkconfig --add nginxchkconfig nginx on
6, 修改配置文件,站点目录
mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bakvi /usr/local/nginx/conf/nginx.conf
user nobody nobody;worker_processes 2;error_log /usr/local/nginx/logs/nginx_error.log crit;pid /usr/local/nginx/logs/nginx.pid;worker_rlimit_nofile 51200;events{    use epoll;    worker_connections 6000;}http{    include mime.types;    default_type application/octet-stream;    server_names_hash_bucket_size 3526;    server_names_hash_max_size 4096;    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'    ' $host "$request_uri" $status'    ' "$http_referer" "$http_user_agent"';    sendfile on;    tcp_nopush on;    keepalive_timeout 30;    client_header_timeout 3m;    client_body_timeout 3m;    send_timeout 3m;    connection_pool_size 256;    client_header_buffer_size 1k;    large_client_header_buffers 8 4k;    request_pool_size 4k;    output_buffers 4 32k;    postpone_output 1460;    client_max_body_size 10m;    client_body_buffer_size 256k;    client_body_temp_path /usr/local/nginx/client_body_temp;    proxy_temp_path /usr/local/nginx/proxy_temp;    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;    fastcgi_intercept_errors on;    tcp_nodelay on;    gzip on;    gzip_min_length 1k;    gzip_buffers 4 8k;    gzip_comp_level 5;    gzip_http_version 1.1;    gzip_types text/plain application/x-javascript text/css text/htm    application/xml;    server    {        listen 80;        server_name localhost;        index index.html index.htm index.php;        root /usr/local/nginx/html;        location ~ \.php$        {            include fastcgi_params;            fastcgi_pass unix:/tmp/php-fcgi.sock;            fastcgi_index index.php;            fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;        }        }}
6,查看配置是否有错误,启动监听端口是否启动
/usr/local/nginx/sbin/nginx -t/etc/init.d/nginx  startnetstat -lntp |grep 80

测试php解析

vi /usr/local/nginx/html/1.php //加入如下内容
curl localhost/1.php

附:设置默认虚拟主机和多站点配置

增加vhost文件夹用于配置多站点

vim /usr/local/nginx/conf/nginx.conf


include vhost/*.conf
mkdir /usr/local/nginx/conf/vhost
cd !$; vim default.conf //加入如下内容

server
{
listen 80 default_server; // 有这个标记的就是默认虚拟主机
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/default;
}

mkdir -p /data/wwwroot/default/
echo "This is a default site.">/data/wwwroot/default/index.html
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
curl localhost
curl -x127.0.0.1:80 123.com

关于CentOS 7中怎么搭建LNMP环境就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

目录 配置 内容 文件 编译 数据 方法 问题 环境 用户 站点 软件 错误 测试 成功 主机 密码 数据库 文章 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡豆 中国互联网科技工作委员会毛军 互联网科技官网 厦门中拓互联网络科技有限公司 华宇互联网科技 互联网科技金融公司 猪兼强互联网科技 互联网科技公司电话 腾讯科技 互联网女皇 互联网科技宣传片 互联网公司会议桌创意科技软装饰 互联网科技产品 央行互联网金融科技公司 互联网科技公司有风险吗 科技赋能视角下互联网保险发展 银行科技岗属于互联网吗 半导体行业属于互联网高科技类吗 互联网科技包装股份有限公司上市 六子台科技互联网展会 颐高云石互联网科技 互联网科技素材视频竖屏 互联网和黑科技的看法 荆州市昕露互联网络科技有限公司 中国航天科技大学国际工业互联网 移动互联网科技公司 如何创新互联网科技 北京品多多互联网科技有限公司 中国主要互联网科技公司 互联网科技企业文化 小牛互联网科技有限公司地址
0