最近在mac os下部署一个laravel项目,一直都听说mac上配置php+apache+mysql很简单,但是对于不熟悉的我还是遇到了不少的麻烦。一开始装了MAMP,以为和windows上的集成环境一样简单,结果还是遇到了很多问题。最后还是用了brew。
brew的安装:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
大家可以上官网看更多的资料:http://brew.sh,用来安装管理各种软件十分方便。还有就是大家最好安装一下xcode,因为有时候安装东西可能提示缺少一些文件什么的,网上很多解决方案都是从xcode下找然后建立同步链接的。
- php配置
先用brew安装了autoconf、mcrypt,然后下载并解压php源码,根据自己情况选择对应版本。(注意以下命令中php的版本),查看php的版本可以用php -v查看。终端依次执行以下命令:
cd php-5.4.17/ext/mcrypt/
/usr/bin/phpize
./configure
make
sudo make install
出现:
Build complete.
说明成功了。
期间可能会发生一些意外,请安装autoconf;另外可能需要安装Xcode,建立文件映射。
最后打开php.ini,貌似一开始只有php.ini.default,大家可以copy一份出来即可。
sudo vi /etc/php.ini
添加如下代码:(注意no-debug-non-zts-20121212版本号,如果不清楚可以前往/usr/lib/php/extensions/查看)
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
- apache的配置
apache的配置比较简单,apache配置文件在/etc/apache2/httpd.conf,大家修改前最好做好备份,sudo vi httpd.conf打开修改,当然,有所需要才修改。apache的documentroot默认在/Library/WebServer/Document下,需要的把项目放进来即可。
apache的一些命令:sudo apachectl start; sudo apachectl stop; sudo apachectl restart。
这里还有点插曲,我遇到"You don't have permission to access / on this server."的提示,从字面意思是说,我们没有访问本服务器的权限,原因有可能是虚拟主机开启了,然后配置了deny from all?或者是storage没有权限?还是apache配置文件少了配置响应文件名:?
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php server.php
</IfModule>
最后怎么解决的不太记得了,原因可能上面所列。
- Mysql的配置
还是brew,执行:
- brew install mysql
- mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
执行完成后就可以在终端中运行mysql 命令了。设置 mysql 开机启动,大家按照自己的版本改:
- mkdir -p ~/Library/LaunchAgents/
- cp /usr/local/Cellar/mysql/5.6.26/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
- launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
- laravel的部署
注意如果用Laravel new的话要composer install,没有.lock就运行composer update。如果是使用一键安装包的话可以省去一些步骤:http://www.golaravel.com/download/
之前的部署改得太乱,重现从svn checkout后,安装了composer:
- curl -sS https://getcomposer.org/installer | php
- file_put_contents(/Library/WebServer/Documents/www/developed-101/app/stor
- age/views/9c36d0e7dfaf852919af8da5a89f89a): failed to open stream: No such
- file or directory
接下来就是修改.htaccess文件,也可以把文件内容直接在apache配置,省去加载文件。
另外使用php artisan serve是开启php自带的服务器,访问8000端口就可以进行开发了。
PS:如果还未能解决大家的问题,希望大家先去熟读一下Laravel的官网的安装部署过程,真正读好每一行字,laravel的部署不是什么难题 ;-)