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安装驱动程序的具体步骤和方法有哪些?

    Linux作为开源操作系统,其驱动安装方式与Windows存在显著差异,Windows通常依赖厂商提供的封闭式安装程序,而Linux更强调模块化与开源生态,驱动安装需结合硬件类型、驱动性质(开源/闭源)及发行版特性选择方案,本文将系统介绍Linux驱动的四种主流安装方法,帮助用户高效完成驱动部署,Linux驱动……

    2025年8月30日
    24100
  • Linux环境下如何详细编译Java程序?步骤与方法有哪些?

    在Linux环境下进行Java程序的编译是Java开发的基础技能,掌握这一过程有助于理解Java代码从源文件到可执行程序的转化原理,本文将详细介绍Linux环境下编译Java程序的完整流程,包括JDK安装、环境变量配置、代码编写、编译命令使用、构建工具应用等内容,帮助读者系统掌握Java编译的核心操作,JDK的……

    2025年8月28日
    21100
  • linux中如何开ftp服务器

    Linux中,可安装vsftpd或proftpd等FTP服务器软件,配置相关参数

    2025年8月15日
    29100
  • Linux安装.gz文件的具体操作步骤是怎样的?

    在Linux系统中,.gz文件是通过gzip工具压缩的文件格式,通常用于减小文件体积以便传输或存储,与.rpm、.deb等二进制安装包不同,.gz文件本身并非可直接执行的安装程序,而是需要先解压,再根据文件内容进行后续操作,安装.gz文件的核心步骤包括解压、配置(如需要)、编译(如需要)及部署,具体方法取决于文……

    2025年8月25日
    23400
  • Linux中如何删除同一用户组的多个文件?

    在Linux系统中,文件和目录的访问权限管理是系统安全的核心之一,而用户组(Group)作为权限管理的基础单元,常用于批量管理具有相同访问需求的文件,当需要删除同一用户组的文件时,需结合文件属性查询、批量筛选及安全删除操作,确保操作精准且避免误删,本文将详细讲解Linux中删除同一group文件的完整流程、关键……

    2025年8月25日
    19200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信