在Leopard里配置rails+php+apache+mysql
上上周在lex的怂恿下升级到了Leopard,最后花了3天时间,备份数据用了一台macbook pro加一只80g移动硬盘,重装4遍,到现在总算稳定下来了,不过还有一个bug未解决(期待10.5.1补丁)……
在Leopard里,很多开源代码都升级到了最新版,比如Python 2.5.1,PHP 5.2.4,Ruby 1.8.6,Apache 2.2,更棒的是,这次系统里直接集成了ruby on rails,包括Mongrel和Capistrano,据说还做过优化……
以前在mac里配置ROR,我是按照Dan Benjamin的《Building Ruby, Rails, Subversion, Mongrel, and MySQL on Mac OS X》来做的,安装ruby,gem之类的东西都是依靠MacPorts(osx里的包管理系统),而MacPorts安装的程序都在/opt/local里,独立于系统环境……
作为一个完美主义者,一定不能容忍自己心爱的系统里有任何兀余的代码,所以,这一次我希望能在leopard已经集成的代码基础上,搭建rails+php+apache+mysql的开发环境……
————————————————完美主义者的分割线——————————————————-
首先搞定apache,在配置面板里的“共享”中,选中”web共享”,就可以启动apache。默认的http://localhost指向/Library/WebServer/Documents,如果想修改成自己的目录,比如/Users/dexteryy/Sites/www,最简单的方法是直接改掉httpd.conf里的DocumentRoot
httpd.conf是放在/etc/apache2/里的,除了DocumentRoot,还要记得把下面两行代码前的注释删掉:
LoadModule php5_module libexec/apache2/libphp5.so
LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so
————————————————完美主义者的分割线——————————————————-
然后是php.ini,系统默认在/etc里放了一个php.ini.default,把它copy一份,改名为php.ini
php.ini里有一个关于mysql的地方要注意,leopard好像修改过mysql.sock的位置,所以要修改以下两行:
mysql.default_socket = /private/tmp/mysql.sock
mysqli.default_socket = /private/tmp/mysql.sock
————————————————完美主义者的分割线——————————————————-
然后安装最新的mysql,我下载的是mysql-5.0.45-osx10.4-i686.dmg。其中的MySQLStartupItem.pkg和mysql.prefpane都不用安装了,因为这两个东西目前都不起作用-___-b
以前启动mysql都是用这个命令:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
但是在leopard里,这个东西好像失效了,只好用这个命令来启动
sudo /usr/local/mysql/bin/safe_mysqld
如果要自动启动mysql,可以用以下方法:
在/Library/LaunchDaemons/里新建一个叫com.mysql.mysqld.plist的文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>KeepAlive</key>
- <true/>
- <key>Label</key>
- <string>com.mysql.mysqld</string>
- <key>Program</key>
- <string>/usr/local/mysql/bin/mysqld_safe</string>
- <key>RunAtLoad</key>
- <true/>
- </dict>
- </plist>
修改权限:
sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist
ok了……注意,如果安装过MySQLStartupItem.pkg,最好把MYSQLCOM直接删掉:
sudo rm -R /Library/StartupItems/MYSQLCOM
————————————————完美主义者的分割线——————————————————-
ruby on rails已经完美的集成了,不需要做任何设置,除了跟mysql的绑定……
sudo gem install mysql — –with-mysql-dir=/usr/local/mysql
选择3……
————————————————完美主义者的分割线——————————————————-
现在可以新建rails的项目了,在终端里进入刚才设置的DocumentRoot目录,输入/rails rails_test
然后启动服务器:
rails_test/script/server
命令执行后不要关闭终端窗口(会关闭服务器),leopard的终端现在支持标签了,苹果键+T,继续做别的事情……
现在访问http://localhost:3000/ ,就可以看到rails项目的页面了……
这里启动的服务器是Mongrel,实际上可以把它跟apache整合到一起,用apache接受浏览器的请求,利用反向代理功能转发给Mongrel,这样就不需要用3000端口,直接用这样的地址就可以访问rails的页面:http://localhost/rails_test
方法很简单,找到刚才的httpd.conf,在最下面加入:
ProxyPass /rails_test http://localhost:3000
————————————————完美主义者的分割线——————————————————-
以上是我目前搭建的一个简单的rails+php+apache+mysql开发环境,可能还有其他问题,在具体使用中慢慢改……
发表评论
链接
最新评论
-
google maps API的应用中 ...
啊……GUnload()我用了……但我以前没注意到有“Google Maps A ...
-- by dexter_yy -
google maps API的应用中 ...
http://www.zmap.org/doc/maps/documentati ...
-- by zkj_beyond







评论排行榜