MAC OS 12 配置apache2+php

2021-11-2601

前段时间更新了系统到 MAC OS Monterey, 由于之前使用的是系统自带的apache和php,更新后发现项目无法运行
查看apache配置后发现php模块已经移除,配置信息也被重置
由于很久没有动过,所以又是一番折腾

安装php

使用brew安装

brew install php@7.4
1

设置证书

打开 “钥匙串访问->证书助理->创建证书颁发机构” 创建证书颁发机构:
图 1

返回钥匙串访问的证书列表,信任此证书 图 2

代码签名

// 注意libphp7.so路径
sudo codesign --sign "php RootCA" --force --keychain ~/Library/Keychains/login.keychain-db /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
1
2

修改apache配置

以系统自带apache为例
由于上次更新系统导致配置丢失的惨痛教训,不建议直接修改/private/etc/apache2/httpd.conf的配置
可修改/private/etc/apache2/other路径下的配置

private/etc/apache2/other/php7.conf 新增两行

LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so "php RootCA"
// 之前的配置
<IfModule php7_module>
	AddType application/x-httpd-php .php
	AddType application/x-httpd-php-source .phps

	<IfModule dir_module>
		DirectoryIndex index.html index.php
	</IfModule>
</IfModule>
 
 









1
2
3
4
5
6
7
8
9
10
11

配置VirtualHost private/etc/apache2/other/vhosts.conf

// 默认网站根目录/Users/Apache 根据个人情况修改
<VirtualHost _default_:80>
  DocumentRoot "/Users/Apache"
  <Directory "/Users/Apache">
    Options Indexes FollowSymLinks Multiviews
    MultiviewsMatch Any
    AllowOverride All
    Allow from all
    Order allow,deny
    Require all granted
  </Directory>
</VirtualHost>

// 本地调试域名 mall.com
// 网站根目录/Users/project/mall/public
// 根据个人情况修改
// 配置完成后需要同步修改host把域名解析指向本地
<VirtualHost *:80>
    DocumentRoot "/Users/project/mall/public"
    ServerName mall.com
    ServerAlias dev.mall.com
  <Directory "/Users/project/mall/public">
      Options FollowSymLinks
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
  </Directory>
</VirtualHost>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

修改php.ini配置

根据个人需求修改php.ini配置文件,然后复制PHP配置文件到/private/etc/目录

sudo cp /usr/local/etc/php/7.4/php.ini /private/etc/php.ini
1

重启apache2服务

sudo apachectl -k restart
1

验证

在上述默认网站根目录创建index.php文件,访问loalhost,显示php信息即为正常

<?php phpinfo(); ?>
1

评论(0)

评论

dodododooo © 2022

Powered by VuePress

Theme by dodododooo