Ubuntu安装常见问题如何解决?

在Linux服务器上搭建PHP环境是部署动态网站的基础步骤,以下以Ubuntu 22.04CentOS 7为例,提供两种主流方案的详细流程(LAMP:Linux + Apache + MySQL + PHP),所有操作需通过SSH连接服务器执行。


准备工作

  1. 更新系统

    # Ubuntu
    sudo apt update && sudo apt upgrade -y
    # CentOS
    sudo yum update -y
  2. 安装必要工具

    # Ubuntu
    sudo apt install -y curl wget
    # CentOS
    sudo yum install -y curl wget

方案1:LAMP环境(Apache)

步骤1:安装Apache

sudo systemctl enable --now apache2
# CentOS
sudo yum install -y httpd
sudo systemctl enable --now httpd
  • 验证:浏览器访问 http://服务器IP,出现Apache欢迎页即成功。

步骤2:安装MySQL/MariaDB

sudo mysql_secure_installation  # 按提示设置root密码
# CentOS
sudo yum install -y mariadb-server
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

步骤3:安装PHP及扩展

# Ubuntu(PHP 8.1)
sudo apt install -y php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml
# CentOS(需先启用EPEL和Remi仓库)
sudo yum install -y epel-release
sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php81
sudo yum install -y php php-mysqlnd php-gd php-xml php-mbstring

步骤4:配置Apache支持PHP

  1. 修改配置文件:

    # Ubuntu
    sudo nano /etc/apache2/mods-enabled/dir.conf
    # 将 `index.php` 移到文件列表首位:  
    # DirectoryIndex index.php index.html ...
    # CentOS
    sudo nano /etc/httpd/conf/httpd.conf
    # 在 `<Directory /var/www/html>` 段内添加:  
    # DirectoryIndex index.php index.html
  2. 重启Apache:

    # Ubuntu
    sudo systemctl restart apache2
    # CentOS
    sudo systemctl restart httpd

方案2:LEMP环境(Nginx)

步骤1:安装Nginx

sudo systemctl enable --now nginx
# CentOS
sudo yum install -y nginx
sudo systemctl enable --now nginx

步骤2:安装PHP-FPM

# CentOS(使用Remi仓库)
sudo yum install -y php-fpm php-mysqlnd

步骤3:配置Nginx支持PHP

  1. 编辑Nginx默认站点配置:

    sudo nano /etc/nginx/sites-available/default  # Ubuntu
    sudo nano /etc/nginx/conf.d/default.conf      # CentOS
  2. server 块内添加:

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;  # Ubuntu
        # include fastcgi_params;           # CentOS
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # 版本路径需匹配实际
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
  3. 重启Nginx:

    sudo systemctl restart nginx
    sudo systemctl restart php-fpm  # 重启PHP-FPM服务

测试PHP环境

  1. 创建测试文件:
    echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
  2. 浏览器访问 http://服务器IP/info.php,显示PHP配置信息即成功。
    安全提示:测试后务必删除此文件:

    sudo rm /var/www/html/info.php

安全加固建议

  1. 防火墙设置

    # Ubuntu(允许HTTP/HTTPS)
    sudo ufw allow 'Apache Full'
    # CentOS(放行80/443端口)
    sudo firewall-cmd --permanent --add-service=http --add-service=https
    sudo firewall-cmd --reload
  2. PHP安全配置

    • 编辑 /etc/php/8.1/apache2/php.ini(路径因版本而异):
      expose_php = Off          # 隐藏PHP版本
      disable_functions = exec,system,passthru # 禁用危险函数
      cgi.fix_pathinfo=0        # 防止路径遍历攻击
  3. 定期更新

    # Ubuntu
    sudo apt update && sudo apt upgrade
    # CentOS
    sudo yum update

常见问题解决

  1. PHP文件被直接下载

    • 原因:Web服务器未关联PHP处理器。
    • 解决:检查Apache的 dir.conf 或Nginx的PHP配置块是否正确。
  2. 数据库连接失败

    • 检查MySQL用户权限:
      CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码';
      GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'localhost';
      FLUSH PRIVILEGES;
  3. 502 Bad Gateway(Nginx)

    • 确认PHP-FPM服务运行:systemctl status php-fpm
    • 检查Nginx配置中 fastcgi_pass 的sock路径是否匹配。

引用说明

本文参考官方文档:

  • Apache HTTP Server
  • Nginx官方文档
  • PHP手册
  • MariaDB知识库

重要提示:生产环境务必遵循最小权限原则,定期备份数据,并使用HTTPS加密传输。

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

(0)
酷番叔酷番叔
上一篇 2025年6月17日 19:00
下一篇 2025年6月17日 19:22

相关推荐

  • 哪个快捷键能一键终止程序?

    在Linux系统中,ping命令是网络诊断的常用工具,用于测试主机之间的连通性,它通过发送ICMP数据包并等待响应来工作,默认情况下,ping会持续运行直到手动停止,以下是结束ping操作的几种方法,适用于不同场景:操作:按下组合键 Ctrl + C(Control键 + C键),原理:向当前终端的前台进程发送……

    2025年6月13日
    1500
  • 硬盘分区到底是什么?

    分区是将物理硬盘划分为多个独立逻辑区域的操作,每个分区可安装不同操作系统或存储不同数据,便于系统管理、数据隔离和性能优化。

    3天前
    800
  • 如何按字母降序排列文件内容?

    在Linux系统中,降序排列数据通常通过sort命令实现,结合其反向排序选项-r,以下是详细操作指南:核心命令语法sort -r [选项] [文件]-r(–reverse):核心降序参数,将默认升序转为降序,常用辅助选项:-n:按数值大小排序(避免”10″排在”2″前),-k:指定排序的列(如-k 2表示按第……

    2025年7月1日
    1000
  • Linux启动隐藏哪些秘密?

    电源启动与硬件自检(BIOS/UEFI阶段)通电自检(POST)按下电源键后,主板固件(BIOS或UEFI)启动:BIOS(传统模式):检测CPU、内存、硬盘等基础硬件,通过蜂鸣声或屏幕提示错误,UEFI(现代标准):图形化界面,支持大容量硬盘和安全启动(Secure Boot),速度更快,用户可见现象:屏幕显……

    6天前
    1100
  • 为什么ifconfig命令至今仍被广泛使用?

    检查网络接口状态首先确认网卡状态和名称:ip link showifconfig -a输出关键信息:eth0、enp0s3:有线网卡(名称因系统而异)wlan0:无线网卡state UP:已启用;state DOWN:未启用通用激活方法(临时生效)启用指定网卡sudo ip link set eth0 up……

    2025年7月4日
    1100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信