溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么搭建和部署LNMP平臺環境

發布時間:2021-11-15 11:59:36 來源:億速云 閱讀:201 作者:iii 欄目:大數據
# 怎么搭建和部署LNMP平臺環境

## 一、LNMP環境概述

### 1.1 什么是LNMP
LNMP代表Linux + Nginx + MySQL + PHP組成的動態網站服務器架構,是當前主流的Web開發環境之一。與傳統的LAMP(Linux+Apache+MySQL+PHP)架構相比,LNMP具有以下特點:

- **Nginx**:輕量級高性能Web服務器,處理靜態請求效率極高
- **PHP-FPM**:FastCGI進程管理器,提供更高效的PHP解析
- **MySQL/MariaDB**:關系型數據庫管理系統
- **Linux**:穩定可靠的操作系統基礎

### 1.2 典型應用場景
- 個人博客(WordPress、Typecho等)
- 電子商務網站(Magento、OpenCart等)
- 企業官網
- API服務后端

## 二、環境準備

### 2.1 系統要求
建議使用以下Linux發行版:
- Ubuntu 20.04/22.04 LTS
- CentOS 7/8
- Debian 10/11

硬件最低配置:
- 1核CPU
- 1GB內存
- 10GB磁盤空間

### 2.2 系統更新
```bash
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS
sudo yum update -y

2.3 防火墻配置

# Ubuntu/Debian使用UFW
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

# CentOS使用firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

三、Nginx安裝與配置

3.1 安裝Nginx

# Ubuntu/Debian
sudo apt install nginx -y

# CentOS
sudo yum install epel-release -y
sudo yum install nginx -y

3.2 啟動Nginx服務

sudo systemctl start nginx
sudo systemctl enable nginx

3.3 驗證安裝

訪問服務器IP地址,應看到Nginx歡迎頁面。

3.4 基礎配置

編輯主配置文件:

sudo nano /etc/nginx/nginx.conf

建議修改的配置項:

user www-data;  # Ubuntu/Debian
# user nginx;   # CentOS

worker_processes auto;
worker_connections 1024;

keepalive_timeout 65;
gzip on;

3.5 創建虛擬主機

sudo nano /etc/nginx/sites-available/example.com

示例配置:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

啟用站點:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t  # 測試配置
sudo systemctl reload nginx

四、MySQL/MariaDB安裝與配置

4.1 安裝數據庫

# Ubuntu/Debian
sudo apt install mysql-server -y

# CentOS
sudo yum install mariadb-server -y

4.2 安全配置

sudo mysql_secure_installation

按照提示設置: 1. 設置root密碼 2. 移除匿名用戶 3. 禁止root遠程登錄 4. 移除測試數據庫 5. 重新加載權限表

4.3 創建數據庫和用戶

mysql -u root -p

# MySQL命令行
CREATE DATABASE example_db;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4.4 性能優化

編輯配置文件:

sudo nano /etc/mysql/my.cnf  # 或 /etc/my.cnf

基礎優化建議:

[mysqld]
innodb_buffer_pool_size = 256M  # 根據內存調整
max_connections = 100
query_cache_size = 32M

重啟服務:

sudo systemctl restart mysql

五、PHP安裝與配置

5.1 安裝PHP

# Ubuntu/Debian
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

# CentOS
sudo yum install php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring -y

5.2 配置PHP-FPM

sudo nano /etc/php/8.1/fpm/php.ini  # 版本號可能不同

推薦修改:

upload_max_filesize = 32M
post_max_size = 32M
memory_limit = 128M
max_execution_time = 120
date.timezone = Asia/Shanghai

5.3 配置進程管理

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

建議調整:

pm = dynamic
pm.max_children = 25
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10

5.4 重啟PHP-FPM

sudo systemctl restart php8.1-fpm

六、環境整合測試

6.1 創建測試文件

sudo mkdir -p /var/www/example.com
sudo nano /var/www/example.com/info.php

內容:

<?php phpinfo(); ?>

6.2 測試訪問

瀏覽器訪問:http://your_server_ip/info.php

應顯示PHP信息頁面,確認: - PHP版本正確 - MySQL擴展已加載 - 其他必要擴展可用

6.3 測試數據庫連接

創建測試腳本:

<?php
$db = new mysqli('localhost', 'example_user', 'strong_password', 'example_db');

if ($db->connect_error) {
    die("連接失敗: " . $db->connect_error);
}
echo "數據庫連接成功!";
?>

七、高級配置與優化

7.1 Nginx性能優化

# /etc/nginx/nginx.conf
events {
    worker_connections 4096;
    multi_accept on;
}

http {
    open_file_cache max=2000 inactive=20s;
    open_file_cache_valid 60s;
    open_file_cache_min_uses 5;
    open_file_cache_errors off;
    
    client_max_body_size 32m;
    client_body_buffer_size 128k;
}

7.2 PHP OPcache配置

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

7.3 啟用HTTPS

使用Let’s Encrypt免費證書:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com

自動續期測試:

sudo certbot renew --dry-run

八、常見問題排查

8.1 502 Bad Gateway錯誤

可能原因: - PHP-FPM未運行 - Nginx與PHP-FPM socket配置不匹配

解決方案:

sudo systemctl status php8.1-fpm
# 檢查/etc/nginx/sites-available/中的fastcgi_pass配置

8.2 數據庫連接問題

檢查: - 用戶權限 - 防火墻設置 - MySQL綁定地址

8.3 性能瓶頸診斷

工具推薦:

top
htop
nginx -T  # 查看完整配置
mysqladmin proc stat

九、維護與監控

9.1 日志管理

關鍵日志位置: - Nginx訪問日志:/var/log/nginx/access.log - Nginx錯誤日志:/var/log/nginx/error.log - PHP-FPM日志:/var/log/php8.1-fpm.log - MySQL日志:/var/log/mysql/error.log

9.2 備份策略

數據庫備份:

mysqldump -u root -p --all-databases > full_backup.sql

網站文件備份:

tar -czvf website_backup.tar.gz /var/www/

9.3 監控工具推薦

  • Prometheus + Grafana
  • Netdata
  • UptimeRobot(外部監控)

十、總結

通過本文的詳細步驟,您已經成功搭建了一個完整的LNMP環境。建議進一步學習: - Nginx高級配置(負載均衡、緩存等) - MySQL主從復制 - PHP框架(Laravel、Symfony等)部署 - 容器化部署(Docker)

定期更新系統組件以保證安全:

sudo apt update && sudo apt upgrade -y
# 或
sudo yum update -y

遇到問題時,可查閱各組件官方文檔: - Nginx: https://nginx.org - MySQL: https://dev.mysql.com/doc/ - PHP: https://www.php.net/docs.php “`

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女