Mac安装apache24和PHP多版本切换MongoDB和MYSQL
来源:互联网 发布:python做时间序列分析 编辑:程序博客网 时间:2024/06/08 18:09
Mac安装apache24和PHP多版本切换MongoDB和MYSQL
参考博客
中文翻译
英文原创
安装历程
安装Homebrew
- 打开终端输入($去掉):
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 查看brew的版本:
brew -v
- 看brew是否配置成功:
brew doctor
- 添加第三方仓库:
brew tap homebrew/php
brew tap homebrew/apache
- 更新brew:
brew update
安装Apache
Mac 10.12 有本机预装的Apache2.4,但是删除了很多脚本,要拓展插件还要自己编译,所以特别麻烦,所以抛弃本机自带的,我们自己安装一个。
如果之前已经运行过本机的Apache,那么要执行下面的命令来停止它还有阻止它自启动. $ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
$ brew install httpd24 --with-privileged-ports --with-http2
执行成功出现 ,记住这个路径。 �� /usr/local/Cellar/httpd24/2.4.23_2: 212 files, 4.4M, built in 1 minute 45 seconds
设置自启动
$ sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons$ sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist$ sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
你也可以不设置自启动,以后需要时这样启动
启动Apache:brew services start homebrew/apache/httpd24重启Apache:brew services restart homebrew/apache/httpd24关闭Apache:brew services stop homebrew/apache/httpd24
已经成功安装apache,在chrome运行localhost出现it works
注意,如果不能连接服务器,
$ ps -aef | grep httpd
来查看apache是否运行,
$ sudo apachectl -k restart
重启apache,
$ tail -f /usr/local/var/log/apache2/error_log
来查看错误日志
配置Apache
用mac的文本编辑器来打开,Apache的配置文件
$ open -e /usr/local/etc/apache2/2.4/httpd.conf
搜索 DocumentRoot
,然后你会看到下面这行:
DocumentRoot "/usr/local/var/www/htdocs"
紧接着还要将上面这行代码下面的 <Directory>
也改为你的新的document root
:
<Directory "/Users/your_user/sites">
在 <Directory>
代码块里面,我们还需要将 AllowOverride 改为下面的样子:
# AllowOverride controls what directives may be placed in .htaccess files.# It can be "All", "None", or any combination of the keywords:# AllowOverride FileInfo AuthConfig Limit#AllowOverride All
接下来通过取消注释使用 mod_rewrite
模块:
LoadModule rewrite_module libexec/mod_rewrite.so
现在 Apache 已经指向了我们的用户主目录下的 sites 目录,不过依旧还存在一个问题。Apche 运行的时候,其用户及用户组都是 daemon,当程序访问我们的用户主目录的时候,就会遇到权限问题。解决这个问题的方法就是,在
httpd.conf
将用户和用户组分别改为你的用户名your_user
和staff
PHP的安装
你可以使用 brew options php55
来查看所有可以安装的选项设置,比如在这个例子中,我们使用 --with-httpd24
参数来编译安装 PHP 以及使 Apache 支持 PHP 所需要的一些模块。
$ brew install php55 --with-httpd24$ brew unlink php55$ brew install php56 --with-httpd24$ brew unlink php56$ brew install php70 --with-httpd24$ brew unlink php70$ brew install php71 --with-httpd24
注意:我只安装了
PHP56
还有PHP71
,一个稳定版,一个开发版,你们自己选择。如果之前已经安装过 PHP,可能需要使用reinstall
来代替install
进行安装。
我在安装时遇到这个错误:
==> ./configure --prefix=/usr/local/Cellar/php56/5.6.11_2 --localstatedir=/usr/local/var --sysconfdir=/usr/local/etc/php/5.6 --with-config-file-path=/usr/local/etc/php/5.6 --withchecking whether to enable the SQLite3 extension... yeschecking bundled sqlite3 library... yeschecking for ZLIB support... yeschecking if the location of ZLIB install directory is defined... noconfigure: error: Cannot find libz
其原因可能是 Xcode 的 Command Line Tool 没有正确安装。解决问题的方法是运行下面的命令来重新安装
$ xcode-select --install
可能你要修改PHP配置文件
/usr/local/etc/php/5.5/php.ini/usr/local/etc/php/5.6/php.ini/usr/local/etc/php/7.0/php.ini/usr/local/etc/php/7.1/php.ini
Apache 和 PHP 的配置
我们已经成功安装了多个版本的 PHP,但我们还需要告诉 Apache 怎么使用它们。再次打开 /usr/local/etc/apache2/2.4/httpd.conf
,并搜索 LoadModule php5_module
所在行。
可以发现,每个版本的 PHP 都有一个 LoadModule 入口,每个 LoadModule
都指向一个特定版本的 PHP。这里默认的路径如 /usr/local/Cellar/php71/7.1.0_11/libexec/apache2/libphp7.so
是 brew 应用程序的安装路径,我们可以使用一个更通用的路径来替换它们(具体的路径可能有所不同):
LoadModule php5_module /usr/local/Cellar/php55/5.5.38_11/libexec/apache2/libphp5.soLoadModule php5_module /usr/local/Cellar/php56/5.6.29_5/libexec/apache2/libphp5.soLoadModule php7_module /usr/local/Cellar/php70/7.0.14_7/libexec/apache2/libphp7.soLoadModule php7_module /usr/local/Cellar/php71/7.1.0_11/libexec/apache2/libphp7.so
将上面的路径修改为:
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.soLoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.soLoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.soLoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
之所以可以这么修改,是因为 /usr/local/opt/php71
其实是由 brew 创建的 /usr/local/Cellar/php71 的一个软连接。
这么修改的好处是,升级 PHP 的小版本号的时候,比如由 7.1.0_11
时,我们就不需要再修改 LoadModule
对应的值了
我们每次开发或运行依旧只需要一般也只能使用某一个版本的 PHP。以我们要使用 7.1 这个版本开发应用为例,将其他版本的 LoadModule
都注释掉,只保留对应版本的 LoadModule
:
#LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so#LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so#LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.soLoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
接下来还需要配置 PHP 的主目录索引文件(Directory Indexes),找到下面的代码块:
<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,PHP 的安装就完成了:
$ sudo apachectl -k restart
验证PHP,新建一个index.php
里面输入下面代码:
<?phpphpinfo();?>
打开浏览器输入:http://localhost
,可以看到
PHP版本切换脚本
我使用的是sphp软件,国人很多使用php -v,哪个好用我也不知道。
把sphp放进bin目录下:
$curl -L https://raw.githubusercontent.com/sgotre/sphp-osx/master/sphp > /usr/local/bin/sphp
给sphp权限:
$ chmod +x /usr/local/bin/sphp
Homebrew 在安装程序的时候一般会把程序的可执行文件加入到 /usr/local/bin 和 /usr/local/sbin 这两个目录里面。通过下面的命令可以快速测试可执行文件路径是否正确:
$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
如果没有看到类似的输出,你可能需要手动添加这些路径。添加下面的代码到 shell 的配置文件中(不同的 shell 可能需要将路径添加到不同的配置文件中,如 ~/.profile ~/.bash_profile ~/.zshrc)。如果使用的是 macOS 默认的 shell,则添加到 ~/.profile (若没有这个文件,则创建它);如果使用的是 zsh,则添加到 ~/.zshrc:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
在添加路径到配置文件的时候,最好关闭其他不相关的终端,因为某些开着的终端可能会对路径造成一些奇怪的问题。添加完成后,配置会在下次打开终端的时候生效。或者使用下面的命令,重新载入配置文件使其立即生效
# 若使用的是默认终端$ source ~/.profile# 或如果使用的是 zsh$ source ~/.zshrc
MYSQL数据库的安装
旧版的安装
安装:brew install mysql启动:brew services start mysql重启:brew services restart mysql停止:brew services stop mysql
新版的安装
安装(drop-in replacement):$ brew install mariadb安装:$ mysql_install_db启动:$ mysql.server start停止:$ mysql.server stop修改密码:$ /usr/local/bin/mysql_secure_installation
配置如下:
Enter current password for root (enter for none):<–初次运行直接回车Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车New password: <– 设置root用户的密码Re-enter new password: <– 再输入一次你设置的密码Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
MongoDb的安装
更新Homebrew
的package数据库,在Mac的终端中输入:
$ brew update
开始安装MongoDb
$ brew install mongodb
我用的启动是(后台启动)
sudo mongod -f /usr/local/etc/mongod.conf
连接到MongoDb,可以用命令行工具mongo连接:
$ mongo
推荐使用可视化软件 Robomongo
注意(有用的提示)
Mac OS X取消(本机)Apache(httpd)开机启动
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
如果哪天你想让它开机启动了,则将unload 改为 load:
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
目录结构
brew 软件的根目录
/usr/local/Cellar
brew安装的apache配置文件在
/usr/local/etc/apache2/2.4/httpd.conf
本机自带的apache在
/etc/apache2/httpd.conf
本机PHP的配置文件在
/etc/php.ini
brew 安装的PHP配置在
/usr/local/etc/php/5.6/php.ini
- Mac安装apache24和PHP多版本切换MongoDB和MYSQL
- apache24安装和整合php
- Apache24安装和使用
- 关于最新版apache24版本和php7.0版本的安装以及V14运行库的安装
- mac下安装多版本PHP及切换
- Mac 安装使用apache php 和mysql
- yum安装最新php和MySQL版本
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本Java JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- MAC下安装多版本JDK和切换几种方式
- 零基础学习软件测试从懵逼到吊炸天之基础与进阶篇
- Pixy(Cmucam5)通过SPI与Arduino通信
- 记事本DEMO
- Android APK反编译之路
- Android使用Fiddler模拟弱网络环境测试
- Mac安装apache24和PHP多版本切换MongoDB和MYSQL
- 磁盘阵列(raid)
- react-create-app打包过程遇到的问题
- 简单的线程池
- 【POJ 1789】Truck History(思维,最小生成树)
- Dedecms 搜索页 中pagelist控制 分页失效
- G
- hdu 4960 Another OCD Patient(dp)2014多校训练第9场
- node.js 探索之路(querystring)