配置LNMP(Linux, Nginx, MySQL, PHP)中的Nginx服務器涉及幾個步驟。以下是一個基本的配置指南:
首先,確保你的系統是最新的,然后安裝Nginx:
sudo apt-get update
sudo apt-get install nginx
安裝完成后,啟動Nginx服務并設置開機自啟動:
sudo systemctl start nginx
sudo systemctl enable nginx
Nginx的主要配置文件位于 /etc/nginx/nginx.conf
。你可以使用任何文本編輯器打開它,例如 vim
或 nano
。
一個基本的Nginx配置示例如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
這個配置文件定義了一個監聽80端口的服務器,它的域名是 localhost
。所有請求都被映射到 /var/www/html
目錄下的文件。
為了添加一個新的虛擬主機,你需要創建一個新的配置文件。例如,創建一個名為 example.com
的虛擬主機配置文件:
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.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
保存并退出編輯器。
然后,創建一個符號鏈接將這個配置文件鏈接到 sites-enabled
目錄:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
最后,測試Nginx配置文件的語法是否正確:
sudo nginx -t
如果沒有錯誤,重新加載Nginx配置:
sudo systemctl reload nginx
確保PHP-FPM正在運行。你可以使用以下命令啟動它:
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
在Nginx配置文件中,我們已經包含了處理PHP文件的 location ~ \.php$
塊。
安裝并配置MySQL數據庫。你可以使用以下命令安裝MySQL:
sudo apt-get install mysql-server
在安裝過程中,系統會提示你設置MySQL的root密碼。
安裝完成后,登錄到MySQL并創建一個新的數據庫和用戶:
sudo mysql -u root -p
在MySQL命令行中,運行以下命令:
CREATE DATABASE example_db;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'example_password';
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
現在,你應該能夠通過 http://example.com
訪問你的網站。如果一切配置正確,你將看到Nginx的默認歡迎頁面或你放置在 /var/www/example.com
目錄下的文件。