分类目录服务器

Windows10下安装Apache2.4.55+PHP5.1.4+MySQL5.0.15

最近由于工作需要,需要搭建PHP5.1.4+MySQL5.0.15环境,我试着搭配Apache2.4.55,完成了部署,方法步骤如下:

一、安装 Apache2.4.55
下载地址:https://www.apachelounge.com/download/VS17/binaries/httpd-2.4.55-win64-VS17.zip

解压压缩包内Apach24文件夹内所有内容至 D:\webServ\apache2.4.55

用文本编辑器修改D:\webServ\apache2.4.55\conf\httpd.conf

37行:Define Define SRVROOT "c:/Apache24" -> Define SRVROOT "d:/webServ/apache2.4.55"
227行:#ServerName www.example.com:80 -> ServerName localhost:80
236行:Require all denied -> Require all granted
251行:DocumentRoot "${SRVROOT}/htdocs" -> DocumentRoot "d:/webServ/www"
252行:<Directory "${SRVROOT}/htdocs"> -> <Directory "d:/webServ/www">
285行:DirectoryIndex index.html -> DirectoryIndex index.html index.php

以管理员身份运行cmd,进入到C:\WebServ\Apache24\bin目录下,执行下面命令:
httpd -k install

提示:
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.

执行下面命令:
httpd -k start

在浏览器地址栏输入http://localhost 可以看到apache安装成功

二、安装php5.1.4
下载地址:http://museum.php.net/php5/php-5.1.4-Win32.zip

解压压缩包内所有内容至 D:\webServ\php-5.1.4

复制 D:\webServ\php-5.1.4\php.ini-recommended一份,命名为php.ini

用文本编辑器修改D:\webServ\php-5.1.4\php.ini

529行:extension_dir = "./" -> extension_dir = "D:\webServ\php-5.1.4\ext"
637行:;extension=php_mbstring.dll -> extension=php_mbstring.dll
639行:;extension=php_curl.dll -> extension=php_curl.dll
645行:;extension=php_gd2.dll -> extension=php_gd2.dll
657行:;extension=php_mysql.dll -> extension=php_mysql.dll
678行:;date.timezone = -> date.timezone = PRC
929行:; session.save_path = "N;/path" -> session.save_path = "D:\webServ\php-5.1.4\sessiontmp"

再次修改D:\webServ\apache2.4.55\conf\httpd.conf,尾部添加:

ScriptAlias /php/ "D:/webServ/php-5.1.4/"
AddType application/x-httpd-php .php .php5
Action application/x-httpd-php "/php/php-cgi.exe"

三、安装MySQL5.0.15
下载地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-noinstall-5.0.15-win32.zip

解压至:D:\webServ\mysql-5.0.15-win32

在D:\webServ\mysql-5.0.15-win32目录下,复制my-small.ini为my.ini

用文本编辑器修改my.ini,在28行socket= /tmp/mysql.sock后面,插入下面2行:

basedir="D:\webServ\mysql-5.0.15-win32"
datadir="D:\webServ\mysql-5.0.15-win32\data"

以管理员身份运行cmd,进入到D:\webServ\mysql-5.0.15-win32\bin目录下,输入mysqld -install,提示:Service successfully installed.

输入net start mysql,启动mysql服务

输入mysql -u root -p,提示输入密码,这里空,直接回车,输入下面命令修改root账号密码为1234,然后按回车键确认,注意行末的“;”不能省略:
set password for root@localhost = password('1234');

说明:
my.ini中datadir是用来设置mysql数据库文件的存放位置,如果你选择默认位置(mysql的安装路径下的data文件夹),这行可以删除或注释掉。

如果你想把mysql数据库文件放在其它位置,如放在“D:\mydb”文件夹下,那你需要在my.in文件中设置:
datadir="D:\mydb"

同时,在启动mysql前,你需要把mysql安装路径下data文件夹内的mysql文件夹复制到“D:\mydb”下,否则mysql无法启动。

关于动态生成的mp3使用audio标签无法拖动的问题

html5 audio video不需要插件即可播放音频和视频,currentTime可以用来设置播放的起始时间,使得可以不从文件开头开始播放。如果 html5 audio video设置currentTime失效,无法设置开始播放的时间点,audio/video不能拖动进度条调整播放进度,很有可能是使用了php asp jsp等服务器后端语言动态输出待播放的媒体文件内容,如果audio/video播放的媒体资源文件不是静态文件,不经过处理直接通过服务器语言动态输出流媒体内容,设置currentTime不会生效。

为什么直接使用静态的.mp3 .mp4 .flac等媒体文件时支持使用 audio | video .currentTime = NUMBERIC; (NUMBERIC是一个数字,可以是整数,也可以是浮点数)来设置播放起始位置呢,而动态输出流媒体文件内容时不行呢?

这其中的核心技术就是服务器端对断点续传的支持,断点续传允许客户端从服务器提取某个文件指定字节范围内的一部分内容,当下载中断以后再次下载时可以只请求下载原先没有下载的部分,避免重复传输现有内容。当客户端(浏览器)检测到服务器支持断点续传以后才会发送相应的区间内容请求给服务器,服务器接到请求以后再返回相应范围内的文件内容,这样才能实现流媒体文件的定点播放。而直接使用静态文件做播放资源时,服务器软件通常会自动处理断点续传请求。

实现动态流媒体文件支持通过HTML5 audio/video.currentTime设置播放起始时间点,可以使用以下两种方法。

方法一:
使用服务器模块X-SendFile输出流媒体文件内容来解决currentTime失效的问题,以Apache服务器为例。

首先下载mod_xsendfile,将模块文件复制到Apache的modules目录,在Apache配置文件中添加

复制代码其中XSendFilePath意思是将指定的文件夹路径添加到白名单中,指定文件夹中的文件可以被Apache直接发送给客户端,除了设置的文件夹本身以外,该文件夹包含的各级子目录也在允许范围内。配置完服务器以后重启Apache服务器以后X-SendFile模块有效。

安装了X-SendFile模块以后,PHP输出媒体文件变得非常简单。其中的Content-Type是要输出文件的MIME类型,可以不必写死而通过服务器语言获取。可以参见方法二有实例代码。

方法二:

使用服务器语言模拟断点续传支持让HTML5 audio/video.currentTime生效,以PHP为例。

如果没有服务器配置权限,可以在动态语言中发送Accept-Ranges: bytes和Content-Range: bytes S-E/FILESIZE两个响应头,告诉客户端它请求的服务器资源支持断点续传,服务器端接收到客户端发送的请求以后,从请求头拿到需要发送的内容区间,然后从文件中读取指定起止位置的数据发送到客户端即可解决HTML5 audio/video使用后端语言动态输出媒体文件内容造成的currentTime失效以及无法手动拖动进度条的问题。其中S和E分别是当次请求的起始位置索引和结束位置索引,FILESIZE为代表文件尺寸的总字节数。

出处:https://blog.csdn.net/free_xiaochen/article/details/84029161

64位Win7手动安装配置的php7.3.11下curl出错解决办法

在64位Win7系统下,手动安装的php7.3.11运行下面的代码时出现“Fatal error: Uncaught Error: Call to undefined function curl_init() in …”错误提示:

在网上找了很多资料,尝试了各种办法,最后问题得以解决,具体操作如下:

1. 在php安装目录下(我的是D:\webServ\php7.3),用文本编辑器修改php.ini文件:去掉extension=curl前面的“;”;

2. 在Apache的安装目录下找到conf文件夹(我的是D:\webServ\Apache24\conf),文本编辑器打开httpd.conf文件,在文件最后一行追加下面2行代码:

3. 以管理员身份运行cmd,在命令行窗口进入到Apache的bin目录下,输入“httpd – k restart”命令回车重启Apache服务;

再运行上面的代码,出现百度搜索界面,问题解决!

win11下安装mysql8.0.28

安装包下载地址:https://dev.mysql.com/downloads/mysql/,选择mysql-8.0.28-winx64.zip版,点“Download”按钮,如图01:
图01

选择不登录账号下载,如图02:
图02

mysql-8.0.28-winx64.zip文件大约211M,如图03:
图03

下载完后,我们将 zip 包解压到 C:\WebServ\mysql-8.0.28-winx64 下,如图04:
图04

在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\WebServ\mysql-8.0.28-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=D:\www\mysql\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

以管理员身份打开 cmd 命令行工具,切换目录:cd C:\WebServ\mysql-8.0.28-winx64\bin,如图05:
图05

初始化数据库:mysqld –initialize –console,如图06:
图06

执行完成后,会输出 root 用户的初始默认密码,如图07:
图07

_0T&EH<Pdaay是初始密码,下面登录要用到,初始密码可以在登录后修改。

输入以下安装命令:mysqld install,按回车后提示安装成功,如图08:
图08

输入net start mysql 来启动mysql服务,如图09:
图09

当 MySQL 服务已经运行时,我们可以通过输入以下格式的命令登录:mysql -h 主机名 -u 用户名 -p

参数说明:
-h : 指定客户端所要登录的 MySQL 主机名,登录本机(localhost 或 127.0.0.1)该参数可以省略。
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录,如果所要登录的用户名密码为空,可以忽略此选项。

如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:mysql -u root -p

按回车确认,如果安装正确且 MySQL 正在运行,会得到以下响应:Enter password:

若密码存在,输入密码登录,不存在则直接按回车登录。登录成功后你将会看到 Welcome to the MySQL monitor… 的提示语。

然后命令提示符会一直以 mysql> 加一个闪烁的光标等待命令的输入,输入 exit 或 quit 退出登录。

修改管理员密码
mysql -u root -p
提示输入密码,先将“_0T&EH<Pdaay”复制到剪贴板,再鼠标点击命令行窗口Enter password:后面空白处,光标会闪烁,鼠标右键点击这里,密码会粘贴过来,按回车,然后输入下面命令修改root账号密码为rootroot:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘rootroot’;
图10