搭建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服务器(Apache) Ubuntu/Debian系统: CentOS/Red Hat系统: 四、安装PHP解释器 Ubuntu/Debian系统: CentOS/Red Hat系统: 五、配置Apache以支持PHP Ubuntu/…...
ROS 自动驾驶多点巡航
ROS 自动驾驶多点巡航: 1、首先创建工作空间: 基于我们的artca_ws; 2、创建功能包: 进入src目录,输入命令: catkin_create_pkg point_pkg std_msgs rospy roscpptest_pkg 为功能包名,后面两个是依赖&a…...
SQL学习,大厂面试真题(1):观看各个视频的平均完播率
各个视频的平均完播率 1、视频信息表 IDAuthorNameCategoryAgeStart Time1张三影视302024-01-01 7:00:002李四美食602024-01-01 7:00:003王麻子旅游902024-01-01 7:00:00 (video_id-视频ID, AuthorName-创作者, tag-类别标签, duration-视频时长(秒&…...
2023年全国大学生数学建模竞赛C题蔬菜类商品的自动定价与补货决策(含word论文和源代码资源)
文章目录 一、题目二、word版实验报告和源代码(两种获取方式) 一、题目 2023高教社杯全国大学生数学建模竞赛题目 C题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而…...
inpaint下载安装2024-inpaint软件安装包下载v5.0.6官网最新版附加详细安装步骤
Inpaint软件最新版是一款功能强大的图片去水印软件,这款软件拥有强大的智能算法,能够根据照片的背景为用户去除照片中的各种水印,并修补好去除水印后的图片。并且软件操作简单、界面清爽,即使是修图新手也能够轻松上手,…...
分享三个仓库
Hello , 我是恒。大概有半个月没有发文章了,都写在文档里了 今天分享三个我开源的项目,比较小巧但是有用 主页 文档导航 Github地址: https://github.com/lmliheng/document 在线访问:http://document.liheng.work/ 里面有各种作者书写的文档ÿ…...
MacOS - 启动台多了个『卸载 Adobe Photoshop』
问题描述 今天安装好了 Adobe Ps,但是发现启动台多了个『卸载 Adobe Photoshop』强迫症又犯了,想把它干掉! 解决方案 打开访达 - 前往 - 资源库,搜索要卸载的名字就可以看到,然后移除到垃圾筐...
PHP 日期处理完全指南
PHP 日期处理完全指南 引言 在PHP开发中,日期和时间处理是一个常见且重要的任务。PHP提供了丰富的内置函数来处理日期和时间,包括日期的格式化、计算、解析等。本文将详细介绍PHP中日期处理的相关知识,帮助读者全面理解和掌握这一技能。 1. PHP日期函数基础 1.1 date()函…...
KVB:怎么样选择最优交易周期?
摘要 在金融交易中,周期的选择是影响交易成败的重要因素之一。不同的交易周期对应不同的市场环境和交易策略,选择合适的周期可以提高交易的成功率。本文将详细探讨交易中如何选择最优周期,包括短周期、中周期和长周期的特点及适用情况&#…...
前端面试题日常练-day69 【面试题】
题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 TypeScript中,以下哪个关键字用于声明一个变量的类型为联合类型? a) union b) any c) all d) | 在TypeScript中,以下哪个符号用于声明一个变量的类型为对象类型&am…...
Java 解析xml文件-工具类
Java 解析xml文件-工具类 简述 Java解析xml文件,对应的Javabean是根据xml中的节点来创建,如SeexmlZbomord、SeexmlIdoc等等 工具类代码 import cn.hutool.core.io.FileUtil; import com.alibaba.cloud.commons.io.IOUtils; import com.seexml.bom.Se…...
PyQt5学习系列之新项目创建并使用widget
PyQt5学习系列之新项目创建并使用widget 前言报错新建项目程序完整程序总结 前言 新建项目,再使用ui转py,无论怎么样都打不开py文件,直接报错。 报错 Connected to pydev debugger (build 233.11799.298)新建项目程序 # Press ShiftF10 to…...
mtk8675 安卓端assert函数的坑
8675 安卓端, assert(pthread_mutex_init(&mutex_data_, &mattr) 0);用这行代码发现pthread_mutex_init函数没有被调用,反汇编发现不光没调用assert,pthread_mutex_init也没调用。直接pthread_mutex_init(&mutex_data_, &ma…...
编程入门笔记:从基础到进阶的探索之旅
编程入门笔记:从基础到进阶的探索之旅 编程,作为现代科技的基石,正日益渗透到我们生活的方方面面。对于初学者来说,掌握编程技能不仅有助于提升解决问题的能力,还能开启通往创新世界的大门。本篇文章将从四个方面、五…...
小规模自建 Elasticsearch 的部署及优化
本文将详细介绍如何在 CentOS 7 操作系统上部署并优化 Elasticsearch 5.3.0,以承载千万级后端服务的数据采集。要使用Elasticsearch至少需要三台独立的服务器,本文所用服务器配置为4核8G的ECS云服务器,其中一台作为 master + data 节点、一台作为 client + data 节点、最后一…...
MySQL 示例数据库大全
前言: 我们练习 SQL 时,总会自己创造一些测试数据或者网上找些案例来学习,其实 MySQL 官方提供了好几个示例数据库,在 MySQL 的学习、开发和实践中具有非常重要的作用,能够帮助初学者更好地理解和应用 MySQL 的各种功…...
VirtualBox、Centos7下安装docker后pull镜像问题、ftp上传文件问题
Docker安装篇(CentOS7安装)_docker 安装 centos7-CSDN博客 首先,安装docker可以根据这篇文章进行安装,安装完之后,我们就需要去通过docker拉取相关的服务镜像,然后安装相应的服务容器,比如我们通过docker来安装mysql,…...
链表 题目汇总
237. 删除链表中的节点...
grafana连接influxdb2.x做数据大盘
连接influxdb 展示数据 新建仪表盘 选择存储库 设置展示...
Java证件识别中的身份证识别接口
现如今,越来越多的互联网应用需要对身份证进行实名认证,但不知道大家有没有发现,从最初的手动录入身份证信息转变到了现在的图片上传自动识别呢?其实,这都是因为集成了身份证识别接口功能,今天,…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
