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

搭建PHP开发环境:Linux篇

目录

一、引言

二、环境准备

三、安装Web服务器(Apache)

Ubuntu/Debian系统:

CentOS/Red Hat系统:

四、安装PHP解释器

Ubuntu/Debian系统:

CentOS/Red Hat系统:

五、配置Apache以支持PHP

Ubuntu/Debian系统:

CentOS/Red Hat系统:

六、安装和配置数据库(MySQL/MariaDB)

Ubuntu/Debian系统:

CentOS/Red Hat系统:

七、创建PHP示例页面

八、配置PHP以连接数据库

Ubuntu/Debian系统:

CentOS/Red Hat系统:

Ubuntu/Debian系统:

CentOS/Red Hat系统:

九、编写PHP数据库连接示例

十、使用PHP处理表单数据

十一、总结


一、引言

PHP是一种流行的服务器端脚本语言,适用于Web开发,并可嵌入HTML中。在Linux环境下搭建PHP开发环境,因其稳定性、安全性和高度的可定制性,成为众多开发者的首选。本文旨在指导新手朋友在Linux系统上搭建PHP开发环境,并通过案例和代码来加深理解。

二、环境准备

在开始搭建之前,请确保你的Linux系统已经安装并配置好了基本的开发工具和网络环境。以下是一个通用的Linux发行版环境准备清单:

  • 安装Linux操作系统(如Ubuntu、CentOS等)。
  • 更新系统和软件包列表。
  • 安装必要的开发工具,如gcc、make等。
  • 配置网络连接,确保能够访问互联网。

三、安装Web服务器(Apache)

Apache是世界上最流行的Web服务器软件之一,支持PHP的解析和运行。在Linux上,你可以通过包管理器来安装Apache。

Ubuntu/Debian系统:

sudo apt-get update  
sudo apt-get install apache2

安装完成后,你可以通过访问http://localhost来检查Apache是否成功启动。

CentOS/Red Hat系统:

sudo yum update  
sudo yum install httpd  
sudo systemctl start httpd  
sudo systemctl enable httpd

四、安装PHP解释器

接下来,你需要安装PHP解释器。同样,你可以通过包管理器来安装。

Ubuntu/Debian系统:

sudo apt-get install php libapache2-mod-php

这将安装PHP及其Apache模块。

CentOS/Red Hat系统:

sudo yum install php php-common php-cli php-fpm php-mysqlnd  
sudo yum install httpd-tools

注意,这里还安装了PHP-FPM(FastCGI Process Manager),它是一个用于处理PHP请求的FastCGI管理器。

五、配置Apache以支持PHP

在Apache中启用对PHP的支持需要进行一些配置。对于Ubuntu/Debian系统,你需要启用mod_php模块并重启Apache服务。

Ubuntu/Debian系统:

sudo a2enmod php7.4  # 根据你安装的PHP版本选择,例如7.4  
sudo service apache2 restart

对于CentOS/Red Hat系统,你需要在Apache的配置文件中添加对PHP的支持。

CentOS/Red Hat系统:

编辑Apache的配置文件/etc/httpd/conf/httpd.conf,找到以下行并取消注释(去掉前面的#):

#LoadModule php7_module modules/libphp7.so  
#AddHandler application/x-httpd-php .php  
#AddType text/html .php  
#DirectoryIndex index.php index.html

改为:

LoadModule php7_module modules/libphp7.so  # 根据你的PHP版本修改  
AddHandler application/x-httpd-php .php  
AddType text/html .php  
DirectoryIndex index.php index.html

然后重启Apache服务:

sudo systemctl restart httpd

六、安装和配置数据库(MySQL/MariaDB)

PHP经常与数据库一起使用,其中MySQL和MariaDB是两种流行的选择。以下是如何在Linux上安装和配置它们的步骤。

Ubuntu/Debian系统:

sudo apt-get install mysql-server

安装过程中会提示你设置root用户的密码。

CentOS/Red Hat系统:

sudo yum install mariadb-server  
sudo systemctl start mariadb  
sudo systemctl enable mariadb

安装完成后,你需要进行安全设置,如设置root密码、删除匿名用户等。在MySQL中,你可以使用mysql_secure_installation脚本来完成这些操作;在MariaDB中,可以使用mysql_secure_installation(尽管命令可能略有不同)。

七、创建PHP示例页面

现在,你的PHP开发环境已经搭建好了。为了验证一切是否正常工作,你可以创建一个简单的PHP页面。

创建一个名为info.php的文件,并将其放在Apache的Web根目录下(通常是/var/www/html/)。
在info.php文件中输入以下代码:

<?php  
phpinfo();  
?>

这段代码会调用PHP的phpinfo()函数,该函数将返回有关PHP配置的信息。

访问http://localhost/info.php来查看PHP信息页面。
如果一切正常,你应该能看到一个包含大量PHP配置信息的页面

八、配置PHP以连接数据库

为了使PHP能够连接到数据库,我们需要安装PHP的数据库扩展,并配置PHP以使用它。在大多数情况下,我们会使用php-mysql或php-mysqli扩展来连接MySQL或MariaDB数据库。

Ubuntu/Debian系统:

sudo apt-get install php-mysql

或者,如果你使用的是MySQLi扩展(推荐):

sudo apt-get install php-mysqli

CentOS/Red Hat系统:

sudo yum install php-mysqlnd

或者,如果你使用的是MySQLi扩展:

sudo yum install php-php-mysqli

安装完成后,你需要重启Apache服务以使更改生效:

Ubuntu/Debian系统:

sudo service apache2 restart

CentOS/Red Hat系统:

sudo systemctl restart httpd

九、编写PHP数据库连接示例

现在我们可以编写一个简单的PHP脚本来连接到数据库并执行查询。

创建一个名为db_connect.php的文件,并将其放在Apache的Web根目录下。
在db_connect.php文件中输入以下代码:

<?php  
$servername = "localhost";  
$username = "your_username";  // 替换为你的数据库用户名  
$password = "your_password";  // 替换为你的数据库密码  
$dbname = "your_database";    // 替换为你的数据库名  // 创建连接  
$conn = new mysqli($servername, $username, $password, $dbname);  // 检查连接  
if ($conn->connect_error) {  die("连接失败: " . $conn->connect_error);  
}  echo "连接成功";  // 关闭连接  
$conn->close();  
?>

请确保将your_username、your_password和your_database替换为你自己的数据库凭据和数据库名。

访问http://localhost/db_connect.php来运行脚本。如果连接成功,你应该会在页面上看到“连接成功”的消息。

十、使用PHP处理表单数据

PHP经常用于处理Web表单数据。下面是一个简单的示例,展示如何使用PHP处理HTML表单提交的数据。

创建一个名为form.html的HTML文件,并输入以下代码:
 

<!DOCTYPE html>  
<html>  
<body>  <h2>HTML 表单</h2>  <form action="process_form.php" method="post">  名字: <input type="text" name="name"><br>  邮箱: <input type="text" name="email"><br>  <input type="submit" value="提交">  
</form>  </body>  
</html>

这个表单将数据发送到名为process_form.php的PHP文件进行处理。

创建一个名为process_form.php的PHP文件,并输入以下代码:

<?php  
if ($_SERVER["REQUEST_METHOD"] == "POST") {  $name = $_POST["name"];  $email = $_POST["email"];  echo "你提交的名字是: " . $name . "<br>";  echo "你提交的邮箱是: " . $email;  
}  
?>

这个PHP脚本检查请求方法是否为POST,并从$_POST数组中检索表单数据。然后,它将数据回显到页面上。

将form.html和process_form.php文件都放在Apache的Web根目录下。
访问http://localhost/form.html来查看表单,并填写表单数据提交。你应该会在页面上看到提交的数据。

十一、总结

通过本文,我们详细介绍了在Linux系统上搭建PHP开发环境的过程,包括安装Web服务器(Apache)、PHP解释器、数据库(MySQL/MariaDB),以及配置它们之间的连接。我们还提供了示例代码来展示如何使用PHP处理表单数据和连接数据库。希望这些内容对新手朋友有所帮助,使他们能够顺利搭建起自己的PHP开发环境,并开始进行Web开发。

相关文章:

搭建PHP开发环境:Linux篇

目录 一、引言 二、环境准备 三、安装Web服务器&#xff08;Apache&#xff09; Ubuntu/Debian系统&#xff1a; CentOS/Red Hat系统&#xff1a; 四、安装PHP解释器 Ubuntu/Debian系统&#xff1a; CentOS/Red Hat系统&#xff1a; 五、配置Apache以支持PHP Ubuntu/…...

ROS 自动驾驶多点巡航

ROS 自动驾驶多点巡航&#xff1a; 1、首先创建工作空间&#xff1a; 基于我们的artca_ws&#xff1b; 2、创建功能包&#xff1a; 进入src目录&#xff0c;输入命令: catkin_create_pkg point_pkg std_msgs rospy roscpptest_pkg 为功能包名&#xff0c;后面两个是依赖&a…...

SQL学习,大厂面试真题(1):观看各个视频的平均完播率

各个视频的平均完播率 1、视频信息表 IDAuthorNameCategoryAgeStart Time1张三影视302024-01-01 7:00:002李四美食602024-01-01 7:00:003王麻子旅游902024-01-01 7:00:00 &#xff08;video_id-视频ID, AuthorName-创作者, tag-类别标签, duration-视频时长&#xff08;秒&…...

2023年全国大学生数学建模竞赛C题蔬菜类商品的自动定价与补货决策(含word论文和源代码资源)

文章目录 一、题目二、word版实验报告和源代码&#xff08;两种获取方式&#xff09; 一、题目 2023高教社杯全国大学生数学建模竞赛题目 C题 蔬菜类商品的自动定价与补货决策 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而…...

inpaint下载安装2024-inpaint软件安装包下载v5.0.6官网最新版附加详细安装步骤

Inpaint软件最新版是一款功能强大的图片去水印软件&#xff0c;这款软件拥有强大的智能算法&#xff0c;能够根据照片的背景为用户去除照片中的各种水印&#xff0c;并修补好去除水印后的图片。并且软件操作简单、界面清爽&#xff0c;即使是修图新手也能够轻松上手&#xff0c…...

分享三个仓库

Hello , 我是恒。大概有半个月没有发文章了&#xff0c;都写在文档里了 今天分享三个我开源的项目&#xff0c;比较小巧但是有用 主页 文档导航 Github地址: https://github.com/lmliheng/document 在线访问:http://document.liheng.work/ 里面有各种作者书写的文档&#xff…...

MacOS - 启动台多了个『卸载 Adobe Photoshop』

问题描述 今天安装好了 Adobe Ps&#xff0c;但是发现启动台多了个『卸载 Adobe Photoshop』强迫症又犯了&#xff0c;想把它干掉&#xff01; 解决方案 打开访达 - 前往 - 资源库&#xff0c;搜索要卸载的名字就可以看到&#xff0c;然后移除到垃圾筐...

PHP 日期处理完全指南

PHP 日期处理完全指南 引言 在PHP开发中,日期和时间处理是一个常见且重要的任务。PHP提供了丰富的内置函数来处理日期和时间,包括日期的格式化、计算、解析等。本文将详细介绍PHP中日期处理的相关知识,帮助读者全面理解和掌握这一技能。 1. PHP日期函数基础 1.1 date()函…...

KVB:怎么样选择最优交易周期?

摘要 在金融交易中&#xff0c;周期的选择是影响交易成败的重要因素之一。不同的交易周期对应不同的市场环境和交易策略&#xff0c;选择合适的周期可以提高交易的成功率。本文将详细探讨交易中如何选择最优周期&#xff0c;包括短周期、中周期和长周期的特点及适用情况&#…...

前端面试题日常练-day69 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 TypeScript中&#xff0c;以下哪个关键字用于声明一个变量的类型为联合类型&#xff1f; a) union b) any c) all d) | 在TypeScript中&#xff0c;以下哪个符号用于声明一个变量的类型为对象类型&am…...

Java 解析xml文件-工具类

Java 解析xml文件-工具类 简述 Java解析xml文件&#xff0c;对应的Javabean是根据xml中的节点来创建&#xff0c;如SeexmlZbomord、SeexmlIdoc等等 工具类代码 import cn.hutool.core.io.FileUtil; import com.alibaba.cloud.commons.io.IOUtils; import com.seexml.bom.Se…...

PyQt5学习系列之新项目创建并使用widget

PyQt5学习系列之新项目创建并使用widget 前言报错新建项目程序完整程序总结 前言 新建项目&#xff0c;再使用ui转py&#xff0c;无论怎么样都打不开py文件&#xff0c;直接报错。 报错 Connected to pydev debugger (build 233.11799.298)新建项目程序 # Press ShiftF10 to…...

mtk8675 安卓端assert函数的坑

8675 安卓端&#xff0c; assert(pthread_mutex_init(&mutex_data_, &mattr) 0);用这行代码发现pthread_mutex_init函数没有被调用&#xff0c;反汇编发现不光没调用assert&#xff0c;pthread_mutex_init也没调用。直接pthread_mutex_init(&mutex_data_, &ma…...

编程入门笔记:从基础到进阶的探索之旅

编程入门笔记&#xff1a;从基础到进阶的探索之旅 编程&#xff0c;作为现代科技的基石&#xff0c;正日益渗透到我们生活的方方面面。对于初学者来说&#xff0c;掌握编程技能不仅有助于提升解决问题的能力&#xff0c;还能开启通往创新世界的大门。本篇文章将从四个方面、五…...

小规模自建 Elasticsearch 的部署及优化

本文将详细介绍如何在 CentOS 7 操作系统上部署并优化 Elasticsearch 5.3.0,以承载千万级后端服务的数据采集。要使用Elasticsearch至少需要三台独立的服务器,本文所用服务器配置为4核8G的ECS云服务器,其中一台作为 master + data 节点、一台作为 client + data 节点、最后一…...

MySQL 示例数据库大全

前言&#xff1a; 我们练习 SQL 时&#xff0c;总会自己创造一些测试数据或者网上找些案例来学习&#xff0c;其实 MySQL 官方提供了好几个示例数据库&#xff0c;在 MySQL 的学习、开发和实践中具有非常重要的作用&#xff0c;能够帮助初学者更好地理解和应用 MySQL 的各种功…...

VirtualBox、Centos7下安装docker后pull镜像问题、ftp上传文件问题

Docker安装篇(CentOS7安装)_docker 安装 centos7-CSDN博客 首先&#xff0c;安装docker可以根据这篇文章进行安装&#xff0c;安装完之后&#xff0c;我们就需要去通过docker拉取相关的服务镜像&#xff0c;然后安装相应的服务容器&#xff0c;比如我们通过docker来安装mysql,…...

链表 题目汇总

237. 删除链表中的节点...

grafana连接influxdb2.x做数据大盘

连接influxdb 展示数据 新建仪表盘 选择存储库 设置展示...

Java证件识别中的身份证识别接口

现如今&#xff0c;越来越多的互联网应用需要对身份证进行实名认证&#xff0c;但不知道大家有没有发现&#xff0c;从最初的手动录入身份证信息转变到了现在的图片上传自动识别呢&#xff1f;其实&#xff0c;这都是因为集成了身份证识别接口功能&#xff0c;今天&#xff0c;…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

6.9本日总结

一、英语 复习默写list11list18&#xff0c;订正07年第3篇阅读 二、数学 学习线代第一讲&#xff0c;写15讲课后题 三、408 学习计组第二章&#xff0c;写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语&#xff1a;复习l默写sit12list17&#…...

项目进度管理软件是什么?项目进度管理软件有哪些核心功能?

无论是建筑施工、软件开发&#xff0c;还是市场营销活动&#xff0c;项目往往涉及多个团队、大量资源和严格的时间表。如果没有一个系统化的工具来跟踪和管理这些元素&#xff0c;项目很容易陷入混乱&#xff0c;导致进度延误、成本超支&#xff0c;甚至失败。 项目进度管理软…...

Unity-ECS详解

今天我们来了解Unity最先进的技术——ECS架构&#xff08;EntityComponentSystem&#xff09;。 Unity官方下有源码&#xff0c;我们下载源码后来学习。 ECS 与OOP&#xff08;Object-Oriented Programming&#xff09;对应&#xff0c;ECS是一种完全不同的编程范式与数据架构…...

Modbus转ETHERNET IP网关:快速冷却系统的智能化升级密钥

现代工业自动化系统中&#xff0c;无锡耐特森Modbus转Ethernet IP网关MCN-EN3001扮演着至关重要的角色。通过这一技术&#xff0c;传统的串行通讯协议Modbus得以在更高速、更稳定的以太网环境中运行&#xff0c;为快速冷却系统等关键设施的自动化控制提供了强有力的支撑。快速冷…...

【学习记录】Office 和 WPS 文档密码破解实战

文章目录 &#x1f4cc; 引言&#x1f4c1; Office 与 WPS 支持的常见文件格式Microsoft Office 格式WPS Office 格式 &#x1f6e0; 所需工具下载地址&#xff08;Windows 官方编译版&#xff09;&#x1f510; 破解流程详解步骤 1&#xff1a;提取文档的加密哈希值步骤 2&…...