再此之前我要说一句“Java天下第一”(字写小一点,怕被锤)
初触php:
起初是因为工作的原因接触到了php,虽然可以看懂和书写一些简单的php代码,但是还是想找机会深入的学习一下php,毕竟在php程序员看来“php是世界上最优秀的语言”.
闲叙:因为我用的机器以前别人用过,所以上面环境比较混乱,各种坑,配置过程步步为坑,比较艰辛,所以做此博客,望你一马平川
环境介绍:
mas os Catalina 10.15.4
apache 版本 Apache/2.4.41 (Unix)
php 版本 7.4.4(使用Homebrew 安装)
这里多说几句:
1.httpd -v 查看apache 版本
2.httpd -V 特别好用,何以查看apache的安装路径和配置文件路径
3.如果你不是用Homebrew 安装的,也没有问题,只要你记清楚自己将php安装在那个目录
apache:
我这里就不在赘述apache的安装了,在这里简单分享一些配置,启动中遇到的坑点:
1.启动报错:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
这个错误,大概率是端口冲突引起的,所以我们打开httpd的配置文件(上面说过了配置文件改怎么找了哦),看一看
使用 lsof -i:80(Port) 来看一看是否端口已经被占用,如果被占用,你可以:
1.杀死占据这个端口的进程:kill -9 pid
2.更改配置文件中Listen 的端口(改完以后,source一下,再重启一下apache服务器)
2.httpd根目录的寻找(工作目录)
我们就直接去httpd配置文件中找这样比较稳健。
这里这个DocumentRoot 后面的路径就是你httpd服务器的根目录,你可一修改为一个你熟悉的目录,也可以不改。
这个目录下默认有一个index.html文件,你在访问localhost/127.0.0.1:(httpd监听的端口号)时就会默认的访问这个.html文件,这时大概率就会显示 :
3.php模块的导入
对于apache来说,php只是他的一个模块,就像一件衣服,当然他可以有很多的衣服。当然php这件衣服也不只有apache能穿,nginx也行,但是对于我们初学php的同学们来说,apache+php是最为自然的。
说上面这段话的意思就是说,apache和php并不是一一对应的关系,我们可以随意的切换apache加载的php版本,下面我就来说说如何自由的切换。
我是用mac 自带的Homebrew 来下载php的,下载完成后php位于/usr/local/Cellar/php,其它地方的(例如opt)中的一般都是软连接,最终还是指向这个位置(使用别的方式安装的小伙伴别拍桌子,我前面就说了让你记住自己php的安装位置),然后我们在该目录下找到应该在httpd中导入的文件 /usr/local/Cellar/php/7.4.4/lib/httpd/modules/libphp7.so这是我的不一定是你的,你如果懒的找,我就建议你直接用find /usr/local/Cellar/php -name *libphp7.so 直接搜,这个范围很小,很快。
找到了以后,我们就打开httpd.conf也就是httpd的配置文件,将我们自己下载的php环境作为一个模块导入apache,导入格式如下:
LoadModule php7_module /usr/local/Cellar/php/7.4.4/lib/httpd/modules/libphp7.so
-----1------- 2-------------------------3----------------------------------------
第一段:导入模块的开始
第二段导入php的版本(你要是PHP5.x.x 你就写php5_module)
第三段 就是刚才上面带你找的那个地址了,根据自己找到的实际位置写
4.在你的httpd.conf文件中添加如下内容,不然可能无法正常使用php模块的功能(注意根据自己的php版本修改部分内容)
<IfModule dir_module>
<IfModule php7_module>
DirectoryIndex index.php index.html
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>
</IfModule>
注意:
1.确保将配置文件中的其它导入php模块的代码注释掉
2.配置完成后记得source配置文件,然后重启apache
最终测试
在你的工作目录下创建一个一.php结尾的文件(你要是以中文为文件名,我就只能说你太皮了)
添入下面代码:
<?php
echo "I love zhaoyingnan!";
phpinfo();
?>
这时候,你不仅拥有了php,还拥有了我喜欢的女孩子!