当前位置: 首页 > 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;…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

倒装芯片凸点成型工艺

UBM&#xff08;Under Bump Metallization&#xff09;与Bump&#xff08;焊球&#xff09;形成工艺流程。我们可以将整张流程图分为三大阶段来理解&#xff1a; &#x1f527; 一、UBM&#xff08;Under Bump Metallization&#xff09;工艺流程&#xff08;黄色区域&#xff…...