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配置文件修改后不重启如何生效?

    在Linux系统中,修改配置文件后通常需要重启服务或系统才能使配置生效,但重启可能导致服务中断或影响业务连续性,多数场景下可通过特定命令让配置立即生效,既保证效率又减少停机时间,不同类型的配置文件对应不同的生效方式,需结合具体场景选择合适方法,对于系统服务配置,如Nginx、Apache、MySQL等,通常使用……

    2025年10月2日
    17400
  • 掌握哪些命令行工具能事半功倍?

    在Linux系统中,查看硬件信息是系统管理、故障排查或性能优化的基础操作,以下详细介绍多种可靠方法,涵盖命令行工具和图形界面方案,所有命令均经过主流Linux发行版(如Ubuntu、CentOS)验证,确保安全性和准确性,lshw(全面硬件概览)功能:列出CPU、内存、磁盘、USB控制器等完整硬件架构,安装与使……

    2025年7月6日
    20100
  • Linux服务器内存过高如何排查解决?实用方法步骤全攻略

    Linux系统在日常运行中,管理员常会遇到内存占用过高的情况,但“内存过高”并不等同于“内存不足”,Linux的内存管理机制会主动将空闲内存用于缓存和缓冲区,以提高文件读写和系统响应速度,因此通过free命令查看时,“used”内存较高可能是正常现象,真正需要关注的是是否存在内存泄漏、进程异常占用内存导致系统卡……

    2025年10月8日
    16300
  • Linux系统如何下载QQ?详细步骤与方法指南?

    在Linux系统中使用QQ,由于官方长期未提供原生客户端,用户需通过兼容层、第三方工具或官方测试版实现,以下是几种主流方法的详细步骤及注意事项,使用Wine兼容层安装Windows版QQWine是Windows API的兼容层,可在Linux中运行部分Windows程序,适合追求完整功能的用户,步骤如下:安装W……

    2025年10月6日
    20600
  • Linux系统如何正确删除用户账户?

    在Linux系统中,用户管理是系统维护的重要环节,删除无用或过期的用户不仅能提升系统安全性,还能优化资源占用,删除用户看似简单,但涉及用户文件、权限配置、进程管理等细节,需谨慎操作以避免系统异常,本文将详细讲解Linux系统中删除用户的完整流程、注意事项及进阶技巧,基础删除方法:使用userdel命令Linux……

    2025年8月29日
    15900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信