温馨提示×

如何在Linux LAMP上部署应用

小樊
48
2025-09-22 16:52:24
栏目: 智能运维

如何在Linux LAMP上部署应用

LAMP(Linux、Apache、MySQL、PHP)是经典的动态网站开发环境,以下是从环境准备到应用部署的全流程步骤,覆盖常见Linux发行版(如Ubuntu、CentOS)的通用操作:

一、环境准备

  1. 系统更新:确保系统软件包为最新版本,提升兼容性与安全性。
    • Ubuntu/Debian:sudo apt update && sudo apt upgrade -y
    • CentOS/RHEL:sudo yum update -y
  2. 关闭防火墙(测试阶段可选):避免防火墙拦截HTTP/HTTPS流量(生产环境需配置放行规则)。
    • Ubuntu(ufw):sudo ufw disable
    • CentOS(firewalld):sudo systemctl stop firewalld && sudo systemctl disable firewalld
  3. 禁用SELinux(可选):若遇到权限问题,可临时禁用(编辑/etc/selinux/config,设置SELINUX=disabled,重启生效)。

二、安装LAMP组件

1. 安装Apache(Web服务器)

  • Ubuntu/Debian:sudo apt install apache2 -y
  • CentOS/RHEL:sudo yum install httpd -y
  • 启动服务并设置开机自启:
    • Ubuntu/Debian:sudo systemctl start apache2 && sudo systemctl enable apache2
    • CentOS/RHEL:sudo systemctl start httpd && sudo systemctl enable httpd
  • 验证:浏览器访问http://服务器IP,应看到Apache默认欢迎页面。

2. 安装MySQL/MariaDB(数据库)

  • Ubuntu/Debian:sudo apt install mysql-server -y
  • CentOS/RHEL:sudo yum install mysql-community-server -y(需先导入MySQL YUM仓库)
  • 运行安全脚本强化配置(设置root密码、移除匿名用户、禁止远程root登录等):
    sudo mysql_secure_installation
  • 登录验证:sudo mysql -u root -p(输入密码进入MySQL命令行)。

3. 安装PHP及常用模块

  • Ubuntu/Debian:sudo apt install php libapache2-mod-php php-mysql php-gd php-curl php-mbstring -y
  • CentOS/RHEL:sudo yum install php php-mysqlnd php-opcache php-gd php-curl php-mbstring -y
  • 重启Apache加载PHP模块:
    • Ubuntu/Debian:sudo systemctl restart apache2
    • CentOS/RHEL:sudo systemctl restart httpd
  • 验证PHP:创建/var/www/html/info.php,内容为<?php phpinfo(); ?>,浏览器访问http://服务器IP/info.php,应显示PHP信息页面。

三、配置LAMP组件

1. 配置Apache虚拟主机(可选但推荐)

  • 创建虚拟主机配置文件(以yourdomain.conf为例):
    sudo nano /etc/apache2/sites-available/yourdomain.conf(Ubuntu/Debian)或/etc/httpd/conf.d/yourdomain.conf(CentOS/RHEL)。
  • 添加以下内容(修改ServerNameDocumentRoot为实际域名/路径):
    <VirtualHost *:80>
        ServerAdmin webmaster@yourdomain.com
        ServerName yourdomain.com
        DocumentRoot /var/www/yourdomain.com
        <Directory /var/www/yourdomain.com>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All  # 允许.htaccess覆盖配置
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/yourdomain_error.log
        CustomLog ${APACHE_LOG_DIR}/yourdomain_access.log combined
    </VirtualHost>
    
  • 启用虚拟主机及重写模块:
    • Ubuntu/Debian:sudo a2ensite yourdomain.conf && sudo a2enmod rewrite && sudo systemctl restart apache2
    • CentOS/RHEL:sudo ln -s /etc/httpd/conf.d/yourdomain.conf /etc/httpd/conf.modules.d/00-base.conf && sudo systemctl restart httpd

2. 配置MySQL数据库

  • 登录MySQL:sudo mysql -u root -p
  • 创建数据库:CREATE DATABASE yourdatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 创建用户并授权(替换youruseryourpassword):
    CREATE USER 'youruser'@'localhost' IDENTIFIED BY 'yourpassword';
    GRANT ALL PRIVILEGES ON yourdatabase.* TO 'youruser'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    

3. 调整文件权限

  • 将Web根目录(如/var/www/yourdomain.com)的所有权赋予Apache用户(通常为www-dataapache):
    sudo chown -R www-data:www-data /var/www/yourdomain.com
  • 设置目录权限为755(避免权限过高导致安全问题):
    sudo chmod -R 755 /var/www/yourdomain.com

四、部署应用

  1. 上传应用文件:使用scp或FTP工具将应用文件上传至Web根目录(如/var/www/yourdomain.com)。
    示例(本地到服务器):scp -r /local/path/to/app username@服务器IP:/var/www/yourdomain.com
  2. 配置应用:修改应用配置文件(如WordPress的wp-config.php、Laravel的.env),更新数据库连接信息(数据库名、用户名、密码)。
  3. 测试应用:浏览器访问http://yourdomain.com(或服务器IP),验证应用是否正常加载。

五、安全加固(生产环境必做)

  1. 配置防火墙:仅允许HTTP(80端口)、HTTPS(443端口)流量。
    • Ubuntu(ufw):sudo ufw allow 'Apache Full' && sudo ufw enable
    • CentOS(firewalld):sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --permanent --add-service=https && sudo firewall-cmd --reload
  2. 定期更新:定期运行sudo apt update && sudo apt upgrade -y(Ubuntu/Debian)或sudo yum update -y(CentOS/RHEL),修复安全漏洞。
  3. 备份数据:定期备份数据库(mysqldump -u youruser -p yourdatabase > backup.sql)和应用文件,防止数据丢失。

通过以上步骤,即可在Linux LAMP环境中完成应用部署。根据应用需求,可能还需调整PHP配置(如upload_max_filesizememory_limit)或优化Apache性能(如启用压缩、缓存),但核心流程已覆盖绝大多数场景。

0