WampServer安装后,PHP命令行模式为何无法运行?

最近在搞一个PHP项目,环境搭建选的是WampServer。作为一个老司机,我以为这东西安装、运行PHP应该是小菜一碟,结果还是踩了不少坑,今天就来唠唠。

WampServer这东西,安装起来确实简单,双击、下一步、下一步、完成,搞定。但安装完后,你以为直接就可以运行PHP了?Too young, too simple。默认的WampServer安装完,PHP的运行方式是通过Apache模块运行。这也没啥问题,毕竟大多数PHP项目都是这么跑的。

但问题来了,我有个需求是要用PHP的命令行模式来执行一些脚本。在命令行里敲php -v,结果给我来了一句“php不是内部或外部命令,也不是可运行的程序或批处理文件”。这TM啥情况?我一拍脑门,忘了把PHP的可执行文件路径加到系统的环境变量里了。

解决这个问题很简单,找到你的WampServer安装目录,比如默认的是C:\wamp64\bin\php\php7.4.9,把这个路径加到系统的PATH环境变量里,然后重启命令行,再敲php -v,这次应该没啥问题了。

我准备在浏览器里访问localhost,看看Apache跑起来没。结果404,这咋回事?检查了一下,发现WampServer的图标还是橙色的,没有变成绿色,说明服务没起来。右键点击图标,选择“Start All Services”,等了半天,还是橙色。这特么玩我?

打开WampServer的日志文件C:\wamp64\logs\apache_error.log,发现里面有这么一句:[error] (OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : AH00072: make_sock: could not bind to address [::]:80。好,端口80被占用了,估计是IIS或者其他啥东西占用了。

解决这个问题有两种方法,要么把占用80端口的服务停掉,要么修改Apache的监听端口。我选择了后者,打开C:\wamp64\bin\apache\apache2.4.41\conf\httpd.conf,找到Listen 80,改成81或者其他啥没被占用的端口,然后重启WampServer,这次图标终于绿了。

我准备在phpMyAdmin里搞个数据库,结果连上去发现MySQL服务也没启动。查看日志C:\wamp64\logs\mysql.log,发现报错:[ERROR] Can't start server: Bind on TCP/IP port: No such file or directory。这又是啥鬼?看来MySQL的默认端口3306也被占用了。

打开C:\wamp64\bin\mysql\mysql5.7.26\my.ini,找到port = 3306,改成3307,保存,重启WampServer,MySQL服务这次终于起来了。

好,环境终于搭好了,准备写点PHP代码跑起来。我在C:\wamp64\www\新建了个test.php,里面写了句,然后浏览器访问http://localhost:81/test.php,结果发现页面空白,啥也没输出。

这是什么情况?打开错误日志C:\wamp64\logs\php_error.log,发现报了句:PHP Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ',' or ';' in C:\wamp64\www\test.php on line 1。我一看代码,我靠,我把

我准备跑个稍微复杂点的脚本,用到了PDO连接MySQL。我的代码是这样写的:

$dsn = 'mysql:host=localhost;port=3307;dbname=test';

$user = 'root';

$pass = '';

try {

$dbh = new PDO($dsn, $user, $pass);

echo 'Connected to database';

} catch (PDOException $e) {

echo 'Connection failed: ' . $e->getMessage();

}

?>

结果运行后,页面输出“Connection failed: could not find driver”。这又是什么鬼?一查发现,WampServer默认没有启用PDO的MySQL驱动。打开C:\wamp64\bin\php\php7.4.9\php.ini,找到;extension=pdo_mysql,把前面的分号去掉,保存,重启WampServer,这次脚本终于成功连上了数据库。

好了,环境终于调通了,接下来就是撸代码了。写了一会儿,我想试试PHP的错误处理机制,于是在代码里故意写了个错误,想看看WampServer会不会帮我记录下来。结果发现,错误日志里啥也没有。纳尼?这又是咋回事?

打开C:\wamp64\bin\php\php7.4.9\php.ini,找到display_errors = Off,改成On,再找到log_errors = Off,也改成On,保存,重启WampServer,这次故意写的错误终于被记录到日志里了。

到这里,WampServer跑PHP的基本坑都踩过了,环境也调得差不多了,终于可以安心写代码了。总结一下,WampServer这东西,用起来确实方便,但也有很多默认配置需要调整,特别是端口冲突、模块未启用、错误日志未记录这些常见问题,需要特别注意。

给大家分享几个WampServer调优的小技巧:

1. 如果经常需要切换PHP版本,可以在WampServer的菜单里选择“PHP -> Version”,直接切换,很方便。

2. WampServer默认只允许localhost访问,如果想从其他机器访问,可以在C:\wamp64\bin\apache\apache2.4.41\conf\httpd.conf里找到Require local,改成Require all granted,保存,重启Apache。

3. 如果觉得默认的phpMyAdmin不够用,可以试试Adminer,这是个小巧的数据库管理工具,直接放到www目录下就能用。

好,今天的分享就到这里,希望对大家有所帮助。记住,WampServer是好东西,但要用好它,还是得多动手,多折腾。别怕踩坑,踩得多了,你就成老司机了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值