Ubuntu服务器安装与PHP网站搭建完整指南
很多开发者在搭建个人博客、企业网站或者测试环境时,都会选择Ubuntu服务器作为运行环境,搭配PHP可以高效支撑各类动态网站服务。本文将一步步带你完成Ubuntu服务器的安装,以及PHP网站环境的搭建,全程操作简单清晰,新手也能轻松上手。
一、Ubuntu服务器安装准备
在开始安装前,需要准备好以下材料:
- 一台空闲的电脑或者云服务器,本文以物理机安装为例,云服务器操作逻辑基本一致
- 一个容量不小于4G的U盘
- Ubuntu Server镜像文件,建议选择长期支持版本(LTS),稳定性更有保障
- 镜像写入工具,比如Rufus或者balenaEtcher
二、制作Ubuntu服务器安装启动盘
首先将下载好的Ubuntu Server镜像写入U盘,以Rufus为例,操作步骤很简单:
- 将U盘插入电脑,打开Rufus软件,软件会自动识别到U盘
- 点击“选择”按钮,找到下载好的Ubuntu Server镜像文件
- 分区类型选择GPT,目标系统类型选择UEFI(如果是老电脑也可以选择MBR+BIOS)
- 点击“开始”按钮,等待镜像写入完成即可
三、安装Ubuntu服务器系统
写入完成后,将U盘插入要安装系统的电脑,开机时按对应快捷键进入启动项选择界面(常见快捷键有F12、Del、F2等,不同主板快捷键不同),选择从U盘启动。
进入安装界面后,按照以下流程操作:
- 选择安装语言,建议选择English或者简体中文,后续操作根据提示选择即可
- 配置键盘布局,一般选择默认的US键盘布局即可
- 配置网络,如果是有线网络,系统会自动获取IP,如果是无线网络,按照提示选择对应WiFi并输入密码
- 配置代理,如果没有使用代理,直接留空下一步即可
- 配置镜像源,默认是Ubuntu官方源,国内用户可以替换为阿里云、清华源等国内镜像源,提升下载速度,比如替换为
http://mirrors.ipipp.com/ubuntu - 磁盘分区,新手建议选择“使用整个磁盘”自动分区,高级用户可以选择手动分区自定义配置
- 设置用户账号,输入用户名、密码,建议勾选“安装OpenSSH server”,方便后续远程连接服务器
- 等待系统安装完成,提示移除安装介质后重启电脑,Ubuntu服务器就安装好了
四、基础环境配置
安装完成后,使用设置的账号密码登录服务器,首先更新系统软件包到最新版本:
# 更新软件包列表 sudo apt update # 升级所有已安装的软件包 sudo apt upgrade -y
安装完成后建议重启一次服务器,让更新生效:
sudo reboot
五、安装PHP与Web服务环境
要运行PHP网站,我们需要安装Web服务器、PHP解释器以及数据库,这里选择Nginx作为Web服务器,MySQL作为数据库,搭配PHP8.2版本:
1. 安装Nginx
执行以下命令安装Nginx:
sudo apt install nginx -y
安装完成后,在浏览器中输入服务器的IP地址,如果看到Nginx的默认欢迎页面,说明Nginx安装成功。
2. 安装MySQL数据库
执行以下命令安装MySQL:
sudo apt install mysql-server -y
安装完成后,运行安全配置脚本,按照提示设置root密码,移除匿名用户,禁止root远程登录等:
sudo mysql_secure_installation
3. 安装PHP及常用扩展
执行以下命令安装PHP8.2以及Nginx、MySQL适配的扩展:
# 安装PHP核心以及FPM sudo apt install php8.2 php8.2-fpm -y # 安装MySQL扩展,用于PHP连接MySQL数据库 sudo apt install php8.2-mysql -y # 安装常用扩展,比如处理JSON、XML、CURL请求等 sudo apt install php8.2-json php8.2-xml php8.2-curl php8.2-gd php8.2-mbstring -y
六、配置Nginx运行PHP网站
接下来配置Nginx,让它可以正确处理PHP请求。首先创建一个新的网站配置文件:
sudo nano /etc/nginx/sites-available/php-site
在打开的文件中粘贴以下配置内容,注意替换其中的域名为你自己的域名或者服务器IP:
server {
# 监听80端口,HTTP默认端口
listen 80;
# 你的域名或者服务器IP,多个可以用空格分隔
server_name _;
# 网站根目录,后续PHP文件放在这里
root /var/www/php-site;
# 默认首页文件
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# 处理PHP文件的配置
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# 指向PHP-FPM的监听地址,默认是unix socket
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
}保存退出后,创建网站根目录,并设置权限:
# 创建网站目录 sudo mkdir -p /var/www/php-site # 设置目录所有者为当前用户,方便后续上传文件 sudo chown -R $USER:$USER /var/www/php-site # 设置目录权限 sudo chmod -R 755 /var/www/php-site
然后启用刚才创建的网站配置,禁用默认配置:
# 建立软链接启用配置 sudo ln -s /etc/nginx/sites-available/php-site /etc/nginx/sites-enabled/ # 删除默认配置软链接 sudo rm /etc/nginx/sites-enabled/default
测试Nginx配置是否有语法错误:
sudo nginx -t
如果没有报错,重启Nginx和PHP-FPM服务让配置生效:
sudo systemctl restart nginx sudo systemctl restart php8.2-fpm
七、测试PHP网站运行
在网站根目录下创建一个测试PHP文件:
nano /var/www/php-site/info.php
在文件中写入以下内容:
<?php // 输出PHP环境信息 phpinfo(); ?>
保存退出后,在浏览器中访问 http://你的服务器IP/info.php,如果看到PHP的环境信息页面,说明PHP网站环境已经搭建成功。
测试完成后,建议删除info.php文件,避免泄露服务器环境信息:
rm /var/www/php-site/info.php
八、上传部署PHP网站
现在你可以将自己开发好的PHP网站文件上传到 /var/www/php-site 目录下,如果是使用框架开发的网站(比如Laravel、ThinkPHP等),还需要根据框架的要求调整Nginx的伪静态配置,以及安装对应的PHP扩展,具体操作可以参考对应框架的官方文档。
如果需要使用域名访问网站,只需要将域名解析到服务器的公网IP,然后修改Nginx配置中的 server_name 字段为你自己的域名,重启Nginx即可。
常见问题排查
- 如果访问PHP文件显示下载而不是直接执行,一般是Nginx的PHP配置有误,检查fastcgi_pass的路径是否正确,PHP-FPM服务是否正常运行
- 如果网站出现权限错误,检查网站目录的所有者和权限是否正确,Nginx运行的用户(一般是www-data)是否有读取文件的权限
- 如果MySQL连接失败,检查MySQL服务是否运行,PHP的mysql扩展是否安装,连接参数是否正确