要定制Debian上的LNMP(Linux+Nginx+MySQL/MariaDB+PHP)服务器,首先需要完成核心组件的安装与基础配置,这是后续扩展的基础。
在开始前,确保系统软件包为最新版本,避免兼容性问题:
sudo apt update && sudo apt upgrade -y
通过APT包管理器安装Nginx,并启动服务:
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx # 设置开机自启
验证安装:浏览器访问服务器IP,若看到Nginx默认欢迎页面则说明成功。
Debian默认仓库中的MySQL已被MariaDB取代(兼容MySQL协议),推荐安装MariaDB:
sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
安全配置:运行mysql_secure_installation脚本,设置root密码、移除匿名用户、禁止root远程登录等:
sudo mysql_secure_installation
安装PHP核心及常用扩展(如MySQL连接、GD图像处理、CURL等),确保与Nginx兼容:
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
sudo systemctl start php7.4-fpm # 版本号随Debian版本调整(如Debian 11为php8.0-fpm)
sudo systemctl enable php7.4-fpm
编辑Nginx默认站点配置文件(/etc/nginx/sites-available/default),添加PHP处理逻辑:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 路径需与PHP-FPM配置一致
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all; # 禁止访问.htaccess文件
}
}
测试Nginx配置语法并重启:
sudo nginx -t
sudo systemctl restart nginx
创建info.php文件,验证PHP是否能正常解析:
sudo nano /var/www/html/info.php
写入内容:
<?php phpinfo(); ?>
浏览器访问http://服务器IP/info.php,若看到PHP信息页面则说明配置成功。
基础环境搭建完成后,可根据业务需求扩展以下功能:
通过APT安装额外PHP扩展(如php-mysqli增强数据库功能、php-imagick处理图片):
sudo apt install php-mysqli php-imagick -y
安装后无需重启Nginx,但需重启PHP-FPM使扩展生效:
sudo systemctl restart php7.4-fpm
若需HTTP/2协议(提升传输效率),可安装nginx-extras版本(包含更多模块):
sudo apt install nginx-extras
安装后修改Nginx配置(/etc/nginx/nginx.conf),在server块中添加:
listen 443 ssl http2; # 启用HTTP/2
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
sudo apt install memcached php-memcached -y
sudo systemctl start memcached
sudo systemctl enable memcached
sudo apt install redis-server php-redis -y
sudo systemctl start redis
sudo systemctl enable redis
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install elasticsearch -y
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf -y
# 配置数据库(创建zabbix数据库及用户)
mysql -u root -p -e "CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;"
mysql -u root -p -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_password';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';"
# 导入初始数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
# 配置Zabbix服务器连接数据库(/etc/zabbix/zabbix_server.conf)
sudo nano /etc/zabbix/zabbix_server.conf
# 修改:DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=your_password
sudo systemctl restart zabbix-server zabbix-agent apache2
通过LNMP环境快速部署WordPress、Drupal等内容管理系统:
# 下载WordPress
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz -C /var/www/html/
mv /var/www/html/wordpress/* /var/www/html/
rm -rf /var/www/html/wordpress latest.tar.gz
# 设置权限
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
访问http://服务器IP,按提示完成WordPress安装。
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
sudo ufw allow 'Nginx Full'
sudo ufw enable
通过以上步骤,可在Debian上定制出满足不同业务需求的LNMP服务器。扩展功能时需注意组件兼容性(如PHP版本与扩展版本匹配),并定期更新组件以修复安全漏洞。