最近在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.
说明成功了。
如果phpize出现如下错误:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include /usr/include grep:
老实点,brew安装autoconf。
*如果make出现如下错误:
/ext/mcrypt/mcrypt.c:25:10: fatal error: 'php.h' file not found sudo ln -s
执行如下命令即可:
/usr/include/php/main/php.h: No such file or directory grep: /usr/include/php/Zend/zend_modules.h: No such file or directory grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory Configuring for: PHP Api Version: Zend Module Api No: Zend Extension Api No: Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
所以大家还是装下xcode啦。
最后打开php.ini,貌似一开始只有php.ini.default,大家可以copy一份出来即可。
sudo vi /etc/php.ini
添加如下代码:(注意no-debug-non-zts-20121212版本号,如果不清楚可以前往/usr/lib/php/extensions/查看)
extension=<span style="font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, STHeiti, 'Microsoft Yahei', sans-serif;">/usr/lib/php/extensions/no-debug-non-zts-20090626/</span><span style="font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, STHeiti, 'Microsoft Yahei', sans-serif;">mcrypt.so</span>
- 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,执行:
[plain] view
plaincopy
- brew install mysql
配置:
[plain] view
plaincopy
- mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
执行完成后就可以在终端中运行mysql 命令了。设置 mysql 开机启动,大家按照自己的版本改:
[plain] view
plaincopy
- 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的部署
之前的部署改得太乱,重现从svn checkout后,安装了composer:
[plain] view
plaincopy
- curl -sS https://getcomposer.org/installer | php
官网:http://www.getcomposer.org,在install的时候发现出错了:
[plain] view
plaincopy
- file_put_contents(/Library/WebServer/Documents/www/developed-101/app/stor
- age/views/9c36d0e7dfaf852919af8da5a89f89a): failed to open stream: No such
- file or directory
于是自己建立了views文件夹。然后就成功了。
结果最后发现,访问localhost会直接出现index.php的页面,不太知道什么原因,然而无意中发现,使用php artisan serve也是可以开启服务访问项目的,然后就先这样吧,apache配置哪里漏了如果大家知道请指导一下我,谢谢。
版权声明:本文为博主原创文章,未经博主允许不得转载。