个人博客: alex-my.xyz
1 说明
PHP与nginx安装请参考“Mac搭建lnmp环境”
MySQL请先安装
部分路径说明:
# 安装php相关库的路径
~/Lib/php/
# 新项目路径
~/WWW/
# nginx配置位置
/usr/local/etc/nginx
# php配置位置
/usr/local/etc/php/5.6
2 安装phalcon
进入目录~/Lib/php,并执行以下命令
git clone git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install
安装之后在/usr/local/etc/php/5.6/php.ini 中添加:
extension=phalcon.so
重启php-fpm
killall php-fpm
php-fpm -D
如果已经有搭建好的php服务器,可以运行以下代码查确定是否安装成功,如果没有,则无需纠结该步骤。
// test.php
<?php
$info = get_loaded_extensions();
foreach ($info as $info0)
{
echo $info0.'<br/>';
}
?>
在展示的页面中出现phalcon则表示安装成功。
3 安装phalcon develop tool
进入目录~/Lib/php,并执行以下命令
git clone git://github.com/phalcon/phalcon-devtools.git
cd phalcon-devtools/
sudo /bin/sh ./phalcon.sh
此时查看~/.bash_profile中会发现已添加了以下内容:
export PTOOLSPATH=/Users/alex/Lib/php/phalcon-devtools/
export PATH=$PATH:/Users/alex/Lib/php/phalcon-devtools
运行source ~/.bash_profile使其生效。
输入phalcon –version查看信息:
➜ /Users/alex phalcon --version
Phalcon DevTools (3.0.3)
Environment::
OS: Darwin alex.local 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64
PHP Version: 5.6.24
PHP SAPI: cli
PHP Bin: /usr/local/Cellar/php56/5.6.24/bin/php
PHP Extension Dir: /usr/local/Cellar/php56/5.6.24/lib/php/extensions/debug-non-zts-20131226
PHP Bin Dir: /usr/local/Cellar/php56/5.6.24/bin
Loaded PHP config: /usr/local/etc/php/5.6/php.ini
Versions::
Phalcon DevTools Version: 3.0.3
Phalcon Version: 3.0.2
AdminLTE Version: 2.3.6
[Fri Dec 23 17:08:22 2016] Script: '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
/Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) : Freeing 0x1106784F0 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
=== Total 1 memory leaks detected ===
如果没有效果,包括后面的步骤phalcon命令不存在等问题,可以在终端执行source ~/.bash_profile,重启终端解决。
4 创建新项目manage
进入目录~/WWW/中,输入以下命令创建一个名为manage的新项目。
phalcon create-project manage
终端输出:
Phalcon DevTools (3.0.3)
Success: Controller "index" was successfully created.
/Users/alex/WWW/manage/app/controllers/IndexController.php
Success: Project "manage" was successfully created.
[Fri Dec 23 14:59:30 2016] Script: '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
/Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) : Freeing 0x10757A680 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
=== Total 1 memory leaks detected ===
5 创建manage.conf
在nginx下添加配置文件,用以运行manage。
进入/usr/local/etc/nginx/sites-enabled目录,创建manage.conf文件,内容:
server {
listen 80;
server_name manage.com;
# 注意指向的是manage/public
set $root_path '/Users/alex/WWW/manage/public/';
root $root_path;
index index.php index.html index.htm;
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=/$1;
}
location ~ .php {
# try_files $uri =404;
fastcgi_index /index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
root $root_path;
}
location ~ /.ht {
deny all;
}
}
在/etc/hosts中添加manage.com记录
sudo vim /etc/hosts
# 添加
127.0.0.1 manage.com
重载nginx
nginx -s reload
在浏览器中输入 manage.com
Congratulations!
You're now flying with Phalcon. Great things are about to happen!
This page is located at views/index/index.volt
6 phpstorm配置phalcon develop tool
用phpstorm打开manage项目。
打开app/controllers/ControllerBase.php,发现以下代码显示红色错误(Mvc):
use PhalconMvcController;
现在将Phalcon Libray添加进来,消除错误,添加语法提示。
External Libraries 右键选择 configure php include paths
interpreter 记得选择 /usr/local/bin/php(没有就自己建一个), /usr/bin/php是系统自带的php5.5(或者重建软链接)
在include path 点击 + 号
选择 /Users/alex/Lib/php/phalcon-devtools/ide/stubs/Phalcon
现在红色错误消除了。也增加了语法提示。
7 phpstorm配置命令行工具
phpstorm – Prefreners – Tools – Command Line Tool Support 选择 +号
内容按照以下填写:
Choose tool: Custom tool
Visibility: global
Tool path: /Users/alex/Lib/php/phalcon-devtools/ide/phpstorm/phalcon.sh
Alias: phalcon-tool
Description: Phalcon Developer Tools
8 phpstorm测试命令行工具
phpstorm – tool – run command
在ide底部出现输入框和显示框.Command Line Tools Console,输入以下命令
phalcon-tool create-controller --name test
命令中的phalcon-tool就是第7步 Alias: phalcon-tool
显示框显示:
> /Users/alex/Lib/php/phalcon-devtools/ide/phpstorm/phalcon.sh create-controller --name test
Phalcon DevTools (3.0.3)
[Fri Dec 23 16:14:13 2016] Script: '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
/Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) : Freeing 0x10FE2ED60 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
=== Total 1 memory leaks detected ===
Success: Controller "test" was successfully created.
/Users/alex/WWW/manage/app/controllers/TestController.php
Process finished with exit code 0 at 16:14:13.
Execution time: 472 ms.
在app/controllers中出现一个新文件TestController.php
9 修改数据库配置
在本地创建数据库manage
create database manage;
修改 app/config/config.php中的database
'database' => [
'adapter' => 'Mysql',
'host' => 'localhost',
'username' => 'root',
'password' => '123456',
'dbname' => 'manage',
'charset' => 'utf8',
],
10 数据库中的表生成模型
在数据库manage创建表user;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(200) NOT NULL DEFAULT '' COMMENT '登录名',
`password` varchar(32) NOT NULL COMMENT '登录密码',
`salt` char(6) NOT NULL COMMENT '校验码',
PRIMARY KEY (`id`),
UNIQUE KEY `m_username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='成员表';
在命令行输入:
phalcon-tool create-model --name user
显示框显示:
> /Users/alex/Lib/php/phalcon-devtools/ide/phpstorm/phalcon.sh create-model --name user
Phalcon DevTools (3.0.3)
[Fri Dec 23 16:21:46 2016] Script: '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
/Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(48476) : Freeing 0x1051B07B8 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
Success: Model "User" was successfully created.
[Fri Dec 23 16:21:46 2016] Script: '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
/Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) : Freeing 0x10480AD60 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
=== Total 2 memory leaks detected ===
在app/models中,会自动出现一个User.php。如果没出现,需要稍等一小段时间。