Linux部署PHP选LAMP方案?

环境准备

  1. 更新系统

    sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
    sudo yum update -y                      # CentOS/RHEL
  2. 安装Apache服务器

    sudo apt install apache2 -y  # Debian/Ubuntu
    sudo yum install httpd -y    # CentOS/RHEL
    sudo systemctl start apache2 && sudo systemctl enable apache2  # 启动并设置开机自启
  3. 安装PHP及扩展

    sudo apt install php libapache2-mod-php php-mysql -y  # Debian/Ubuntu
    sudo yum install php php-mysqlnd -y                   # CentOS/RHEL
    sudo systemctl restart apache2  # 重启Apache使PHP生效

部署PHP文件

  1. 上传文件到服务器

    • 通过SFTP工具(如FileZilla)或命令行(scp)将PHP文件上传至Web根目录:
      • Apache默认目录:
        • Debian/Ubuntu: /var/www/html/
        • CentOS/RHEL: /var/www/html/
      • 示例:
        scp your_file.php user@server_ip:/var/www/html/
  2. 设置文件权限(确保安全)

    sudo chown -R www-data:www-data /var/www/html/  # Debian/Ubuntu (www-data为Apache用户)
    sudo chown -R apache:apache /var/www/html/      # CentOS/RHEL
    sudo chmod -R 755 /var/www/html/                # 设置目录可执行权限
    sudo chmod 644 /var/www/html/your_file.php      # 设置文件只读权限

配置Apache支持PHP

  1. 确认PHP模块已启用

    sudo a2enmod php8.x  # Debian/Ubuntu(替换x为版本号)
    sudo systemctl restart apache2
  2. 优先级设置(确保PHP文件优先解析)
    编辑Apache配置文件:

    sudo nano /etc/apache2/mods-enabled/dir.conf  # Debian/Ubuntu

    index.php 移到首位:

    <IfModule mod_dir.c>
         DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
    </IfModule>

安全与优化

  1. 防火墙放行HTTP/HTTPS

    sudo ufw allow 80/tcp && sudo ufw allow 443/tcp  # Debian/Ubuntu
    sudo firewall-cmd --permanent --add-service={http,https}  # CentOS/RHEL
  2. 禁用危险函数
    编辑 php.ini

    sudo nano /etc/php/8.x/apache2/php.ini  # 路径根据版本调整

    修改:

    disable_functions = exec,passthru,shell_exec,system
  3. 安装SSL证书(推荐Let’s Encrypt)

    sudo apt install certbot python3-certbot-apache -y  # Debian/Ubuntu
    sudo certbot --apache -d your_domain.com

验证部署

  1. 创建测试文件 /var/www/html/info.php
    <?php phpinfo(); ?>
  2. 浏览器访问 http://your_server_ip/info.php,显示PHP配置信息即成功。

故障排查

  • 403 Forbidden:检查文件权限(chmod 644)和目录所有权(chown www-data)。
  • 500 Internal Error:查看Apache错误日志:
    sudo tail -f /var/log/apache2/error.log  # Debian/Ubuntu
    sudo journalctl -xe -u httpd             # CentOS/RHEL
  • PHP代码不执行:确认已安装 libapache2-mod-php 并重启Apache。

扩展方案

  • Nginx替代Apache
    1. 安装Nginx与PHP-FPM:
      sudo apt install nginx php-fpm -y
    2. 配置Nginx站点:
      server {
          listen 80;
          root /var/www/html;
          index index.php;
          location ~ \.php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/run/php/php8.x-fpm.sock;
          }
      }

最佳实践

  1. 定期更新:使用 apt upgradeyum update 保持软件最新。
  2. 备份配置:修改关键文件前备份(如 cp php.ini php.ini.bak)。
  3. 最小权限原则:避免使用 777 权限,推荐 755(目录)和 644(文件)。
  4. 使用版本控制:通过Git管理代码,避免直接修改生产环境文件。

引用说明:本文操作基于Ubuntu 22.04/CentOS 7实测,参考Apache官方文档(https://httpd.apache.org/docs/)、PHP手册(https://www.php.net/manual/)及Let’s Encrypt指南(https://certbot.eff.org/),安全建议遵循OWASP PHP安全规范(https://owasp.org/www-project-php-security-guide/)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7342.html

(0)
酷番叔酷番叔
上一篇 2025年7月15日 04:26
下一篇 2025年7月15日 04:44

相关推荐

  • linux如何清理阿里云服务器内存

    使用命令如`sync;

    2025年8月18日
    3300
  • Linux下用浏览器还是命令行访问网页?

    图形化浏览器(推荐普通用户使用)安装浏览器Firefox(多数Linux发行版预装):sudo apt install firefox # Debian/Ubuntusudo dnf install firefox # Fedora/CentOSChrome/Chromium:# Chromium(开源版)su……

    2025年6月30日
    5900
  • Linux如何获取迅雷下载地址?

    在Linux系统中,由于迅雷官方对Linux原生客户端的支持较为有限(早期虽有Xware但已停止更新),用户需通过替代方案实现迅雷下载功能,本文将详细介绍三种主流方法:通过Wine安装Windows版迅雷、使用命令行工具(如aria2)以及网页版迅雷,帮助用户高效获取文件,通过Wine安装Windows版迅雷W……

    2025年10月2日
    1600
  • Linux教程,如何在系统中正确创建一个新文件?

    Linux作为一款广泛使用的开源操作系统,其文件系统是管理数据的核心,掌握在Linux中创建文件的方法是日常操作和系统管理的基础技能,无论是编写脚本、编辑配置文件还是存储数据,都需要通过不同方式创建文件,本文将详细介绍Linux中创建文件的多种方法,涵盖命令行工具、文本编辑器及脚本实现,帮助用户根据不同场景选择……

    2025年9月22日
    1900
  • Linux系统如何生成SSH密钥对?详细步骤方法与操作指南解析

    在Linux系统中,密钥是保障信息安全的核心工具,广泛应用于SSH远程登录、数据加密传输、数字签名等场景,相较于传统密码认证,密钥认证基于非对称加密算法,具有安全性高(私钥本地存储,公钥传输验证)、防暴力破解能力强(无需传输密码)及支持自动化操作(如免密登录)等优势,本文将详细介绍Linux系统中常见密钥的生成……

    2025年9月30日
    1900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信