第一次使用Apache+php+mysql这个环境开发网站,算是小白吧。
为了搭建好这一个环境,我花了整整五天多,碰到各种问题,不顺利的话,真的很绞脑汁,很崩溃,我先打预防针~
我把环境安装,各种文件配置,还有后面遇到的问题以及解决过程都写在下面了,文章有点长,我把目录写在前面啦,希望以后遇到时,可以借鉴。
目录
一、安装
- php安装
- Apache安装
- mysql安装
二、配置
- 环境变量配置
- php文件配置
- Apache文件配置
三、遇到的坑
- cmd启动php,提示:PHP Warning: ‘vcruntime140.dll’ 14.0 is not compatible…
- cmd运行php test.php,提示:Parse error: syntax error, unexpected T_ECHO in…
- 服务器端口被占用问题
- Apache2.4启动弹出窗口:the requested operation has failed
- windows安装Apache后,用cmd开启apache服务时,提示No installed service named “Apache2.4”
- localhost访问php文件时总是报出Not Found错误
- phpmyadmin配置完后显示的是 Index of /phpmyadmin
四、MySQL修改初始密码
我是到官网下载的:https://www.php.net/downloads.php
点击window download
进去后,里面有两个选择,一个是Non Thread Safe,另一个是Thread Safe
PHP non-thread-safe和thread-safe这两个版本的区别:
1.non-thread-safe
非线程安全 下载文件中带有 NTS 与IIS 搭配环境使用
2.thread-safe
线程安全 与apache 搭配的环境使用
转载于https://blog.csdn.net/weixin_34349320/article/details/92255036
我使用Apache搭配php使用,所以下载Thread Safe版本
我也是到官网下载的,官网链接http://httpd.apache.org/download.cgi
下载软件什么的最好去官网,因为官网的版本链接会不断更新,下载最新版本的。
进官网后,第一步,点击download!
第二步,点击 a number of third party vendors
第三步,点击ApacheHaus
第四步,选择要下载的版本,我的电脑是64位,点击右边下载图标
下载好解压,把文件放在磁盘根目录,尽量放在磁盘根目录,避免后面因为路径出现大多问题。我放在E盘。
1、我安装的MySQL5.5版本,这不介绍MySQL的安装方式,大家可以自己去网上搜
2、MySQL官方下载地址:https://dev.mysql.com/downloads/installer/
3、MySQL默认安装目录如下:
下载完了,下面当然是环境配置啦,我用的win7,本来是win10的,发现还是win7方便好用,后来重装win7了。进入:控制面板\系统和安全\系统
点击环境变量
找到环境变量下的path,点击编辑,把php的安装路径写进去。
把E:\php7和E:\php7\ext都写进去,用分号隔开,点击确定,确定,再确定;一共三次确定,一个也别漏。
php环境变量设置好了,下面是php文件配置啦
1、打开PHP的安装目录将php.ini-development先复制一份,然后把php.ini-development改为php.ini保存
如果想详细了解php.ini文件,建议看这个链接https://www.cnblogs.com/daniel2021/p/10699931.html,可能会眼花吧哈哈
2、打开php.ini修改配置,查找; extension_dir = “ext” ,改为extension_dir = “ext的目录” ,比如 extension_dir = “E:\php7\ext”,如下图:
3、打开几个常用的扩展,例如:查到extension=php_mysqli.dll,去掉前面的分号。打开下图中的这几个库:
1、打开Apache的安装目录,找到conf文件夹下的httpd.conf文件并打开
2、找到“Define SRVROOT”这一项,将后面引号内的值改为Apache的安装目录,如下图:
3、文件的末尾添加对PHP的支持及PHP的安装路径,如下图:
代码如下:
# php7 support
LoadModule php7_module "E:php7/php7apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
# configure the path to php.ini
PHPIniDir "E:/php7"
安装好了,配置也完了,下面看看php是否真的安装好了~
1、运行以下命令来检查是否安装了Php,运行cmd进入该目录,执行php -v,
结果弹出窗口提示:PHP Warning: ‘vcruntime140.dll’ 14.0 is not compatible with this PHP build linked with 14.16 in Unknown on line 0
(解释:无法启动此程序,因为计算机中丢失vcruntime140.dll)
(版本输出信息成功的直接跳过1,看第2点)
计算机丢失了vcruntime140.dll,尝试重新安装改程序以解决此问题。
原来在Windows下运行php7需要Visual C++Redistributable 2015而之前的版本不需要那么高的,最新版的Apache可能也需要这个组件,这个组件是运行Visual Studio 2015所建立的C++应用的必要组件,安装一次即可解决环境问题,那么去微软官网下载安装程序,安装一遍即可。有64位版和32位版,根据计算机配置进行下载,下面是下载链接:
64位版下载地址:http://download.microsoft.com/download/9/E/1/9E1FA77A-9E95-4F3D-8BE1-4D2D0C947BA2/enu_INREL/vcredistd14x64/vc_redist.x64.exe
32位版下载地址:http://download.microsoft.com/download/9/E/1/9E1FA77A-9E95-4F3D-8BE1-4D2D0C947BA2/enu_INREL/vcredistd14x86/vc_redist.x86.exe
下载好了
下载之后运行,根据提示安装即可
我下载安装时又出现问题了,提示安装失败,因为我之前已经安装过了Visual Studio 2013,一个集成的开发工具,文件很大达到7G多,这个工具当时是在学校做项目下载用的,真的太大了,运行这么大的文件,电脑经常卡死,所以做开发,建议尽量用简单而小的开发工具。
我回头把Visual Studio 2013卸载了,再重新安装,还是安装失败,怎么回事呢?后来我重启电脑了一下,再点击安装,竟然安装成功了[笑哭]
安装成功了,当然是去检查Php,在cmd执行命令php -v,可以成功输出php版本信息。
php安装成功,下面做个php运行测试
下载后进入目录,在当前目录下新建test.php,输入简单的代码:
<?php
echo "Hello PHP7!";
?>
然后运行cmd进入该目录,执行php test.php
我以为可以正常运行了,结果
提示:Parse error: syntax error, unexpected T_ECHO in "在某某文件“,
我在网上翻阅了一下这种问题,经验是:出现unexpected T_ECHO这个,一般都是中文符号 或者是缺标点符号!
通过测试输出方式找到错误区域,好好检查看看是不是标点符号为中文状态,或者是少了标点,或者多了什么。
我去检查了一下,果然是用了中文符号的;
修改好后,再次运行,成功了。
另外,简单测试一下php7的速度,看一看和php5.6的差距,建立一个简单的time_test.php,进行1000000次随机数和浮点运算,看一下大体时间:
<?php
$time1 = microtime();
for($i = 0;$i <= 1000000;$i++) {
$j = (rand(1,1000) + $i)/1.53 + $i;
}
$time2 = microtime();
echo $time2-$time1;
?>
cmd命令运行,测试速度是出来了0.149008,速度还是很快的,只不过下面结果多了警告,弹出了Warning: A non-numeric value encountered问题。
查看PHP7.1官方文档,对这种错误的解释
New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers (+ - * / ** % << >> | & ^) or their assignment equivalents. An E_NOTICE is emitted when the string begins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value.
翻译:在使用(+ - * / ** % << >> | & ^) 运算时,例如a+b,如果a是开始一个数字值,但包含非数字字符(123a),b不是数字值开始时(b456),就会有A non-numeric value encountered警告。
解决:对于(+ - * / ** % << >> | & ^) 的运算,我们也可以加入转换类型方法intval(),把错误的数值转换。
<?php
$time1 = microtime();
for($i = 0;$i <= 1000000;$i++) {
$j = (rand(1,1000) + $i)/1.53 + $i;
}
$time2 = microtime();
echo intval($time2)-intval($time1);
?>
这样子看不到小数部分了,不过不会警告了。[笑哭]
加入intval方法进行强制转为数值型后,可以解决警告提示问题。
Apache安装默认80端口,查看80端口是否被占用
在dos窗口中输入命令:netstat -ano|findstr “80”,查看被占用的PID
方法一:在任务管理器里面找到该PID所对应的进程,根据该进程找到对应的程序,然后修改该程序的端口为非80端口
如果看到80端口是被PID=4的System进程占用,查看一下服务器是否有安装sqlserver,如果有,则停止SQL Server ReportingServices这个服务,并更改属性为“禁用”
方法二,也可以到httpd.conf文件修改监听端口,把80改成其他可用端口。
下面启动Apache服务器,点击bin文件里的ApacheMonitor.exe,弹出这个
1.首先找到问题原因:cmd–命令端–切换到apache的bin目录,执行如下命令:httpd.exe -w -n “apache2.2” -k start;
第二步,运行netstat -ano 查看本机所有进程,寻找占用端口进程的pid
第三步,运行tasklist | findstr “pid号” ,查询该pid对应的进程名称,如图,我的是magentproc,exe
第四步,运行taskkill /f /t /im 进程名, 结束该进程
bin目录下再输入net start apache2.4,重新启动Apache2,4,启动成功
以管理员身份打开命令行,执行httpd.exe -k install ,安装apache服务
安装成功后,bin目录下输入httpd -k start或者net start apache2.4,成功启动服务器。
启动服务器也可以直接找到apache的安装目录下的bin文件夹,双击ApacheMonitor.exe,双击之后apache就开启了。
可以在任务栏选择下图图标,右键打开Apache Service Monitor窗口,进行Apache服务的管理
浏览器地址栏输入访问地址:http:localhost,显示apache页面,说明服务器启动成功。
服务器访问成功了,那下面测试php运行环境,编辑一个php文件,我命名为phpinfo.php
<?php
phpinfo();
?>
把文件放在htdocs文件下,然后在浏览器输入网址:http://localhost:8081/phpinfo.php,结果not found…,说是在这个服务器上找不到这个文件
但是http://localhost:8081可以正常访问的呀,服务器是正常启动了的,而访问php文件(链接是:http://localhost:8081/phpinfo.php)时却总是报出404 file not found错误。
结果我一直翻看CSDN相关问题文章,一直修改配置文件,试过很多修改,仍然不能解决问题。
就这一个问题,我花了两天,啊啊啊,真的心态崩了,我在想着要不下载个phpstudy吧,听说这个东西集成的(Apache+Php+Mysql一起集成)很好配置。后来我真的下载了,结果连服务器都打不开了。。。。。
我在想估计是端口被占用了吧,我之前没用过phpstudy,还是不要用这个了,所以我直接卸载了。
卸载后,还是启动不了服务器,我试着重启一下电脑,结果可以启动服务器了。也能访问http://localhost:8081,但就是访问不了php文件。
问题还在怎么办呢,我觉得很奇怪,文件明明是放在同一个路径下呀,为什么index.html可以访问,php文件就访问不了呢?
后来,我把index.html文件移走
移走index,html文件后,再访问http://localhost:8081,结果是这样
然后我点击其中一个php文件,我点击了phpinfo.php,竟然可以访问了
真的百思不得其解,没有index.html文件在htdocs文件下就可以访问了
成功显示php页面,到此为止,php+Apache环境搭建完成。
直接把自己的网站文件夹拷进htdocs下,即可访问自己搭建的网站了
这里先简单介绍一下phpMyAdmin
什么是phpMyAdmin ?
phpMyAdmin 是众多 MySQL图形化管理工具中使用最为广泛的一种,是一款使用PHP 开发的基于B/S模式的 MySQL 客户端软件,该工具是基于 Web 跨平台的管理程序,并且支持简体中文,用户可以在官网上下载最新版本的。
phpMyAdmin 为Web 开发人员提供了类似 Access,SQL Server 的图形化数据库操作界面,通过该管理工具可以对 MySQL 进行各种操作,如何创建数据库,数据表和生成 MySQL 数据库脚本文件等。
当前出现很多GUI MySQL客户程序,其中最为出色的是基于 Web 的phpMyAdmin 工具。这是一种 MySQL数据库前台的基于PHP的工具。
PhpMyAdmin 的缺点是必须安装在 Web 服务器中,所以如果没有合适的访问权限,其它用户有可能损害到 SQL 数据。
phpMyAdmin 是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库。通过phpMyAdmin 可以完全对数据库进行操作,例如建立、复制和删除数据等等。如果使用合适的工具,MySQL数据库的管理就会变得相当简单。应用 MySQL 命令行方式需要对 MySQL 知识非常熟悉,对SQL语言也是同样的道理。不仅如此,如果数据库的访问量很大,列表中数据的读取就会相当困难。
php7里,用mysqli和pdo,更加强大,mysql淘汰了
下面来看看PhpMyAdmin能否在localhost打开
输入http://localhost:8081/phpmyadmin/index.php
提示:缺少 mysqli 扩展。请检查 PHP 配置。 详情请查看[a@doc/html/faq.html#faqmysql@documentation]我们的文档。
解决方法:
1.检查php.ini extension_dir 地址是不是指向了php目录的ext目录下这步是关键 我就是处在这一步的问题上 我把 extension_dir = “E:\php7\ext” 设置成了自己的目录 就可以了
2.检查php.ini ;extension=php_mysqli.dll是不是已经启用 也就是去掉前面的;
3.检查lib_mysql.dll有没有拷贝到windows目录下 我们可以找到 MySQL安装文件夹下的E:\mysql8\lib 下的 libmysql.dll 文件 拷贝到 C:\WINDOWS\system32。这个dll文件有多种形式的 有没加下划线的libmysql_d.dll 因此要注意自己看,拷进来了。
4.检查php安装目录ext目录下,php_mysqli.dll文件是不是存在 网上也说明 最好使用zip包解压 不会出现文件丢失
5.查看php详细页面,看看mysql和mysqli是不是已经启动这一步就是检查你有没有开启mysqli的
没有开启的话 你查找mysqli关键字是无法再php详细页面看到的
最后要注意!!!!重启Apache
我重启了好几次,还是打不开/phpmyadmin/index.php
后来,我干脆把两行命令都去掉分号
结果可以成功显示了!就这一个小问题搞了我一天,终于出现这个界面了
1、使用空的初始密码登录mysql账号:
mysql -u root -p
use mysql; 选择mysql数据库。
show databases; 可以看到所有数据库说明成功登陆。
show tables查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。
2、修改root密码:
mysql> update user set Password=password(“123456”) where User=‘root’;
参考链接:
https://blog.csdn.net/galen2016/article/details/80778662
https://jingyan.baidu.com/article/0aa223754be9ce88cc0d640f.html
https://blog.csdn.net/u012371450/article/details/46501035
https://my.oschina.net/lawlietSady/blog/812400