LNMP环境部署网站教程

LNMP是一个流行的网站环境组合,包括Linux操作系统、Nginx Web服务器、MySQL数据库和PHP编程语言。本文将详细介绍如何部署LNMP环境,并通过实际操作步骤指导读者完成整个部署过程。

准备工作

在开始LNMP环境部署之前,需要确保满足以下前提条件:

  1. 一台运行Linux系统(推荐CentOS)的服务器
  2. root用户权限
  3. 常用的网络工具(如wget、vim等)
  4. 基础的网络知识

检查服务器配置

首先登录服务器,使用以下命令检查服务器基本配置:

# 查看操作系统版本
cat /etc/system-release

# 查看CPU信息
lscpu

# 查看内存信息
free -h

# 查看磁盘空间
df -h

确保服务器满足基本运行要求,特别是磁盘空间要充足。

安装Nginx服务器

Nginx是一款高性能的Web服务器,具有出色的并发处理能力和稳定性,是LNMP环境中不可或缺的一环。

安装依赖组件

在安装Nginx前,需要先安装一些依赖组件:

# 安装编译所需的工具
yum install -y gcc make cmake pcre-devel openssl-devel wget

下载并安装Nginx

  1. 访问Nginx官网下载最新版本:https://nginx.org/download/

  2. 使用wget下载最新稳定版本:

# 下载Nginx-1.22.1版本(示例)
wget https://nginx.org/download/nginx-1.22.1.tar.gz

# 解压文件
tar -zxf nginx-1.22.1.tar.gz

# 进入目录
cd nginx-1.22.1
  1. 编译安装:
# 配置安装参数
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module

# 编译安装
make && make install
  1. 创建Nginx服务启动脚本:

/etc/init.d/目录下创建nginx文件,内容如下:

#!/bin/bash
# chkconfig: 2345 85 15
# description: Nginx Web Server

case "$1" in
    start)
        /usr/local/nginx/sbin/nginx
        ;;
    stop)
        /usr/local/nginx/sbin/nginx -s stop
        ;;
    restart)
        /usr/local/nginx/sbin/nginx -s reload
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
  1. 修改文件权限并开启服务:
# 赋予执行权限
chmod +x /etc/init.d/nginx

# 开启服务
service nginx start

# 设置开机自启动
chkconfig nginx on
  1. 验证安装:

打开浏览器访问http://服务器IP,如果出现"Nginx by nginx"页面,则表示安装成功。

安装MySQL数据库

MySQL是一款功能强大的关系型数据库管理系统,是LNMP环境中数据存储的核心组件。

删除系统自带的MySQL

CentOS系统通常会预装MariaDB,需要先移除:

# 卸载MariaDB
yum remove -y mariadb-server mariadb

# 删除相关配置文件
rm -rf /var/lib/mysql
rm -f /etc/my.cnf

安装MySQL社区版

  1. 添加MySQL官方仓库:
# 创建MySQL仓库文件
cat << EOF > /etc/yum.repos.d/mysql-community.repo
[mysql-community]
name=MySQL Community Edition
baseurl=https://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/mysql-community-el7-keyring.gpg
summary=MySQL Community Edition
priority=1
EOF
  1. 安装MySQL服务器:
# 安装MySQL
yum install -y mysql-community-server

# 启动MySQL服务
service mysqld start

# 检查MySQL服务状态
netstat -tln | grep 3306
  1. 初始化root密码:
# 登录MySQL进行密码设置
mysql -u root -p

# 输入root密码后执行以下命令
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
  1. 设置MySQL开机自启动:
# 设置开机自启动
chkconfig mysqld on

安装PHP编程语言

PHP是LNMP环境中的核心编程语言,负责处理Web应用的业务逻辑。

安装PHP及常用扩展

  1. 安装PHP核心:
# 安装PHP及常用扩展
yum install -y php php-cli php-fpm php-mysqlnd php-gd php-xml php-ldap php-mbstring php-curl php-pear
  1. 编辑PHP配置文件:
# 编辑php.ini配置文件
vi /etc/php.ini

# 修改以下配置项
date.timezone = Asia/Shanghai
max_execution_time = 300
memory_limit = 256M
  1. 重启PHP-FPM服务:
# 重启PHP服务
service php-fpm restart

# 在Nginx配置中使用PHP
vi /usr/local/nginx/conf/nginx.conf
  1. 添加PHP测试页面:

创建/usr/local/nginx/html/info.php文件,内容如下:

<?php phpinfo(); ?>

然后在浏览器访问http://服务器IP/info.php,如果出现PHP信息页面,则表示PHP安装成功。

部署WordPress网站

以WordPress为例,演示如何将LNMP环境应用于实际网站部署。

安装WordPress

  1. 下载WordPress最新版本:
# 下载WordPress
wget https://wordpress.org/latest.tar.gz

# 解压文件
tar -zxf latest.tar.gz

# 将文件移动到网站目录
mv wordpress /usr/local/nginx/html/

# 重命名默认文件
mv /usr/local/nginx/html/index.html /usr/local/nginx/html/index.php
  1. 创建WordPress数据库:

登录MySQL,创建数据库:

CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  1. 配置WordPress

进入/usr/local/nginx/html/wordpress目录,复制wp-config-sample.php并重命名:

cp wp-config-sample.php wp-config.php
vi wp-config.php

修改以下配置:

// 数据库配置
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', '密码' );
define( 'DB_HOST', 'localhost' );

// WordPress目录路径
define( 'WP_CONTENT_DIR', dirname( __FILE__ ) . '/wp-content' );
  1. 配置Nginx站点

创建Nginx配置文件:

vi /usr/local/nginx/conf/nginx.conf

加入以下配置:

server {
    listen       80;
    server_name  localhost;

    # 网站根目录
    root   /usr/local/nginx/html/wordpress;

    # 默认索引文件
    index  index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 重写PHP文件
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  PATH_INFO $REQUEST_URI;
        include        fastcgi_params;
    }
}
  1. 重启Nginx服务:
service nginx restart
  1. 配置防火墙:
# 开放80和3306端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
  1. 登录WordPress后台

访问http://服务器IP,按照提示进行安装配置,完成后即可使用WordPress创建内容。

优化LNMP环境

为了提升网站性能和安全性,需要对LNMP环境进行优化配置。

Nginx性能优化

  1. 修改Nginx配置:
# worker进程数
worker_processes  4;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    # 启用GZIP压缩
    gzip on;
    gzip_disable "msie6";

    # 配置GZIP压缩等级
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    # 超时设置
    client_timeout 60;
    client_body_timeout 60;
    send_timeout 60;

    server {
        # ...
    }
}
  1. 启用