mac 10.9.x已经自带了apache,可按如下步骤开启: 1、启动 sudo apachectl start 启动后,访问 http://localhost/ 应该能看到 it works! 的初始页面,如果对初始页面的内容感到好奇,可以打开/etc/apache2/httpd.conf,197行可以看到如下代码片段: 1 direct
mac 10.9.x已经自带了apache,可按如下步骤开启:
1、启动
sudo apachectl start
启动后,访问 http://localhost/ 应该能看到it works!的初始页面,如果对初始页面的内容感到好奇,可以打开/etc/apache2/httpd.conf,197行可以看到如下代码片段:
1 directory /library/webserver/documents> 2 # 3 # possible values for the options directive are none, all, 4 # or any combination of: 5 # indexes includes followsymlinks symlinksifownermatch execcgi multiviews 6 # 7 # note that multiviews must be named *explicitly* --- options all 8 # doesn't give it to you. 9 #10 # the options directive is both complicated and important. please see11 # http://httpd.apache.org/docs/2.2/mod/core.html#options12 # for more information.13 #14 options indexes followsymlinks multiviews15 16 #17 # allowoverride controls what directives may be placed in .htaccess files.18 # it can be all, none, or any combination of the keywords:19 # options fileinfo authconfig limit20 #21 allowoverride none22 23 #24 # controls who can get stuff from this server.25 #26 order allow,deny27 allow from all28 29 directory>
it works的内容,就在/library/webserver/documents/index.html.en这个文件里,这是apache的默认页,相当于windows下iis的c:\inetpub\wwwroot\iisstart.htm
2、重启/停止
sudo apachectl restart
sudo apachectl stop
3、创建个人站点目录
cd ~/
mkdir sites
echo hello >> index.html
sudo apachectl restart
然后再访问 http://localhost/~jimmy/ 应该就能看到hello的个人目录初始页面(注:~jimmy需换成~你的用户名)
如果失败,请检查/etc/apache2/users目录下,是否有名为“jimmy.conf”的配置文件(同样:jimmy需换成你的用户名),如果没有,手动创建一个,内容参考下面:
1 directory /users/jimmy/sites/>2 options followsymlinks indexes multiviews3 allowoverride all4 order allow,deny5 allow from all6 directory>
如果好奇目录名为什么是sites? 可以查看/etc/apache2/extra/httpd-userdir.conf
1 # settings for user home directories 2 # 3 # required module: mod_userdir 4 5 # 6 # userdir: the name of the directory that is appended onto a user's home 7 # directory if a ~user request is received. note that you must also set 8 # the default access control for these directories, as in the example below. 9 #10 userdir sites11 12 #13 # users might not be in /users/*/sites, so use user-specific config files.14 #15 include /private/etc/apache2/users/*.conf16 ifmodule bonjour_module>17 registerusersite customized-users18 ifmodule>
第10行就是答案
4、启用虚拟主机
默认情况下,apache的虚拟主机功能是关闭的,在“/etc/apache2/httpd.conf”中找到下面这行:
#include /private/etc/apache2/extra/httpd-vhosts.conf
将前面的#去掉,然后再打开“/etc/apache2/extra/httpd-vhosts.conf”,内容修改成类似下面的样子:
1 namevirtualhost *:80 2 3 virtualhost *:80> 4 documentroot /users/jimmy/sites 5 servername www.yjmyzz.com 6 errorlog /users/jimmy/sites/log/error.log 7 customlog /users/jimmy/sites/log/access.log common 8 directory /> 9 options indexes followsymlinks multiviews10 allowoverride none11 order deny,allow12 allow from all13 directory>14 virtualhost>
注:
a) /users/jimmy/sites/log/ 日志文件目录,必须存在,否则apache启动将失败,而且不会有任何错误提示
b) 虚拟主机的站点根目录,建议放在~/sites/下,否则mac环境中会报类似“无权限访问”的错误。
这段配置绑定了一个不存在的域名www.yjmyzz.com到站点http://localhost/~jimmy/,为了验证域名绑定的效果,手动修改下hosts文件
sudo vi /etc/hosts 以管理员身份打开hosts文件,追加一行
127.0.0.1 www.yjmyzz.com
保存退出,重启apache,再次浏览 http://www.yjmyzz.com 应该ok了,看到的内容跟http://localhost/~jimmy/ 一样
tips: 如果站点根目录,想放到其它位置,在httpd.conf中找到
1 directory />2 options followsymlinks3 allowoverride none4 order deny,allow5 deny from all6 directory
把4,5行删除掉就行了
5、url转发
先打开httpd.conf,确保下面这二行没有被注释掉:
1 loadmodule proxy_module libexec/apache2/mod_proxy.so2 loadmodule proxy_http_module libexec/apache2/mod_proxy_http.so
然后在httpd.conf最后加上
1 proxypass /helloapp http://localhost:8080/helloapp/2 proxypassreverse /helloapp http://localhost:8080/helloapp/
这样访问 http://localhost/helloapp、http://ip/helloapp、http://www.yjmyzz.com/hellpapp 都相当于访问 http://localhost:8080/helloapp
6、端口转发
假如服务器上有一个应用 http://x.x.x.x:8080/ ,如果想通过类似 http://www.yjmyzz.com 的域名来直接访问,就需要做端口转发,仍然打开httpd.conf
1 loadmodule proxy_connect_module modules/mod_proxy_connect.so2 loadmodule proxy_ftp_module modules/mod_proxy_ftp.so
在5、url转发的基础上,再打开这二项
然后修改extra/httpd-vhosts.conf
1 namevirtualhost *:80 2 3 virtualhost *:80> 4 proxypreservehost on 5 servername www.yjmyzz.com 6 7 proxypass / http://www.yjmyzz.com:8000/ 8 proxypassreverse / http://www.yjmyzz.com:8000/ 9 10 serveradmin webmaster@localhost11 virtualhost>
在mac os x 10.8中配置apache+php+mysql的内容包括:
配置apache配置php安装mysql配置phpadmin设置数据库默认字符集一. 配置apache
1. 启动apache
打开终端,输入:
sudo apachectl start
打开浏览器,输入:
http://localhost
应该可以看到”it works!“的页面,该页面位于/library/webserver/documents/目录下,这是apache的默认根目录。
2. 配置用户访问目录
在终端中输入:
mkdir ~/sites
cp /library/webserver/documents/index.html.en index.html
在用户目录下新建一个名为sites的目录,作为用户目录的访问路径,并将 /library/webserver/documents/index.html复制到用户目录
输入:
cd /etc/apache2/users/sudo vi apple.conf
注意:其中apple是你的用户名。
在vi中,按i开始输入,并输入以下内容:
/users/apple/sites/>
options indexes multiviews
allowoverride all
order allow,deny
allowfrom all
输入完成后,按esc键,然后输入:wq,保存并关闭vi。
注意:文件的第一行用于指定用户目录的位置,其中apple是你的用户名。
在终端中输入:
sudo apachectl restart
重新启动apache,此时可以在浏览器中访问:
http://localhost/~apple
二. 配置php
在终端中输入:
cd /etc/apache2/
sudo vi httpd.conf
在vi中,输入/php搜索包含php的文本,找到:
#loadmodule php5_module libexec/apache2/libphp5.so
删除前面的#,然后保存退出。(按shift+i行首输入,按esc退出编辑,按x删除当前字符,及#,输入:wq,保存并退出。)
在终端输入:
cd /etc
sudo cp php.ini.default php.ini
sudo apachectl restart
在终端输入:
cd ~/sites
vi info.php
然后在info.php中输入以下内容:
html>body>h1>it works!h1>php phpinfo(); ?>body>html>
在浏览器输入:
http://localhost/~apple/info.php
三. 安装mysql
1. 从mysql官方网站下载mysql-5.6.12-osx10.7-x86_64.dmg,双击打开该dmg文件。
2. 运行mysql-5.6.12-osx10.7-x86_64.pkg,安装主程序包;
3. 运行mysqlstartupitem.pkg,让mysql开机自动运行;
4. 运行mysql.prefpane,在系统偏好中增加mysql服务管理选项;
在终端输入:
sudo chmod +w bashrcsudo vi /etc/bashrc
在bashrc的末尾增加以下两个命令别名,便于快速使用mysql
#mysql
alias mysql='/usr/local/mysql/bin/mysql'
alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
提示:在bashrc中添加命令别名之后,需要重新启动终端。
修改mysql默认密码,在终端输入:
mysqladmin -u root password 123
其中123位置你可以指定任意密码。
如果要更改密码可以输入
mysqladmin -u root -p password 123
更改密码前先需要输入以前正确的密码才可以。
四. 配置phpadmin
1. 下载phpadmin,解压缩到~/sites目录下,并将目录重命名为:phpmyadmin;
2. 在浏览器中输入:
http://localhost/~apple/phpmyadmin/setup/
添加一个服务器配置即可。
五. 设置数据库默认字符集
在终端输入:
mysql -u root -p
# 创建名为 mydb 的数据库
create database mydb;
# 将 mydb 的默认字符集设置为 utf8
alter database mydb default characterset = utf8;
注:mysql默认使用的字符集是latin1,不支持中文,需要设置一下哦。
搞定收工:)
p.s.
网上关于在mac上配置php+mysql的文档比较多,本文仅针对本人的使用需求,简单将步骤记录一下。:)
这样就相当于把 80端口转发到8080端口上了