溫馨提示×

如何使用LNMP進行網站開發

小樊
37
2025-10-03 08:05:56
欄目: 云計算

一、LNMP環境搭建(開發基礎)
LNMP(Linux+Nginx+MySQL+PHP)是動態網站開發的主流環境,搭建步驟如下:

1. 準備工作

選擇穩定的Linux發行版(如Ubuntu 22.04 LTS、CentOS Stream 9),確保服務器具備公網IP或本地可訪問。安裝前更新系統軟件包以修復漏洞:

sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
# 或
sudo yum update -y                      # CentOS/RHEL

關閉防火墻(測試階段可選,生產環境需配置放行規則):

sudo ufw disable                        # Ubuntu(UFW)
# 或
sudo systemctl stop firewalld             # CentOS(Firewalld)

禁用SELinux(若啟用,需修改/etc/selinux/config中的SELINUX=disabled并重啟)。

2. 安裝Nginx(Web服務器)

使用包管理器快速安裝Nginx,啟動服務并設置開機自啟:

sudo apt install nginx -y               # Ubuntu/Debian
sudo systemctl start nginx
sudo systemctl enable nginx

驗證安裝:瀏覽器訪問服務器IP,若看到Nginx歡迎頁面則說明成功。

3. 安裝MySQL(數據庫)

安裝MySQL服務器,運行安全腳本強化配置(設置root密碼、移除匿名用戶、禁止root遠程登錄):

sudo apt install mysql-server -y        # Ubuntu/Debian
sudo systemctl start mysql
sudo mysql_secure_installation          # 按提示操作

登錄MySQL驗證:

sudo mysql -u root -p                   # 輸入設置的root密碼

創建數據庫和用戶(用于網站數據存儲):

CREATE DATABASE your_database;          -- 創建數據庫
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password'; -- 創建用戶
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost'; -- 授權
FLUSH PRIVILEGES;                       -- 刷新權限
EXIT;                                   -- 退出
```。  

### 4. 安裝PHP及擴展(腳本語言)  
安裝PHP核心、MySQL擴展和PHP-FPM(FastCGI進程管理器),確保PHP能與Nginx通信:  
```bash
sudo apt install php-fpm php-mysql php-gd php-mbstring -y  # Ubuntu/Debian(常用擴展)
sudo systemctl start php7.4-fpm         # 啟動PHP-FPM(版本根據實際調整)
sudo systemctl enable php7.4-fpm

配置PHP-FPM監聽方式(修改/etc/php/7.4/fpm/pool.d/www.conf,取消listen行的注釋,默認使用Unix socket):

listen = /var/run/php/php7.4-fpm.sock

重啟PHP-FPM使配置生效:

sudo systemctl restart php7.4-fpm
```。  

### 5. 配置Nginx支持PHP  
編輯Nginx默認站點配置文件(`/etc/nginx/sites-available/default`),添加PHP處理邏輯:  
```nginx
server {
    listen 80;
    server_name your_domain_or_IP;        # 替換為域名或IP
    root /var/www/html;                   # 網站根目錄
    index index.php index.html index.htm; # 默認索引文件

    location / {
        try_files $uri $uri/ =404;        # 嘗試訪問文件,不存在則返回404
    }

    location ~ \.php$ {                   # 處理PHP文件
        include snippets/fastcgi-php.conf; # 包含FastCGI配置
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 傳遞給PHP-FPM
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 腳本路徑
        include fastcgi_params;           # 包含通用FastCGI參數
    }

    location ~ /\.ht {                    # 禁止訪問.htaccess文件
        deny all;
    }
}

測試Nginx配置語法(避免重啟失?。?/p>

sudo nginx -t

重啟Nginx應用配置:

sudo systemctl restart nginx
```。  

### 6. 驗證LNMP環境  
在網站根目錄創建`info.php`測試文件,查看PHP信息:  
```bash
sudo nano /var/www/html/info.php

輸入以下內容并保存:

<?php phpinfo(); ?>

瀏覽器訪問http://your_domain_or_IP/info.php,若顯示PHP信息頁面(包含版本、模塊等),則LNMP環境搭建成功。

二、網站開發流程
環境搭建完成后,可開始網站開發,以下是具體步驟:

1. 上傳網站文件

將本地開發的網站文件(如WordPress、自定義項目)上傳至Nginx根目錄(默認/var/www/html),可使用FTP工具(如FileZilla)、SCP命令或Git:

scp -r /local/website/path/* user@your_server_ip:/var/www/html/  # SCP上傳

修改目錄權限,確保Nginx用戶(通常為www-data)有讀寫權限:

sudo chown -R www-data:www-data /var/www/html  # 遞歸修改所有者
sudo chmod -R 755 /var/www/html                # 設置目錄權限
```。  

### 2. 創建數據庫與配置  
登錄MySQL,創建網站專用數據庫和用戶(避免使用root賬戶):  
```bash
mysql -u root -p

執行SQL語句:

CREATE DATABASE your_website_db;          -- 創建數據庫
CREATE USER 'your_website_user'@'localhost' IDENTIFIED BY 'StrongPassword123'; -- 創建用戶
GRANT ALL PRIVILEGES ON your_website_db.* TO 'your_website_user'@'localhost'; -- 授權
FLUSH PRIVILEGES;                         -- 刷新權限
EXIT;

修改網站配置文件(如WordPress的wp-config.php),填入數據庫信息:

define('DB_NAME', 'your_website_db');     // 數據庫名
define('DB_USER', 'your_website_user');   // 數據庫用戶
define('DB_PASSWORD', 'StrongPassword123'); // 數據庫密碼
define('DB_HOST', 'localhost');           // 數據庫主機
```。  

### 3. 開發與調試  
- **動態功能實現**:使用PHP連接MySQL,編寫業務邏輯(如用戶注冊、商品展示)。示例代碼(連接數據庫并查詢產品表):  
  ```php
  <?php
  $servername = "localhost";
  $username = "your_website_user";
  $password = "StrongPassword123";
  $dbname = "your_website_db";

  // 創建連接
  $conn = new mysqli($servername, $username, $password, $dbname);

  // 檢查連接
  if ($conn->connect_error) {
      die("連接失敗: " . $conn->connect_error);
  }

  // 查詢數據
  $sql = "SELECT id, name, price FROM products";
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
          echo "ID: " . $row["id"]. " - 名稱: " . $row["name"]. " - 價格: $" . $row["price"]. "<br>";
      }
  } else {
      echo "暫無產品";
  }
  $conn->close();
  ?>
  • 調試技巧:開啟PHP錯誤顯示(僅開發環境使用,生產環境關閉),修改php.ini
    display_errors = On
    error_reporting = E_ALL
    
    或在PHP文件頂部添加:
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    ```。  
    
    

4. 部署與優化

  • 域名綁定:將域名解析到服務器IP(DNS設置中添加A記錄),修改Nginx配置中的server_name為域名。
  • HTTPS配置:使用Let’s Encrypt免費SSL證書,啟用HTTPS(提升安全性):
    sudo apt install certbot python3-certbot-nginx -y  # Ubuntu/Debian
    sudo certbot --nginx -d your_domain.com -d www.your_domain.com  # 自動配置SSL
    
  • 性能優化:開啟Nginx gzip壓縮、PHP OPcache、MySQL查詢緩存,調整Nginx worker進程數(根據服務器CPU核心數)。

三、常見問題排查

  • Nginx無法啟動:檢查80端口是否被占用(sudo netstat -tuln | grep 80),或配置文件語法錯誤(sudo nginx -t)。
  • PHP文件無法解析:確認PHP-FPM服務運行(sudo systemctl status php7.4-fpm),檢查Nginx配置中的fastcgi_pass路徑是否與PHP-FPM的listen路徑一致。
  • MySQL連接失敗:確保MySQL服務運行(sudo systemctl status mysql),檢查用戶權限(mysql -u root -p中執行SHOW GRANTS FOR 'your_user'@'localhost';)。

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