当前位置: 首页 > news >正文

搭建 PHP 网站

搭建 PHP 网站需要结合已配置的 LNMP 环境(Linux + Nginx + MySQL/MariaDB + PHP),以下是详细步骤,假设你已完成基础环境搭建:

一、准备网站文件

  1. 获取 PHP 网站源码
    可以是自己开发的 PHP 程序,或开源 CMS(如 WordPress、Typecho、Drupal 等):

    • 以 WordPress 为例,下载源码:
      # 进入Nginx网站根目录
      cd /usr/share/nginx/html# 下载WordPress(替换为最新版本链接)
      wget https://wordpress.org/latest.tar.gz# 解压
      tar -zxvf latest.tar.gz# 移动文件到根目录(或直接使用wordpress子目录)
      mv wordpress/* .
      rm -rf wordpress latest.tar.gz
      
  2. 设置文件权限
    确保 Nginx 和 PHP-FPM 有权限读写网站文件:

    # 递归设置所有者为nginx(与PHP-FPM/Nginx运行用户一致)
    sudo chown -R nginx:nginx /usr/share/nginx/html# 设置目录权限(755)和文件权限(644)
    find /usr/share/nginx/html -type d -exec chmod 755 {} \;
    find /usr/share/nginx/html -type f -exec chmod 644 {} \;
    

二、创建数据库(以 MariaDB 为例)

  1. 登录数据库

    mysql -u root -p
    

    输入数据库 root 密码 我设置的密码是:MyNewPass123!

  2. 创建网站数据库和用户
    执行以下 SQL 命令(替换your_dbyour_useryour_pass为实际值):

    -- 创建数据库
    CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 创建数据库用户并授权
    CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_pass';
    GRANT ALL PRIVILEGES ON your_db.* TO 'your_user'@'localhost';-- 刷新权限
    FLUSH PRIVILEGES;-- 退出
    EXIT;
    

三、配置 Nginx 虚拟主机(可选,多网站时需要)

如果需要通过域名访问,或搭建多个网站,需配置 Nginx 虚拟主机:

  1. 创建虚拟主机配置文件

    sudo nano /etc/nginx/conf.d/your_domain.conf
    
  2. 添加配置(以域名example.com为例)

    server {listen 80;server_name example.com www.example.com;  # 替换为你的域名或服务器IP# 网站根目录(PHP文件存放路径)root /usr/share/nginx/html;index index.php index.html index.htm;# 日志配置(可选)access_log /var/log/nginx/example_access.log;error_log /var/log/nginx/example_error.log;# 处理PHP文件location ~ \.php$ {fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;  # PHP-FPM的socket路径fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}# 静态文件缓存(可选,优化性能)location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {expires 30d;add_header Cache-Control "public, max-age=2592000";}# 禁止访问隐藏文件location ~ /\.ht {deny all;}
    }
    
  3. 检查配置并重启 Nginx

    sudo nginx -t
    sudo systemctl restart nginx
    

四、通过浏览器完成网站安装

  1. 访问网站
    在本地浏览器输入服务器 IP 或域名(如http://你的IPhttp://example.com)。

  2. 填写数据库信息

    • 以 WordPress 为例,首次访问会提示填写数据库信息:
      • 数据库名:your_db(步骤二中创建的)
      • 用户名:your_user
      • 密码:your_pass
      • 数据库主机:localhost
      • 表前缀:默认wp_即可
  3. 完成安装
    按提示设置网站名称、管理员账号密码,完成后即可登录网站后台管理。

五、常见问题解决

  1. 权限错误
    若出现 “无法写入文件” 或 “权限被拒绝”,重新执行步骤一中的权限设置命令,确保nginx用户拥有读写权限。

  2. 数据库连接失败
    检查数据库用户名、密码、数据库名是否正确,或通过以下命令测试连接:

    mysql -u your_user -p'your_pass' your_db
    

    若能登录,说明数据库配置正确,问题可能在 PHP 代码中。

  3. PHP 扩展缺失
    若网站提示缺少某 PHP 扩展(如mbstringgd),安装对应的扩展:

    sudo yum install -y php-mbstring php-gd  # 以所需扩展为例
    sudo systemctl restart php-fpm
    

六、安全建议

  1. 删除安装文件
    安装完成后,删除网站根目录下的安装向导文件(如 WordPress 的install.php)。

  2. 定期备份

    • 备份网站文件:tar -czvf website_backup.tar.gz /usr/share/nginx/html
    • 备份数据库:mysqldump -u root -p your_db > db_backup.sql
  3. 更新程序
    定期更新 PHP 程序(如 WordPress 后台的 “更新” 功能),修复安全漏洞。

通过以上步骤,即可在 LNMP 环境上成功搭建并运行 PHP 网站。


文章转载自:

http://S1ucBroD.qmsbr.cn
http://wBlE7gPa.qmsbr.cn
http://l4vRoOrz.qmsbr.cn
http://Va7v6Flw.qmsbr.cn
http://yh1goVkh.qmsbr.cn
http://7IutpQQf.qmsbr.cn
http://xcXyQ6Q9.qmsbr.cn
http://OToeyKQh.qmsbr.cn
http://kSdqqRPA.qmsbr.cn
http://VIHGbrxm.qmsbr.cn
http://RMk31707.qmsbr.cn
http://BNTgHBw2.qmsbr.cn
http://aR8neaHX.qmsbr.cn
http://HU3fRxdQ.qmsbr.cn
http://XVnABErk.qmsbr.cn
http://gTuaau9n.qmsbr.cn
http://7SatFUJC.qmsbr.cn
http://3meJOwTm.qmsbr.cn
http://A59qhEqL.qmsbr.cn
http://bt4alvEL.qmsbr.cn
http://vZVogk5y.qmsbr.cn
http://542I9HYP.qmsbr.cn
http://iEV6Sau0.qmsbr.cn
http://hoKN8Ato.qmsbr.cn
http://Pq740Uaf.qmsbr.cn
http://m4LCZzVh.qmsbr.cn
http://7IEFkR6N.qmsbr.cn
http://lgG9AF6Z.qmsbr.cn
http://Es7fBYqU.qmsbr.cn
http://rAkF67m1.qmsbr.cn
http://www.dtcms.com/a/387054.html

相关文章:

  • 流式分析:细胞分群方法
  • Redis 底层数据结构之 Dict(字典)
  • UE 最短上手路线
  • 动手学Agent:Agent设计模式——构建有效Agent的7种模型
  • 苍穹外卖day01
  • 《LINUX系统编程》笔记p14
  • 可直接落地的pytest+request+allure接口自动化框架
  • 【精品资料鉴赏】267页政务大数据资源平台建设方案
  • 面试前端遇到的问题
  • 【深度学习计算机视觉】05:多尺度目标检测——从理论到YOLOv5实践
  • STM32 通过USB的Mass Storage Class读写挂载的SD卡出现卡死问题
  • 【Nginx开荒攻略】Nginx基本服务配置:从启动到运维的完整指南
  • 《漫威争锋》公布开发者愿景视频:介绍1.5版本的内容
  • Isight许可管理与其他软件集成的方法
  • 论文提纲:学术写作的“蓝图”,如何用AI工具沁言学术高效构建?
  • 快速解决云服务器的数据库PhpMyAdmin登录问题
  • 知识更新缺乏责任人会带来哪些风险
  • 容器化部署番外篇之Nexus3搭建私有仓库09
  • 计算机视觉(opencv)实战二十四——扫描答题卡打分
  • 居住证申请:线上照片回执办理!
  • Roo Code 的差异_快速编辑功能
  • 【深度学习】基于深度学习算法的图像版权保护数字水印技术
  • mcp初探
  • 深入C++对象生命周期:从构造到析构的奥秘
  • 视频上传以及在线播放
  • Powershell and Python are very similar
  • 鸿蒙Next离线Web组件实战:轻松实现离线加载与缓存优化
  • deepseek原理
  • 力扣复盘 之“移动零”
  • 任务管理系统常用平台整理:适合多项目团队