如何使用LAMP或LNMP,摆脱面板,使用命令行环境建站?

在当今的互联网时代,建立一个网站已经变得相对简单,尤其是有了各种控制面板(如cPanel、Plesk等)的帮助。然而,对于追求更高灵活性和控制权的开发者来说,使用命令行环境来搭建网站是一个更好的选择。本文将详细介绍如何使用LAMP(Linux, Apache, MySQL, PHP)或LNMP(Linux, Nginx, MySQL, PHP)栈,通过命令行环境来搭建一个网站。

1. 准备工作

在开始之前,确保你已经拥有一台运行Linux操作系统的服务器。你可以选择Ubuntu、CentOS、Debian等常见的Linux发行版。本文将以Ubuntu为例进行讲解。

首先,确保你的系统是最新的:

sudo apt update
sudo apt upgrade

2. 安装LAMP或LNMP栈

2.1 安装LAMP栈

LAMP栈由Linux、Apache、MySQL和PHP组成。以下是安装步骤:

安装Apache:

sudo apt install apache2

安装MySQL:

sudo apt install mysql-server

安装PHP:

sudo apt install php libapache2-mod-php php-mysql

安装完成后,你可以通过以下命令启动并启用Apache和MySQL服务:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

2.2 安装LNMP栈

LNMP栈由Linux、Nginx、MySQL和PHP组成。以下是安装步骤:

安装Nginx:

sudo apt install nginx

安装MySQL:

sudo apt install mysql-server

安装PHP:

sudo apt install php-fpm php-mysql

安装完成后,启动并启用Nginx和MySQL服务:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql

3. 配置MySQL

安装MySQL后,建议运行安全脚本来增强安全性:

sudo mysql_secure_installation

按照提示设置root密码,并移除匿名用户、禁止远程root登录等。

4. 配置Web服务器

4.1 配置Apache

如果你使用的是LAMP栈,Apache的默认配置文件位于/etc/apache2/sites-available/000-default.conf。你可以编辑此文件来配置你的网站:

sudo nano /etc/apache2/sites-available/000-default.conf

DocumentRoot部分,指定你的网站根目录,例如:

DocumentRoot /var/www/html

保存并退出后,重启Apache服务:

sudo systemctl restart apache2

4.2 配置Nginx

如果你使用的是LNMP栈,Nginx的默认配置文件位于/etc/nginx/sites-available/default。编辑此文件来配置你的网站:

sudo nano /etc/nginx/sites-available/default

server块中,指定你的网站根目录,例如:

root /var/www/html;

保存并退出后,重启Nginx服务:

sudo systemctl restart nginx

5. 部署网站

将你的网站文件上传到/var/www/html目录。你可以使用scp命令从本地计算机上传文件:

scp -r /path/to/your/website user@your_server_ip:/var/www/html

确保文件权限正确:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

6. 测试网站

在浏览器中输入你的服务器IP地址或域名,查看网站是否正常运行。如果一切顺利,你应该能够看到你的网站内容。

7. 配置域名

如果你有一个域名,可以通过配置DNS记录将其指向你的服务器IP地址。然后在Web服务器配置文件中添加相应的域名配置。

7.1 配置Apache

/etc/apache2/sites-available/目录下创建一个新的配置文件:

sudo nano /etc/apache2/sites-available/your_domain.conf

添加以下内容:


    ServerAdmin webmaster@your_domain
    ServerName your_domain
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

启用站点并重启Apache:

sudo a2ensite your_domain.conf
sudo systemctl restart apache2

7.2 配置Nginx

/etc/nginx/sites-available/目录下创建一个新的配置文件:

sudo nano /etc/nginx/sites-available/your_domain

添加以下内容:

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

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

启用站点并重启Nginx:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
sudo systemctl restart nginx

8. 安全加固

为了确保你的网站安全,建议采取以下措施:

  • 配置防火墙,只允许必要的端口(如80、443)访问。
  • 定期更新系统和软件包。
  • 使用SSL/TLS加密网站流量。
  • 定期备份网站和数据库。

9. 结语

通过命令行环境搭建网站虽然需要一定的技术基础,但它提供了更高的灵活性和控制权。无论是使用LAMP还是LNMP栈,掌握这些技能都将使你在网站建设和运维方面更加得心应手。希望本文能帮助你成功搭建一个高效、安全的网站。