参考
http://yaf.laruence.com/manual/yaf.install.html
yaf下载:
https://pecl.php.net/package/yaf
版本选择
2.3.5如下版本适用于php5.2 ~ 5.x 的环境
3.0 以上版本适用于php7及以上环境
首先要找到php的安装目录,执行info.php,查看php路径
Configuration File (php.ini) Path /etc/php5/apache2
再查找phpize的地址在哪里,
whereis phpize
而后cd 到yaf的解压缩目录,执行
/usr/bin/phpize
若是不是在yaf的解压缩目录下,没.m4文件,会报错
Cannot find config.m4.
Make sure that you run /usr/local/bin/phpize in the top level source directory of the module
再执行
./configure --with-php-config=/usr/bin/php-config
要注意,必须先安装pcre。若是没有会报错
pcre.h: No such file or directory
安装 pcre
sudo apt-get install libpcre3-dev
再执行
make
最后执行,若是不加sudo,可能有权限问题。由于要建立folder
sudo make install
最后提示:
Installing shared extensions: /usr/lib/php5/20121212/
而后在php.ini中载入yaf.so, 重启PHP.
vi /ext/php5/apache2/php.ini
vi后可直接‘/extension_dir '查找,找到后多是这样的:
extension_dir = "./"
需修改为:
extension_dir = "/usr/lib/php5/20121212/" (注意是so文件的所在)
extension=yaf.so
最后保存退出! :wq!
重启
service apache2 restart
或者
sudo /etc/init.d/apache2 restart
重启后,再打开info.php 会看到
yaf support Yaf logo enabled
Version 2.3.3
Supports http://pecl.php.net/package/yaf
部署yaf的文件结构
+ public
|- index.php //入口文件
|- .htaccess //重写规则
|+ css
|+ img
|+ js
+ conf
|- application.ini //配置文件
+ application
|+ controllers
|- Index.php //默认控制器
|+ views
|+ index //控制器
|- index.phtml //默认视图
|+ modules //其余模块
|+ library //本地类库
|+ models //model目录
|+ plugins //插件目录
参考:http://www.laruence.com/manual/tutorial.firstpage.html
请注意:入口文件不是放在vhost的根目录,而是放在public/index.php 因此设置vhost domain的时候必定要注意加上"/public"
<VirtualHost *:80>
DocumentRoot /var/www/html/yof/public
ServerName devlocal.yof.nmg.com.hk
ErrorLog /var/www/html/yof/logs/devlocal.yof.nmg.com.hk-error_log
CustomLog /var/www/html/yof/logs/devlocal.yof.nmg.com.hk-access_log common
<Directory /var/www/html/yof/public>
AllowOverride All
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
.htaccess也是放在public目录下。
index.php参考:
<?php
// 若是有 xhprof 则开启跟踪功能
if(function_exists('xhprof_enable')){
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
}
header('content-Type:text/html;charset=utf-8;');
define('APP_PATH', realpath(dirname(__FILE__) . '/../'));
/*
* 之全部要先包含 init.php 而不放在Bootstrap.php 里,
* 由于这样能够根据 ENV 来判断要不要抛出 YAF 自己的前置错误
* 如配置出错了, 不包含 init.php 会一片空白, 包含了在 DEV 下则会抛出错误提示
*/
require APP_PATH.'/application/init.php';
$app = new Yaf_Application(APP_PATH.'/conf/application.ini');
$app->bootstrap()->run();
Windows 安装YAF
Windows下的安装请必定要选择对应操做系统位数和php版本的dll下载,不然会加载失败。
例如64位的windows系统,php版本5.5.就下载php_yaf-2.3.3-5.5-ts-vc11-x64
下载地址:https://pecl.php.net/package/yaf/2.3.3/windows
将解压缩出来的php_yaf.dll文件copy到D:\wamp\bin\php\php5.5.12\ext
修改php.ini
添加
extension=php_yaf.dll
yaf.environ=dev
重启apache2.
附件是一个最简单的helloworld的结构目录。