MacOS lamp
mac下没有绿色环保的lamp一键包;简单记录一下配置过程,偶尔能用上。
主要利用Homebrew安装mysql,并替换自带apache,建议使用前先可以“科学上网”,不然可能会有障碍。
另外这个组合的名字应该叫UAMP或者MAMP才对!
2024年4月更新
写在最前面
你应该有一款好用的代码编辑器,如Visual Studio Code或者Sublime Text
关于homebrew
在进行以下内容前,安装好homebrew是必要的!
如果没有“通畅的”网络,请使用如下命令安装
/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
这里再提一句,如果不想折腾,MAMP Pro这个方案仍旧是多数人明智的选择。
用到的工具
除了homebrew以外,还需要Xcode和openssl,事实上安装homebrew时会自动安装xcode,但由于网络问题往往会失败。
安装XCode命令工具
xcode-select --install
如果安装失败,请自己去官网下载对应版本。官网地址
安装openssl(这是为了防止过程中遇到一些运行库缺失的情况)
brew install openssl
Apache安装
最新的macOS预装了Apache 2.4,但是苹果已经删除了此版本中一些必需的脚本。解决方案是通过Homebrew安装Apache 2.4,然后将其配置为在标准端口(80/443)上运行。
如果你已经运行了内置的Apache,则需要先关闭它,并删除任何自动加载脚本。
sudo apachectl -k stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
现在我们需要安装Brew提供的新版本:
brew install httpd
你也许会看到已经安装的提醒,可以尝试再执行
brew reinstall httpd
现在需要配置一些东西,以便新的Apache服务自动启动
brew services start httpd
现在已经安装了Homebrew的Apache,可以访问http://localhost:8080
,应该会看到“It works!”。
顺带一提,通过这些命令操作Apache服务:
brew services stop httpd
brew services start httpd
brew services restart httpd
Apache配置
Apache的配置文件位置为:/opt/homebrew/etc/httpd/httpd.conf
。
需要更改:
1,将监听端口从默认值8080设置为80
将Listen 8080
改为Listen 80
。
2,更改Apache的文档根目录
搜索DocumentRoot
,您应该会看到:
DocumentRoot "/opt/homebrew/var/www"
将此更改为指向您的用户目录,其中your_user是您用户帐户的名称:即在mac访达的个人文件夹中新建www目录。
DocumentRoot "/Users/your_user/www"
还需要更改DocumentRoot行下方的
<Directory "/Users/your_user/Sites">
在同一
AllowOverride All
3,启用apache的重定向
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
删除上面这一行前面的#
即可。
4,更改用户和组
现在还有一个问题存在。默认情况下,apache以用户_www和组_www身份运行。当尝试访问我们主目录中的文件时,这将导致权限问题。在httpd.conf文件的大约三分之一处,有两个设置来设置Apache将运行的User和Group。更改这些以匹配您的用户帐户(用您的真实用户名替换your_user),并将Group设置为staff:
即更改
User _www
Group _www
为
User your_user
Group staff
这一点设置至关重要,否则你会无奈地遇到403无权访问。
5,设置服务器名称
Apache配置中有一个服务器名称,默认是禁用的:
#ServerName www.example.com:8080
可以将其替换为(或某域名,并将该域名在hosts中指定到localhost):
ServerName localhost
设置网站文件夹
上面将网站默认目录改为了个人文件夹下的www目录,所以别忘记新建这个文件夹:
mkdir ~/www
并在里面放入一个index.html文件,内容随便吧,比如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>我的macOS 网络开发环境</title>
</head>
<body>
<h1>我的macOS 网络开发环境</h1>
</body>
</html>
完成了以上的配置,重启apache使之生效
brew services stop httpd
brew services start httpd
PHP安装
这里我安装的是7.4版本
brew install php@7.4
brew link php@7.4
设置环境变量
echo 'export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
export LDFLAGS="-L/opt/homebrew/opt/php@7.4/lib"
export CPPFLAGS="-I/opt/homebrew/opt/php@7.4/include"
刷新
source ~/.zshrc
查看php版本
php -v
启动
brew services start php@7.4
关闭
brew services stop php@7.4
安装php版本切换工具
brew install brew-php-switcher
切换版本(如切换到7.2版本)
brew-php-switcher php@7.2
配置apache和php
1,安装完php,需要告诉apache去调用它。
同样打开/opt/homebrew/etc/httpd/httpd.conf
滚动到LoadModule条目的底部。在
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
下面插入:
LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
记得对应自己的php版本号!
2,设置默认文档类型
搜索:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
替换为:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
保存文件并重启Apache
brew services stop httpd
brew services restart httpd
4,验证PHP
在www目录中新建index.php,写入<?php phpinfo();?>
访问http://localhost/index.php
安装mysql
建议安装5.7版本
brew install mysql@5.7
设置环境变量
echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/mysql@5.7/sbin:$PATH"' >> ~/.zshrc
export LDFLAGS="-L/opt/homebrew/opt/mysql@5.7/lib"
export CPPFLAGS="-I/opt/homebrew/opt/mysql@5.7/include"
刷新
source ~/.zshrc
设置root密码
mysqladmin -u root -p "你的密码"
phpMyAdmin
建议下载phpmyadmin用来管理mysql,下载解压后,将文件夹放入www目录下,访问http://localhsot/phpmyadmin即可
开启伪静态
这部分应该在apache和php配置里面,遗漏了,补上。
在apache2.conf中添加一段代码:
<Directory /var/www/>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</Directory>
重启apache即可。
其它的事情
brew安装mysql后默认是打开“严格模式”的,这有好处也有坏处;比如我原先的代码就无法运行了。
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #3
of SELECT list is not in GROUP BY clause and contains nonaggregated
column 'zizcn.typecho_comments.url' which is not functionally
dependent on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
在MySQL5.7之后sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。
当然遇到问题应该修改自己的错误代码,但是当下需要来说,也可以先关闭mysql的严格模式。
打开/opt/homebrew/etc/my.cnf
插入sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
结果如下:
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
重启mysq
lbrew services restart mysql@5.7
即可。
----------
以下为原内容
历经数年,以下内容已经不再有效了,文章最正面开始新的内容。
使用自带Apache
启动自带apache sudo apachectl start
开启php支持并配置伪静态
开启php支持并配置网站根目录
修改etc/apache2/httpd.conf
中两处参数。
a,启用 LoadModule php7_module libexec/apache2/libphp7.so
即可支持php
b,更改DocumentRoot
为以下内容即可更改网站根目录,方便操作。
DocumentRoot "/users/username/sites"
<Directory "/users/username/sites">
开启apache伪静态
仍旧是修改etc/apache2/httpd.conf
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
找到上面这一行,去掉#注释
在你所定义的网站路径部分里找到如下内容
<Directory "/users/username/sites"">
AllowOverride none
</Directory>
并修改为
<Directory "/users/username/sites"">
AllowOverride All
</Directory>
建立.htaccess文件!
在终端中cd到你的网站目录vim .htaccess
,以typecho为例,插入以下内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
修改权限sudo chmod -R 777 .htaccess
并重启apache sudo apachectl restart
安装配置 mysql
首先,安装 brew (可能需要f墙)
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
用brew安装配置mysql5.7
brew install mysql@5.7
sudo chmod -R 777 /usr/local/share/man/man8
ln -sfv /usr/local/opt/mysql@5.7/*.plist ~/Library/LaunchAgents
mysql.server start
设置mysql密码 mysqladmin -u root password "123456"
phpmyadmin
下载phpmyadmin放在sites根目录下,更改config.sample.inc.php为config.inc.php并更改localhost为127.0.0.1,即可登录管理。
至此所有配置完成!
本文最后更新时间为 2024-06-19 10:36
本站仅用作个人记录,不交流、不讨论,留言板可以留言但无邮件回复。