不用宝塔面板手动搭建服务器环境(通常指 LNMP/LAMP 架构)是完全可行的,而且对于学习 Linux 系统管理、提升服务器安全性和优化性能非常有帮助。
以下以 Ubuntu 20.04/22.04 或 CentOS 7/8 为例,演示如何手动搭建一套标准的 Nginx + MySQL (MariaDB) + PHP (LNMP) 环境。
第一步:更新系统与安装基础工具
首先确保系统软件源是最新的,并安装必要的依赖包。
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget vim git -y
# CentOS/RHEL
sudo yum update -y
sudo yum install epel-release -y
sudo yum install curl wget vim git -y
第二步:安装 Nginx (Web 服务器)
Nginx 是目前最流行的 Web 服务器之一,性能好且占用资源少。
-
安装 Nginx
# Ubuntu sudo apt install nginx -y # CentOS sudo yum install nginx -y -
启动并设置开机自启
sudo systemctl start nginx sudo systemctl enable nginx -
配置防火墙 (如果开启了防火墙)
# Ubuntu (UFW) sudo ufw allow 'Nginx Full' # CentOS (firewalld) sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload -
验证安装
访问http://你的服务器IP,如果看到 "Welcome to nginx!" 页面,说明安装成功。
第三步:安装数据库 (MySQL/MariaDB)
推荐使用 MariaDB(MySQL 的分支),兼容性更好且性能优异。
-
安装 MariaDB
# Ubuntu sudo apt install mariadb-server -y # CentOS sudo yum install mariadb-server -y -
启动并设置开机自启
sudo systemctl start mariadb sudo systemctl enable mariadb -
安全初始化 (重要)
运行安全脚本,设置 root 密码并移除匿名用户等风险项:sudo mysql_secure_installation按提示操作:输入新 root 密码,选择 Y 删除匿名用户、禁止远程 root 登录、删除测试数据库。
-
创建业务数据库和用户
进入数据库命令行:sudo mysql -u root -p执行 SQL 语句(示例):
CREATE DATABASE my_website CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'web_user'@'localhost' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON my_website.* TO 'web_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
第四步:安装 PHP 及扩展
PHP 是动态网页的核心。我们需要安装 PHP-FPM 和常用的扩展库。
-
安装 PHP 及相关组件
# Ubuntu (推荐 PHP 8.x) sudo apt install php-fpm php-mysql php-gd php-curl php-mbstring php-xml php-zip -y # CentOS (使用 Remi 源获取较新版本) sudo yum install remi-release -y sudo yum module reset php -y sudo yum module enable php:remi-8.1 -y sudo yum install php-fpm php-mysqlnd php-gd php-curl php-mbstring php-xml php-zip -y -
启动 PHP-FPM
sudo systemctl start php-fpm sudo systemctl enable php-fpm -
配置 PHP 时区 (防止日期错误)
编辑配置文件(路径可能略有不同):sudo vim /etc/php/8.1/fpm/php.ini # 或者 /etc/php.ini找到
date.timezone =,去掉注释并修改为:date.timezone = Asia/Shanghai保存退出后重启服务:
sudo systemctl restart php-fpm
第五步:配置 Nginx 与 PHP 联动
这是最关键的一步,需要告诉 Nginx 如何将 .php 请求转发给 PHP-FPM。
-
编辑站点配置文件
假设你的网站根目录是/var/www/html/my_site。sudo mkdir -p /var/www/html/my_site cd /var/www/html/my_site sudo touch index.php echo "<?php phpinfo(); ?>" | sudo tee index.php > /dev/null编辑 Nginx 配置:
sudo vim /etc/nginx/sites-available/default # 或者在 CentOS 中编辑 /etc/nginx/conf.d/default.conf将内容替换为如下标准配置(注意
fastcgi_pass指向本地 socket):server { listen 80; server_name your_domain_or_ip; # 替换为你的域名或 IP root /var/www/html/my_site; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } # PHP 处理配置 location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意版本号需与你安装的 PHP 版本一致 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } -
测试配置并重载 Nginx
sudo nginx -t sudo systemctl reload nginx -
权限检查
确保 Nginx 用户有权限读取文件:sudo chown -R www-data:www-data /var/www/html/my_site sudo chmod -R 755 /var/www/html/my_site
第六步:验证环境
在浏览器访问 http://你的服务器IP,你应该能看到 PHP 信息页(显示详细的 PHP 版本、扩展列表等)。如果能正常显示,说明 LNMP 环境搭建成功。
进阶建议:生产环境注意事项
手动搭建完成后,为了保障安全和稳定,建议进行以下加固:
-
配置 HTTPS (SSL)
手动申请证书很麻烦,建议使用 Certbot (Let’s Encrypt) 免费自动续期:sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain.com这会自动配置 Nginx 的 SSL 和重定向规则。
-
优化 Nginx 配置
根据实际流量调整worker_processes、连接数限制 (worker_connections) 以及开启 Gzip 压缩。 -
定期备份
不要依赖云厂商快照,编写 Shell 脚本定期备份数据库和代码到本地或其他对象存储。# 简单的数据库备份脚本示例 mysqldump -u web_user -p'password' my_website > /backup/db_$(date +%F).sql -
监控日志
定期检查 Nginx 的错误日志 (/var/log/nginx/error.log) 和 PHP 日志,排查潜在问题。
总结
手动搭建虽然初期比宝塔面板耗时,但一旦完成,你将完全掌握服务器的控制权。你可以根据需求精确裁剪软件版本、优化内存占用,并且没有 GUI 界面带来的额外安全风险。如果遇到具体的报错(如端口冲突、权限拒绝),请提供具体日志以便进一步诊断。
云小栈