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

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...