PHP学习笔记

PHP学习笔记

  • 一.准备环境
  • 二.安装Apache
    • 添加环境变量
  • 三.安装PHP
    • 添加环境变量
  • 配置 apache 支持 php
  • 四.安装Mysql
    • 配置环境
    • MySQL的访问流程
    • php连接mysql
  • 五虚拟主机
    • 虛拟主机的分类
    • 搭建基于域名的虚拟主机

一.准备环境

下载Apache
和PHP
安装mysql
特殊IP:127.0.0.1 代表本机
特殊域名:localhost
参考教程
静态网页工作原理
在这里插入图片描述
动态网页工作原理
在这里插入图片描述

二.安装Apache

我是在这里下载的

解压后把Apache24文件,放到了F:\server\Apache24
在这里插入图片描述

在这里插入图片描述

然后参考这个文章参考第二部分

修改配置文件
在这里插入图片描述

不修改httpd.conf 文件,启动Apache会遇到
httpd.exe: Syntax error on line 40 of F: /server/Apache24/conf/httpd.conf:ServerRoot must be a valid directory 这个报错
监听端口不改可能也会报错
电脑80端口一直被占用可以换个端口
在这里插入图片描述

添加环境变量

在这里插入图片描述
安装服务
在这里插入图片描述
遇到80端口被占用
在这里插入图片描述
管理员CMD找
netstat -aon|findstr “80”
在这里插入图片描述
在任务管理器中关闭pid是151252的进程再重启apache即可

在这里插入图片描述
启动成功
查看使用模块
在这里插入图片描述
验证配置
在这里插入图片描述
在这里插入图片描述

三.安装PHP

在这下载php
下载解压后改名PHP7
在这里插入图片描述

添加环境变量

在这里插入图片描述
将 PHP 目录下的php.ini-development,复制一份并重命名为 php.ini
在这里插入图片描述
编辑php.ini文件:

设置PHP扩展包的具体目录

找到:在这里插入图片描述
改为
在这里插入图片描述
在这里插入图片描述

配置 apache 支持 php

在httpd.conf文件的#LoadModule写入
在这里插入图片描述
找到
在这里插入图片描述
改为
在这里插入图片描述

加载成功
在这里插入图片描述

四.安装Mysql

在这里下载

参考安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
遇到问题
在这里插入图片描述

执行安装在这里插入图片描述

下一步
在这里插入图片描述

执行,下一步
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
mysql的默认端口是3306,一般情况下不需要修改,其他配置也不需要修改,直接下一步
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
执行后全打勾点完成 下一步
在这里插入图片描述
最后finish
打开
在这里插入图片描述
输入密码

在这里插入图片描述
成功了

配置环境

在这里插入图片描述
打开cmd输入mysql -u root -p和密码
在这里插入图片描述
成功了

在这里插入图片描述

在这里插入图片描述
软件设计结构: C/S 和B/S
C/S: Client 客户端/Server服务端,用户需要安装客户端产品才能访问服务器,而且只能访问一种软件(当前自己)。
B/S: Browser浏览器/Server服务端,用户只需要安装浏览器,就可以访问所有的服务器(B/S架构服务)

MySQL的访问流程

Mysql是一款c/s架构的软件,需要通过客户端来访问服务端(MySQL也提供其他模式的访问:通过一些插件扩展来充当客户端)

1、启动MySQL客户端:mysql.exe,该软件本身可以通过CMD控制台运行,
本身客户端:mysql.exe
在这里插入图片描述
通过CMD运行
在这里插入图片描述

2、MySQL 客户端访问服务端需要进行寻找匹配:连接认证
连接: IP 和端口确认,如果是本地都可以省略。
-h主机地址----》-hlocalhost (可以是IP)
-P端口—》-P33064
认证:通过用户名和密码进入服务器。
-u用户名—》-uroot,不可以省略(匿名用户除外)
-p密码—》-p123456
一次性输入(不安全明文)
mysql -hlocalhost -P3306 -uroot -p123456
先不输入密码
mysql -hlocalhost -P3306 -uroot -p
*******
在这里插入图片描述

php连接mysql

PHP连接MySQL数据库

PHP本身不具备操作MySQL数据库的能力,需要借助PHP操作MySQL的扩展来实现。

PHP 加载MySQL扩展: php.ini 文件中。

PHP 5 及以上版本建议使用以下方式连接 MySQL :

MySQLi extension (“i” 意为 improved)

打开php.ini 删掉extension=mysqli前面的分号;
在这里插入图片描述
扩展目录前面已经设置过了
在这里插入图片描述
保存后记得重启apache才能生效
在这里插入图片描述

修改测试代码
在这里插入图片描述

访问localhost/index.php 下翻找到mysqli 成功
在这里插入图片描述
测试连接
在这里插入图片描述
成功
在这里插入图片描述

五虚拟主机

虚拟主机不是虚拟机 两者存在根本性的区别。

虚拟主机是从服务器上划分出来的“虚拟空间”;通俗的讲,虚拟主机就是将计算机中不同的文件夹进行不同的命名,然后可以实现让服务器(Apache)根据用户的需求从不同的文件夹(网站)中读取不同的内容。。

而虚拟机则是一种系统软件。 而虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

一台服务器很贵,如果只能部署一个网站,那么非常浪费。所以需要通过其他渠道来实现一台主机上部署多个网站。。

虛拟主机的分类

在Apache中,可以将虚拟主机划分成两类:。
1、 基于IP的虚拟主机:一台电脑上有多个IP,每个IP对应一个网站。
原理:电脑默认只有一个IP,因为通常只配有一个网卡;但是有的电脑(服务器居多)可以配置多个网卡,每个网卡可以绑定一个IP地址。

2、基于域名的虚拟主机: -一台电脑上只有一个IP,但是IP下可以制作多个网站,但是需要给每个网站不同的名字( 虚拟主机名)。

搭建基于域名的虚拟主机

在Apache中,虚拟主机的搭建有两种方式:
1、 在主配置文件中搭建:需要手动开启虚拟主机(基于域名)。
NameVirtualHost *:80

2、在专门的虚拟主机配置文件中配置。这里采用这一种
2.1在主配置文件中加载虚拟主机配置文件:虚拟主机配置文件已经开启了虚拟主机
NameVirtualHosto
2.2虚拟主机配置文件中配置虚拟主机。

在这里插入图片描述

删掉前面的分号;
在这里插入图片描述
打开文件
在这里插入图片描述

拉到最下面有注释掉的例子
在这里插入图片描述
在例子后面添加
①增加一个对应站点的文件夹位置
②虚拟机主机名(域名是不区分大小写的 比如我其中写的F,浏览器搜索的时候自动会变成f)

在这里插入图片描述
找到C盘这个文件
在这里插入图片描述

③增加域名解析DNS:hosts
这个可能需要管理员权限修改,注意看修改成功没
在这里插入图片描述
④需要给当前设定的站点(目录)访间权限。
在Directory标签中设置

⑤配置访问列表:当访问是一一个目录时候(没有指定具体要访问的文件)。
Options Indexes [FollowsSymlLinks],如果访问目录,那么列表显示所有文件。 再Linux下中括号[]不能省略

⑥当用户访问指定目录不指定文件的时候,通常需要系统指定一个默认文件。
DirectoryIndex 默认的文件列表,使用空格分离。
新代码参考
在这里插入图片描述
注意:一旦启用虚拟主机配置文件,那么默认的主机地址localhost 就不再生效,如果想要生效:为localhost增加单独的虚拟主机。
在这里插入图片描述

建立虚拟主机文件,和测试主页
在这里插入图片描述

重启apache,用浏览器域名访问

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/445447.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java高频面试之集合篇

Java 中常用的容器有哪些? ArrayList 和 LinkedList 的区别? ArrayList 是基于数组实现的,LinkedList 是基于链表实现的. ArrayList实现了RandomAccess接口,可基于下标访问. LinkedList 实现了Deque /dek/,可以当做双端队列使用. 插入效率对比 如果从头部…

Java共享问题 、synchronized 线程安全分析、Monitor、wait/notify

文章目录 1.共享带来的问题1.1 临界区 Critical Section1.2 竞态条件 Race Condition 2. synchronized语法及理解2.1 方法上的 synchronized 3.变量的线程安全分析3.1.成员变量和静态变量是否线程安全?3.2.局部变量是否线程安全?3.2.1 局部变量线程安全分…

NIO学习总结(二)——Selector、FileLock、Path、Files、聊天室实现

一、Selector 1.1 Selector简介 1.1.1 Selector 和 Channel的关系 Selector 一般称为选择器 ,也可以翻译为 多路复用器 。 它是 Java NIO 核心组件中的一个,用于检查一个或多个 NIO Channel(通道)的状态是否处于可读、可写。由…

ubuntu20.04环境搭建:etcd+patroni+pgbouncer+haproxy+keepalived的postgresql集群方案

搭建基于etcdpatronipgbouncerhaproxykeepalived的postgresql集群方案 宿主机操作系统:ubuntu20.04 使用kvm搭建虚拟环境(如没有安装kvm,请先自行安装kvm) 1、安装kvm服务 ①、查看虚拟支持 如果CPU 支持硬件虚拟化则输出结果大于0,安装kvm-ok命令检…

蓝桥省赛倒计时 35 天-双指针

双指针介绍 双指针算法是一种常用的算法技巧,它通常用于在数组或字符串中进行快速查找、匹配、排序或移动操作。 pointer 双指针并非真的用指针实现,一般用两个变量来表示下标(在后面都用指针来表示)。 双指针算法使用两个指针在数…

Android Gradle 开发与应用 (六) : 创建buildSrc插件和使用命令行创建Gradle插件

1. 前言 前文中,我们介绍了在Android中,如何基于Gradle 8.2,创建Gradle插件。这篇文章,我们以buildSrc的方式来创建Gradle插件。此外,还介绍一种用Cmd命令行的方式,来创建独立的Gradle插件的方式。 1.1 本…

第3集《天台教观纲宗》

乙二、约观行释 诸位法师慈悲!陈会长慈悲!诸位菩萨!阿弥陀佛! 请大家打开讲义第六页。我们看到乙二、约观行释。这一科是讲到天台教观的修学宗旨。 我们前面讲到,天台教观整个建立的过程,它是先有观法&a…

06 数据结构之树

引言&#xff1a; 数的代码实现&#xff0c; 先序遍历、中序、后序、层次遍历 /* binary_tree.h */ #ifndef _BINARY_TREE_H #define _BINARY_TREE_H#include <stdio.h> #include <stdlib.h> #include <string.h>#define DEBUG(msg) \printf("--%s--, %…

Tensorflow2.0+部署(tensorflow/serving)过程备忘记录Windows+Linux

Tensorflow2.0部署&#xff08;tensorflow/serving&#xff09;过程备忘记录 部署思路&#xff1a;采用Tensorflow自带的serving进模型部署&#xff0c;采用容器docker 1.首先安装docker 下载地址&#xff08;下载windows版本&#xff09;&#xff1a;https://desktop.docke…

python 蓝桥杯之动态规划入门

文章目录 DFS滑行&#xff08;DFS 记忆搜索&#xff09; 思路&#xff1a; 要思考回溯怎么写&#xff08;入参与返回值、递归到哪里&#xff0c;递归的边界和入口&#xff09; DFS 滑行&#xff08;DFS 记忆搜索&#xff09; 代码分析&#xff1a; 学会将输入的数据用二维列表…

WebMagic框架

1.webmagic框架 webmagic框架是一个Java实现的爬虫框架&#xff0c;底层依然是HttpClient和jsoup 组件&#xff1a; downloader&#xff1a;下载器组件PageProcessor&#xff1a;页面解析组件&#xff08;必须自定义&#xff09;scheculer&#xff1a;访问队列组件pipeline&am…

redis 性能优化一

目录 前言 尾延迟 前言 说到redis 性能优化&#xff0c;优化的目的是什么&#xff1f;提高响应&#xff0c;减少延迟。就要关注两点&#xff0c;一是尾延迟&#xff0c;二是Redis 的基线性能。只有指标&#xff0c;我们的优化&#xff0c;才有意义&#xff0c;才能做监控以及…

Java中常用的集合及方法(3)

1、List&#xff08;接上级--常用方法示例补充&#xff09; 1.4 常用的方法 1.4.2 LinkedList&#xff08;JDK8&#xff09; LinkedList是Java中一个实现了List接口和Deque接口的类&#xff0c;它采用链表结构存储数据&#xff0c;支持高效的插入和删除操作。 LinkedList中…

【C++】深度解剖多态

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是多态&#xff0c;熟练掌握多态的定义&a…

NIO学习总结(一)——简介、Channel、Buffer

相关代码地址&#xff1a;nio_demo_learn: nio学习相关代码 (gitee.com) 一、BIO、NIO和AIO 1.1 阻塞IO&#xff08;BIO&#xff09; BIO即同步阻塞IO&#xff0c;实现模型为一个连接就需要一个线程去处理。这种方式简单来说就是当有客户端来请求服务器时&#xff0c;服务器就…

分布式搜索elasticsearch

1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案…

MySQL主从读写分离之Proxysql(openEuler版)

实验目的&#xff1a; 基于proxysql实现MySQL的主从读写分离。 实验过程&#xff1a; 前期准备&#xff1a; 一共有四台虚拟机&#xff0c;其中三台为配置好的一主两从虚拟机&#xff0c;还有一台干净的虚拟机用来配置proxysql。 主机名地址master192.168.27.137node1192.…

NGINX源码安装详细配置文档

NGINX源码安装详细配置文档 一、基础Linux指令 查看nginx进程是否启动&#xff1a;ps -ef | grep nginx 关闭防火墙&#xff1a;systemctl stop firewalld 开放80端口&#xff1a;firewall-cmd --zonepublic --add-port80/tcp --permanent 关闭80端口&#xff1a;firewall-cmd …

(C语言)strcpy与strcpy详解,与模拟实现

目录 1. strcpy strcpy模拟实现&#xff1a; 实现方法1&#xff1a; 实现方法2&#xff1a; 2. strcat strcat模拟实现&#xff1a; 1. strcpy 作用&#xff1a;完成字符串的复制。 头文件&#xff1a;<string.h> destination是字符串要复制到的地点&#xff0c;s…

redis持久化-rdb

redis持久化-rdb策略 redis持久化rdb策略触发时机自动触发手动触发bgsave redis持久化 &#x1f680;我们知道redis是将数据存储在内存当中的&#xff0c;通常使用来作为关系型数据库的缓存使用的&#xff0c;以缓解当大量请求到来时关系型数据库的压力。 &#x1f680;既然数…