插件窝 干货文章 LAMP架构下如何部署应用

LAMP架构下如何部署应用

sudo Apache 配置 应用 436    来源:    2025-05-08

LAMP架构下应用部署指南

LAMP (Linux + Apache + MySQL/MariaDB + PHP/Python/Perl) 是经典的Web应用部署架构。以下是完整的部署流程:

1. 环境准备

1.1 安装LAMP组件

# Ubuntu/Debian
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql

# CentOS/RHEL
sudo yum install httpd mariadb-server mariadb php php-mysqlnd
sudo systemctl start httpd mariadb
sudo systemctl enable httpd mariadb

1.2 配置防火墙

# Ubuntu/Debian
sudo ufw allow 'Apache Full'

# CentOS/RHEL
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

2. 数据库配置

# 安全配置MySQL
sudo mysql_secure_installation

# 创建应用数据库和用户
mysql -u root -p
CREATE DATABASE appdb;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 应用部署

3.1 上传应用代码

# 通常放在/var/www/html/或创建虚拟主机
sudo mkdir -p /var/www/yourapp
sudo chown -R $USER:$USER /var/www/yourapp
# 上传代码到此目录

3.2 配置Apache虚拟主机

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

示例配置:

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/yourapp
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /var/www/yourapp>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

启用配置:

sudo a2ensite yourapp.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

4. 应用配置

4.1 配置文件权限

sudo chown -R www-data:www-data /var/www/yourapp
sudo find /var/www/yourapp -type d -exec chmod 755 {} \;
sudo find /var/www/yourapp -type f -exec chmod 644 {} \;

4.2 配置应用数据库连接

编辑应用配置文件(如config.php):

<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'appuser');
define('DB_PASS', 'password');
define('DB_NAME', 'appdb');
?>

5. 安全加固

5.1 安装SSL证书

# 使用Let's Encrypt
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com

5.2 禁用目录浏览

sudo nano /etc/apache2/apache2.conf

找到<Directory /var/www/>部分,确保有:

Options -Indexes

6. 性能优化

6.1 启用缓存

sudo a2enmod cache
sudo a2enmod expires
sudo a2enmod headers

6.2 配置OPcache (PHP)

sudo apt install php-opcache
sudo nano /etc/php/7.x/apache2/php.ini

找到并修改:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

7. 部署后检查

  • 访问应用URL测试功能
  • 检查错误日志:tail -f /var/log/apache2/error.log
  • 验证数据库连接
  • 测试所有表单和功能

常见问题解决

  1. 403 Forbidden错误

    • 检查目录权限和所有权
    • 确认SELinux状态(CentOS):sudo setenforce 0(临时禁用)
  2. 数据库连接失败

    • 确认MySQL用户权限
    • 检查MySQL绑定地址:bind-address = 127.0.0.1
  3. PHP文件被下载而非执行

    • 确认已安装PHP模块:sudo apt install libapache2-mod-php
    • 重启Apache:sudo systemctl restart apache2
  4. URL重写无效

    • 确认已启用mod_rewrite:sudo a2enmod rewrite
    • 检查.htaccess文件是否存在且内容正确

通过以上步骤,您的应用应该已成功部署在LAMP环境中。根据具体应用需求,可能还需要安装额外的PHP扩展或进行其他定制配置。