Apache的话使用mac自带的基本就够了,本文详细记录之

  • 栏目:前端 时间:2020-04-01 04:13
<返回列表

Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境。但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容易手动搭建,可控性很高。

MAC OS X 10.9.5系统里已经自带了 apache  和 php ,只是默认没有启用,我们将他们启用即可。
APACHE的默认版本是 Apache/2.2.26 (Unix),php版本是PHP 5.4.30。

用惯了在Windows上一个appserv或phpStudy压缩包搞定,要在MAC上捣腾一个PHP开发环境还不大习惯。但自己亲自配一下环境还是有所收获的。众所周知OSX上自带了Apache和php,所以这两个搞起来还比较顺利。装MySQL的最新版5.6.22版颇费周折,本文详细记录之。

Brew

由于调试程序需要,我需要同时安装低版本的php5.3,但是又不希望删除系统预装的php 5.4,或升级/降级系统的php5.4,那么怎么办呢?这个时候,就可以通过brew的方式安装新的php版本。

第一步,先安装 brew

apache的配置

apache已经自带了,只需如下三个命令就可以了。
开启apache服务 sudo apachectl start
停止apache服务 sudo apachectl stop
重启服务 sudo apachectl restart
查看版本 httpd -v

手动打开apache服务后,在浏览器输入localhost,将看到如下:
图片 1

程序的根目录在/Library/WebServer/Documents/ 下,这个It works 就是里面的info.php打印出来的。下面介绍如何将apache的这个默认目录更改到用户目录下。
1,在自己的用户目录下新建一个Sites文件夹,我的用户目录为yanzi

2,进到cd /etc/apache2/users/目录下,sudo vim username.conf,内容为:

<Directory "/Users/yanzi/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>

上面第一行里的yanzi就是用户目录。然后将该文件权限改为644:
sudo chmod 644 username.conf

3,进到/etc/apache2/目录,sudo vim httpd.conf 将下面三句话的注释去掉:
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
前两句应该已经不带注释了,把第三句注释放开。
然后找到Include /private/etc/apache2/extra/httpd-userdir.conf 注释放开。
PS:在vim下只要切换到命令模式,然后输入/”words you need find”就能快速找到需要查找的词。

4,进到/etc/apache2/extra/目录,
sudo vim httpd-userdir.conf
将Include /private/etc/apache2/users/*.conf 这句话放开注释。

然后终端输入:sudo apachectl restart 重启apache,浏览器输入: loacal/~yanzi/ 就能看到效果了。(yanzi是我的用户目录的名字,后面不用再加/Sites
经过以上步骤apache就搞好了。

brew对于mac,就像apt-get对于ubuntu,安装软件的好帮手,不能方便更多…

Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。 Mac 自带ruby 所以安装起来很方便,同时它也会自动把git也给你装上。官方网站:

PHP配置

PHP的配置非常简单,就一个事,进到/etc/apache2/目录,编辑httpd.conf,找到LoadModule php5_module libexec/apache2/libphp5.so将其放开注释就行了。

然后sudo apachectl restart 重启,在用户目录的Sites文件夹下,新建一个index.php,里面echo phpinfo() ,就可以看到效果了:
图片 2

brew的安装方式如下:

在mac下终端里直接输入命令行:

安装MySQL5.6.22

这个版本是最新的MySQL,安装方法跟5.5的略有不同。在官网下载mysql-5.6.22-osx10.9-x86_64.dmg,下面是安装方法:
1,双击安装的时候,不要勾选StartUp Item这一项:
图片 3
如此安装完毕后,在设置---MySQL手动开启MySQL服务。
图片 4
我这里已经打开了MySQL服务。下面要将其设置为开机自动启动。

2,默认状态下,我们用mysql的命令每次都要输入全路径,如sudo /usr/local/mysql/support-files/mysql.server start 开启mysql服务,/usr/local/mysql/bin/mysql -v查看mysql版本,得先把bin目录配到环境变量里。切换到用户根目录 ,vim .bash_profile,输入:
export PATH=”/usr/local/mysql/bin:$PATH”
保存后,source .bash_profile使环境变量生效。接着就可以直接在终端里输入mysql命令了。
最后,通过mysqladmin -u root password ‘yourpasswordhere’ 给mysql的root用户设置密码。单引号里的内容就是要设的密码。

备注:有时上面这个命令不能修改root密码,需要借助phpmyadmin来修改。其实mysql这个版本默认的root密码为root。

3,修复socket error的问题。有一个负责mysql 服务器 客户端通讯的socket文件,mysql的这个版本将其放在/tmp目录,但是OSX却默认的找 /var/mysql 这个目录,所以要建个软链接。新建目录 /var/mysql, 然后sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock 就ok了。

4,让mysql开机自动启动。
sudo vim /Library/LaunchDaemons/com.mysql.mysql.plist,里面内容输入:

KeepAlive

Label
com.mysql.mysqld
ProgramArguments

/usr/local/mysql/bin/mysqld_safe
–user=mysql

保存后,修改权限:
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
这样mysql就ok了!

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

phpMyAdmin的安装

从 下载,我下的是phpMyAdmin-4.4.2-all-languages.zip这个版本,将其解压。然后最外层文件夹名字修改为phpmyadmin,进到~/Sites/phpmyadmin这个目录,新建文件夹:mkdir config 修改读写权限:chmod o+w config
然后浏览器输入: (注意 中间的yanzi 换成自己的用户名称)
图片 5
点击 “新建服务器“,我上面已经新建好了,然后在这个界面:
图片 6
密码处输入mysql的root用户密码。然后点击”应用”,记得在如下界面点击保存按钮这样config文件夹下就生成了config.inc.php,将该文件拷贝到phpmyadmin的根目录下。
图片 7
然后删除整个config文件夹。输入 就可以看到登陆phpmyadmin的界面了。 如此,phpMyAdmin搞定。

brew常用选项

安装完成之后,建议执行一下自检:brew doctor 如果看到Your system is ready to brew. 那么你的brew已经可以开始使用了。

读写权限和分组问题

最后遗留一个读写权限和归属问题,如果本地开发测试的话,这个步骤可以忽略。如果想让自己的mac切实作为一台服务器,那么这个还要设置下的。这个步骤等同于在布阿里云代码的时候,让public_html文件夹的所有东西可写,且归属于www一个意思。假设Sites文件夹下有个自己的项目:testsite
sudo chmod -R a+w ~/Sites/testsite 设置所有人都可以读写

sudo chown -R _www ~/Sites/testsite 设置testsite文件夹只归属_www组。

OK,PHP在MAC上的搭建到此结束。

参考文献:
1.
2. (参考这个没有搞成功)

附一个设置php虚拟主机的链接:

另外 ,如果你一不小心安错了,那么可以参考下面删除mysql:

版权声明:本文为博主原创文章,未经博主允许不得转载。


brew install xxx
brew uninstall xxx
brew list 
brew update xxx

常用命令: (所有软件以PHP5.5为例子)

Apache || Nginx

brew update                        #更新brew可安装包,建议每次执行一下
brew search php55                  #搜索php5.5
brew tap josegonzalez/php          #安装扩展<gihhub_user/repo>  
brew tap                           #查看安装的扩展列表
brew install php55                 #安装php5.5
brew remove  php55                 #卸载php5.5
brew upgrade php55                 #升级php5.5
brew options php55                 #查看php5.5安装选项
brew info    php55                 #查看php5.5相关信息
brew home    php55                 #访问php5.5官方网站
brew services list                 #查看系统通过 brew 安装的服务
brew services cleanup              #清除已卸载无用的启动配置文件
brew services restart php55        #重启php-fpm

第二步,安装PHP

   
先添加brew的PHP扩展库:

Apache

brew update
brew tap homebrew/dupes
brew tap homebrew/php
brew tap josegonzalez/homebrew-php

Apache的话使用mac自带的基本就够了,我的系统是10.9,可以使用以下命令控制Apache

可以使用 brew options php53 命令来查看安装php5.3的选项,这里我用下面的选项安装:

sudo apachectl start
sudo apachectl restart
sudo apachectl stop

brew install php53 --with-apache --with-gmp --with-imap --with-tidy --with-debug

唯一要改的是主目录,mac默认在home下有个sites(站点)目录,访问路径是

请注意:如果你希望以mac下的apache作为web server,编译时要加 --with-apache;如果你的web server 是 nginx这类,就需要加上 --with-fpm。

http://localhost/~user_name

Options
--disable-opcache
Build without Opcache extension
--disable-zend-multibyte
Disable auto-detection of Unicode encoded scripts
--homebrew-apxs
Build against apxs in Homebrew prefix
--with-apache
Enable building of shared Apache 2.0 Handler module, overriding any options which disable apache
--with-cgi
Enable building of the CGI executable (implies --without-apache)
--with-debug
Compile with debugging symbols
--with-fpm
Enable building of the fpm SAPI executable (implies --without-apache)
--with-gmp
Build with gmp support
--with-homebrew-curl
Include Curl support via Homebrew
--with-homebrew-libxslt
Include LibXSLT support via Homebrew
--with-homebrew-openssl
Include OpenSSL support via Homebrew
--with-imap
Include IMAP extension
--with-libmysql
Include (old-style) libmysql support instead of mysqlnd
--with-mssql
Include MSSQL-DB support
--with-pdo-oci
Include Oracle databases (requries ORACLE_HOME be set)
--with-phpdbg
Enable building of the phpdbg SAPI executable (PHP 5.4 and above)
--with-postgresql
Build with postgresql support
--with-thread-safety
Build with thread safety
--with-tidy
Include Tidy support
--without-bz2
Build without bz2 support
--without-mysql
Remove MySQL/MariaDB support
--without-pcntl
Build without Process Control support
--without-pear
Build without PEAR
--without-snmp
Build without SNmp support
--HEAD
Install HEAD version

这样很不适合做开发用,修改/etc/apache2/httpd.conf内容

HP编译过程中如果遇到 configure: error: Cannot find OpenSSL's <evp.h> 错误,执行 xcode-select --install 重新安装一下 Xcode Command Line Tools 即可解决该错误(来源:

DocumentRoot "/Users/username/Sites"
<Directory />
    Options Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

安装完php后,会有一段提示,请仔细阅读:

这样sites目录就是网站根目录了,代码都往这个下头丢

Caveats
To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php5_module    /usr/local/opt/php53/libexec/apache2/libphp5.so

Nginx

The php.ini file can be found in:
    /usr/local/etc/php/5.3/php.ini

要使用Nginx也比较方便,首先安装

✩✩✩✩ PEAR ✩✩✩✩

brew install nginx

If PEAR complains about permissions, 'fix' the default PEAR permissions and config:
    chmod -R ug+w /usr/local/Cellar/php53/5.3.29/lib/php
    pear config-set php_ini /usr/local/etc/php/5.3/php.ini

启动关闭Nginx的命令如下(如果想要监听80端口,必须以管理员身份运行)

✩✩✩✩ Extensions ✩✩✩✩

#打开 nginx
sudo nginx
#重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
#测试配置是否有语法错误
nginx -t

If you are having issues with custom extension compiling, ensure that
you are using the brew version, by placing /usr/local/bin before /usr/sbin in your PATH:

配置Nginx

      PATH="/usr/local/bin:$PATH"

cd /usr/local/etc/nginx/
mkdir conf.d

PHP53 Extensions will always be compiled against this PHP. Please install them
using --without-homebrew-php to enable compiling against system PHP.

修改Nginx配置文件

✩✩✩✩ PHP CLI ✩✩✩✩

vim nginx.conf

If you wish to swap the PHP you use on the command line, you should add the following to ~/.bashrc,
~/.zshrc, ~/.profile or your shell's equivalent configuration file:

主要修改位置是最后的include

export PATH="$(brew --prefix homebrew/php/php53)/bin:$PATH"

worker_processes  1;  

error_log       /usr/local/var/log/nginx/error.log warn;

pid        /usr/local/var/run/nginx.pid;

events {
    worker_connections  256;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log      /usr/local/var/log/nginx/access.log main;
    port_in_redirect off;
    sendfile        on; 
    keepalive_timeout  65; 

    include /usr/local/etc/nginx/conf.d/*.conf;
}

To have launchd start php53 at login:
    ln -sfv /usr/local/opt/php53/*.plist ~/Library/LaunchAgents
Then to load php53 now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php53.plist
==> Summary
   /usr/local/Cellar/php53/5.3.29: 480 files, 31M, built in 12.9 minutes

修改自定义文件

   
等待PHP编译完成,开始安装PHP常用扩展,扩展安装过程中 brew会自动安装依赖包,使用 brew search php53- 命令,可以查看还有哪些扩展可以安装,然后执行 brew install php53-XXX 就可以了。

vim ./conf.d/default.conf

由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本:

增加一个监听端口

echo 'export PATH="$(brew --prefix homebrew/php/php53)/bin:$PATH"' >> ~/.bash_profile  #for php
echo 'export PATH="$(brew --prefix homebrew/php/php53)/sbin:$PATH"' >> ~/.bash_profile  #for php-fpm
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile #for other brew install soft
source ~/.bash_profile  #更新配置

server {
    listen       80;
    server_name  localhost;

    root /Users/username/Sites/; # 该项要修改为你准备存放相关网页的路径

    location / { 
        index index.php;
        autoindex on; 
    }   

    #proxy the php scripts to php-fpm  
    location ~ .php$ {
        include /usr/local/etc/nginx/fastcgi.conf;
        fastcgi_intercept_errors on; 
        fastcgi_pass   127.0.0.1:9000; 
    }   

}

如何卸载安装的 php5.3呢?

这个时候还不能访问php站点,因为还没有开启php-fpm。

# 卸载
brew uninstall php53
# 清除缓存以及老旧版本文件
brew cleanup -s

虽然mac 10.9自带了php-fpm,但是由于我们使用了最新的PHP,PHP中自带php-fpm,所以使用PHP中的php-fpm可以保证版本的一致。

测试一下效果:

这里的命令在安装完下一步的php后再执行

$ php -v
PHP 5.3.29 (cli) (built: Jan 24 2015 12:40:58) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies

sudo nginx
sudo php-fpm -D

# mac系统自带的php
$ /usr/bin/php -v
PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

PHP

由于我们没有安装php的fpm模式,所以 php-fpm -v 命令显示的是mac自带的:
$ php-fpm -v
PHP 5.4.30 (fpm-fcgi) (built: Jul 29 2014 23:44:15)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

PHP在mac下默认安装了,但是不好控制版本,利用brew可以再mac下安装最新版本,甚至是多个版本,我装了php5.5

 
这个时候,我们使用 phpinfo 函数显示出来的php版本还是max自带的PHP5.4,需要我们修改 apache的配置文件 httpd.conf,加载的php5模块路径指向刚刚安装的 php5.3目录里的 libphp5.so:

brew update
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
# brew install php55 --with-fpm #Nginx
brew install php55 #Apache

LoadModule php5_module    /usr/local/opt/php53/libexec/apache2/libphp5.so
 
重启apache,phpinfo() 脚本里显示的 php 版本就变成了 PHP Version 5.3.29。

然后修改php的cli路径和apache使用的php模块。在.bashrc或.zshrc里头加以下内容

#export PATH="$(brew --prefix josegonzalez/php/php55)/bin:$PATH" 
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"

就用刚刚安装的php代替了系统默认cli的php版本。然后在/etc/apache2/httpd.conf下增加

LoadModule php5_module /usr/local/Cellar/php55/5.5.8/libexec/apache2/libphp5.so

这样就对apache使用的php版本也进行了修改。

后面会用到mongo和mysql,所以可以直接利用下面命令安装php模块,其他模块也类似

brew install php55-mysql
brew install php55-mongo

MySQL

mac不自带mysql,这里需要重新安装,方法依然很简单

brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
sudo chown -R your_user /usr/local/var/mysql/

第一句是安装,后面的是确保正常使用。然后是启动命令

mysql.server start

最好给mysql设个密码,方法如下

mysqladmin -u root password 'xxx'

如果想修改mysql的配置,在/usr/local/etc下建立一个my.cnf,例如增加log

[mysqld]
general-log
general_log_file = /usr/local/var/log/mysqld.log

MongoDB

MongoDB可以说是最简单的一个,直接执行

brew install mongodb

启动方法

mongod --fork

PHPMyAdmin

phpmyadmin几乎是管理mysql最容易的web应用了吧,每次我都顺道装上。

1.去官网下载最新的版本
2.解压到~/Sites/phpmyadmin下
3.在phpmyadmin目录下创建一个可写的config目录
4.打开
5.将config下生成的config.inc.php移到phpmyadmin根目录下
6.删除config

这样就装好了,虽然可能有点小复杂,但是来一次就习惯了。

这里很可能会遇到2002错误,就是找不到mysql.sock的问题,用下面方法解决

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

RockMongo

RockMongo是MongoDB很好用的一个web应用,安装也很容易

1.去官网下载最新版本
2.解压到~/Sites/rockmongo下
3.运行

完成

这样就在mac下配置好一个php开发环境了,enjoy it!

上一篇:或者定义一些数据库的帐号密码,MySQL作为数据库 下一篇:没有了

更多阅读

Apache的话使用mac自带的基本就够了,本文

前端 2020-04-01
Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境。但是集成环境对于经常需要自定义...
查看全文

也就是表单POST过来的数据,希望可以帮助

前端 2020-04-01
PHP如何获取表单的POST数据呢?本文介绍3种获取POST数据的方法,并将代码附上,希望可以帮助...
查看全文

或者定义一些数据库的帐号密码,MySQL作

前端 2020-03-30
设置环境变量常见的地方为区分开发环境/生产环境,或者定义一些数据库的帐号密码 登录启动...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有