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 upgrade 或 yum 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如何识别u

    Linux中,可通过lsblk查看磁盘信息识别U盘,或用`f

    2025年8月13日
    23300
  • Linux如何关闭X?两种方法详解

    关闭图形界面(X Window System)图形界面(X11/Xorg)是Linux的显示服务,关闭后系统将退回纯命令行终端(TTY),方法1:临时切换TTY终端按组合键 Ctrl + Alt + F2~F6(F1通常是图形界面,F2-F6是命令行终端)登录后执行: sudo systemctl stop d……

    2025年7月16日
    33700
  • Linux下MySQL命令行如何正确退出?具体操作步骤有哪些?

    在Linux系统中,使用MySQL命令行工具时,退出当前会话是常见操作,掌握多种退出方式能提升操作效率,本文将详细介绍Linux环境下退出MySQL命令行的不同方法、适用场景及注意事项,帮助用户灵活应对各种操作需求,进入MySQL命令行的前提要退出MySQL,需先了解如何进入MySQL命令行,通常使用以下命令登……

    2025年9月9日
    25600
  • 如何快速建立稳定连接?

    Linux远程查看方法详解在Linux系统中,远程查看和管理服务器是运维人员、开发者和IT管理员的必备技能,无论是排查故障、部署应用还是日常维护,掌握高效的远程访问方法能极大提升工作效率,以下是几种主流方案及其详细操作指南:命令行远程访问(最常用)SSH(Secure Shell)安全加密的黄金标准,适用于所有……

    2025年6月17日
    21200
  • 重启后网卡失效怎么办?

    在Linux系统中,网卡(网络接口卡)是设备联网的核心组件,当网卡未自动启用、配置变更后需重新激活,或系统重启后网络异常时,手动启动网卡是必备技能,以下详细说明多种启动方法,涵盖不同发行版和场景,操作前请确保拥有root权限(使用sudo或切换至root用户),适用于快速测试或临时启用,系统重启后配置不保留,使……

    2025年7月8日
    35800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信