在Mac Apache 2.4.23 下 配置项目运行环境 – 以部署 Laravel项目为例

一、首先安装 Homebrew

终端安装命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

卸载命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

二、由于系统内置到php版本是5.6,目前比较新到几个larval版本和一些composer包要求最低php7,所以需要将系统内置的php5.6升级到php7

我这里选择php7.1

1、安装:
brew reinstall php@7.1 --with-apxs2 --with-apache --with-gmp --with-imap --with-tidy --with-debug --with-httpd24

安装成功后会有一些配置提示,根据提示配置配置文件 # httpd.conf 默认在 /etc/apache2


2、将php7加入环境变量,以便全局使用
sudo vim ~/.bash_profile # bash_profile 这个文件如果不存在到话,需自己创建

export PATH=/usr/local/opt/php@7.1/bin:$PATH  # 根据自己安装到路径配置

3、接下来运行 php -v 查看php版本

 

4、打印phpinfo()  查看是否系统运行的php版本

三、去除URL路由中的 index.php

1、加载 mod_rewrite.so模块

在 httpd.conf 配置中找到  #LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
把前面的 # 去掉

2、将里面的AllowOverride None都改为AllowOverride All

3、在项目的根目录创建.htaccess 文件
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # 如果不是文件夹,则重定向尾随斜杠...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # 前置控制器...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # 处理 Authorization
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

四、配置虚拟主机域名

1、修改 httpd.conf
找到  # Include /private/etc/apache2/extra/httpd-vhosts.conf  将前面到 # 去掉

2、进入 apache2 vhost 配置文件
cd  /etc/apache2/extra

进入后找到 httpd-vhosts.conf 文件
sudo vim httpd-vhosts.conf

可以看到下面两个,把其中一个删除,另一个根据需求配置


3、修改 hosts 文件
在hosts 文件尾部加上以下代码,即前面在httpd-vhosts.conf 填写的 ServerName :

# .com .app 等后缀域名,新版谷歌火狐等浏览器,会强制跳转 https 路径导致访问失败,所以建议采用 .test后缀
127.0.0.1 ServerName.test 

4、重启apache
sudo apachectl restart

5、访问成功


五、到此,所有配置已经完成,最后总结:

   过程中有很多坑,断断续续弄了两天左右,找过很多教程,改过很多配置,很多都没用,也不能说没用,只能说不
适合,环境或者配置稍微有点不一样,结果可能都不一样,所以具体还是要根据自己的环境配置。我上面的是根据我
自己的环境配置出来的,到另一个环境可能又不一样了,不过大致也差不多。

发表评论

电子邮件地址不会被公开。 必填项已用*标注