Mac下配置apache+php环境以及工作空间

写在前面

这篇文章可能会有一些使用上的纰漏(因为并没有仔细研究官方文档),如果有问题欢迎提出来共同学习

本人的使用环境:

macOS 10.14.4 Mojave

Apache 2.4.34

PHP 7.1.23

文末有一定的帮助信息,当然可能没什么用,但是如果遇到了问题,可以参考一下,一般来说按照我的配置走应该是不会有问题的

Apache

简单介绍及命令

众所周知,mac下自带有Apache,下面是几个常用的命令

#启动Apache
sudo apachectl start
#关闭Apache
sudo apachectl stop
#重启Apache
sudo apachectl restart
#如果有兴趣,您也可以查看自己的版本号,命令如下
httpd -v

当然命令是容易的,但是正常运行的情况下是不会有任何提示的,因此如果想要看自己是否启动,就需要浏览器打开http://localhost即可验证。如果显示It Works的字样,那么恭喜你已经成功启动了Apache。

配置PHP相关

众所周知mac还自带的有php,所以不需要安装配置,当然这里我们是要配置Apache下的PHP环境,所以必不可少的需要调整Apache的配置,Apache的配置文件路径在

/private/etc/apache2/httpd.conf

打开访达使用快捷键Command+SHift+G,可以输入文件路径进行跳转,找到该文件后我们可以用编辑器(这里我用的VS Code)打开这个文件,搜索php可以找到

#LoadModule php7_module libexec/apache2/libphp7.so

将前面的#号去掉,重启Apache,即可在Apache下启用PHP。

配置工作路径相关(文章重点)

启动了PHP也是没有终端提示的,因此我们需要手动写一个php文件用来测试,这里我写了一个index.php,内容如下

<?php phpinfo(); ?>

可以显示当前PHP各种信息,最主要还是用来看是否配置成功的。

当我们写好这个文件的时候,你会突然意识到,这个文件要放哪。

#LoadModule userdir_module libexec/apache2/mod_userdir.so

这个时候我们打开Apache的配置文件,其中DocumentRoot就是我们想要的工作空间,默认的路径在/Library/WebServer/Documents,看起来是个不错的路径,但是当我们试图将文件拖入的时候会被要求输入密码,使用命令

ls -l /Library/WebServer/Documents

结果并不出意料

 

不得不说这个目录权限挺劝退的,那我们还是改一下目录吧。改目录有很多种方法,这里介绍两种:

全局修改:

修改Apache配置文件中的DocumentRoot项后面以及<Directory "/Library/WebServer/Documents">中引号内容修改成你想要设置的目录(注意目录权限问题),然后将上下两个<Directory />与<Directory "">标签中的Require all deny改成Require all granted后重启Apache,理论上来说应该可以(但是我失败了,应该是当时目录文件权限出问题了)

按用户修改

在多用户系统中我们通过UserDir指令就可以让每个用户都在自己的主目录下拥有一个网站,这个特性默认是关闭的。不过打开很容易,在 Apache的配置文件中找到

#Include /private/etc/apache2/extra/httpd-userdir.conf
#LoadModule userdir_module libexec/apache2/mod_userdir.so

将这两行前的#号去掉保存即可,然后我们打开/private/etc/apache2/extra/httpd-userdir.conf,找到

#Include /private/etc/apache2/users/*.conf

去掉#号保存就算完成了多用户的配置。当然还没有结束,我们需要使用的用户进行单独的配置。在/private/etc/apache2/users/文件夹下创建一个文件,文件名为终端执行whoami的结果加".conf"(不带引号),例如:

touch novasliver.conf

然后我们在文件内输入如下内容:

UserDir ***
<Directory "****"> 
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

其中***表示你要设置的这个路径相对用户主目录的相对地址,****表示这个路径的绝对路径,上下两个路径请确保是同一个路径(这里同样需要注意路径权限的问题)。然后为了确保直接访问根目录不会出现403,我们仍旧需要将<Directory />标签中的Require all deny改成Require all granted,然后重启Apache,即可通过http://localhost/~username访问你自定义的这个路径了,其中username就是方才的whoami的结果。

虚拟主机

这个网上教程不少的,你看看这个

注意事项

  1. 请务必确保路径的权限,如果按照本文教程出现403错误,多半是文件权限问题,请确保文件夹的访问权限,或者文件夹是否存在。
  2. 方法“按用户修改”中访问时请不要忘记中间的~。
  3. 如果执行启动Apache的命令后打不开http://localhost的话,请执行下面的命令以查看Apache的错误日志:
    tail -f /var/log/apache2/error_log

    然后根据错误日志的内容判断下一步的行为。

  4. 如果想使用http://localhost/~username直接打开你的index.php,请在Apache的配置文件中找到
    <IfModule dir_module>
        DirectoryIndex index.html
    </IfModule>
    在index.html后加入index.php,注意中间要留有空格,其他文件同理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值