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终端默认的黑白配色可能造成视觉疲劳,个性化颜色方案可提升:工作效率:高对比度配色增强命令可读性个性化体验:匹配桌面主题或个人审美护眼需求:暗色模式减少蓝光刺激以下是5种主流方法,涵盖不同技术需求:方法1:通过环境变量修改(临时生效)适用场景:快速测试颜色效果# 背景色+文字色组……

    2025年7月21日
    3000
  • Linux下如何高效查看文件目录?

    ls 命令(最常用)功能:列出当前目录下的文件和子目录,基础用法:ls # 列出非隐藏文件(简单视图)ls -l # 详细列表(权限、所有者、大小、修改时间)ls -a # 显示所有文件(包括隐藏文件,如 .config)ls -lh # 人性化显示文件大小(如 KB/MB)ls -t # 按修改时间排序(最新……

    2025年6月15日
    3200
  • Linux如何判断文件类型?常用命令有哪些?

    Linux作为多用户、多任务的操作系统,文件管理是其核心功能之一,准确判断文件类型是系统运维、软件开发和日常使用中的基础技能,因为不同类型的文件(如普通文件、目录、可执行文件、设备文件等)具有不同的操作规则和权限要求,Linux系统不依赖文件扩展名(如.txt或.exe)来判断文件类型,而是通过文件属性、内容特……

    2025年8月24日
    1200
  • Linux多终端操作如何效率翻倍?6大技巧揭秘

    图形化桌面环境(推荐新手)快捷键启动(通用)Ctrl+Alt+T:适用于Ubuntu、Debian、Fedora等主流发行版(GNOME/KDE桌面),Ctrl+Shift+N:在已打开的终端窗口中快速创建新标签页(支持Tabby、GNOME Terminal等),效果:立即弹出新终端窗口或标签页,菜单启动点击……

    2025年7月31日
    2300
  • Linux系统如何重新安装字符集?详细操作步骤与方法详解?

    Linux系统中,字符集(Character Set)是用于处理和显示文本数据的编码规则,而区域设置(Locale)则基于字符集定义了语言、时间格式、货币符号等本地化信息,当系统出现乱码、无法显示特定语言字符,或需要切换字符集时,就需要重新配置或“重新安装”字符集相关设置,需要注意的是,Linux的字符集配置并……

    2025年8月25日
    1200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信