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图形界面与命令行如何快速粘贴?

    图形界面(GUI)复制粘贴适用于GNOME、KDE、XFCE等桌面环境,操作与Windows/macOS类似:鼠标操作选中文本/文件 → 右键点击 → 选择”复制”(Copy) → 到目标位置右键点击 → 选择”粘贴”(Paste),文件管理器:直接拖拽文件到目标文件夹即完成复制(按住Ctrl拖拽为移动),通用……

    2025年7月8日
    3400
  • Linux支持哪种U盘格式最合适?

    在Linux系统中读取U盘是一个常见需求,无论您是日常使用还是系统管理,理解其工作原理和操作步骤都至关重要,Linux内核原生支持多种文件系统,但不同U盘格式(如FAT32、NTFS、exFAT)的兼容性存在差异,以下是详细指南:FAT32兼容性最佳:所有Linux发行版(Ubuntu、Fedora等)无需额外……

    2025年7月29日
    1800
  • linux如何启动ftp

    Linux 中,可通过安装 vsftpd 服务,使用命令 `systemctl start vsft

    2025年8月16日
    1000
  • 刻录Linux竟如此简单?

    将Linux系统镜像文件写入U盘或光盘的过程称为刻录,其目的是制作一个可启动的安装介质,用于在计算机上安装或运行Linux操作系统,通常需要专用刻录工具完成。

    2025年7月25日
    2400
  • 如何快速获取设备标识符?

    在Linux系统中,mount命令是管理存储设备的核心工具,用于将外部存储设备(如硬盘、U盘、ISO镜像等)挂载到目录树中,使数据可访问,以下为详细使用指南:mount命令基础基本语法mount [选项] [设备源] [挂载点]设备源:如 /dev/sdb1(物理分区)、/path/to/image.iso(镜……

    2025年7月7日
    3300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信