wula(wula@php、乌拉)是wulaphp框架的炮架子,它为wulaphp框架提供web应用开发的基础目录结构:
wula
|--conf # 配置目录,可通过CONF_DIR常量自定义
|--.env #开发环境配置
|--.env.example # 环境配置示例文件
|--cache_config.php # 缓存配置文件
|--config.php # 应用配置文件,可通过.env(将.env.example复制到.env)文件进行配置
|--dbconfig.php # 数据库配置文件,可通过.env文件中的db段进行配置
|--cluster_config.php # 基于Redis的分布式运行时缓存
|--redis_config.php # redis配置文件
|--site.conf # docker中nginx的网站配置文件
|--crontab # 定时任务运行目录,可随意命名,如果不需要定时任务可删除
|--cron.php # 定时任务脚本, 通过crontab服务运行
|--extensions # 扩展目录, 可通过EXTENSION_DIR常量自定义
|-- ... # 扩展的实现...
|--includes # 应用使用的第三方库(不可通过composer加载),可通过LIBS_DIR常量自定义
|-- common.php # 第三方库加载入口。
|--storage # 存储目录
|--logs # 目录日志,可通过LOGS_DIR常量自定义
|--tmp # 运行临时目录,可通过TMP_DIR常量自定义
|--vendor # composer库目录,不可自定义
|--modules # 模块目录, 可通过MODULE_DIR常量修改。
|--home # home模块
|--classes # 模块类目录,此目录中的类文件可以按需自动加载(autoload)
|--controllers # 模块控制器目录
|--IndexController.php # 默认控制器,首页请求由此控制器处理
|--views # 视图目录
|--index # 对应Controller的视图目录
|--index.tpl # 基于Smarty的视图模板文件,对应Controller中的Action.
|--bootstrap.php # 模块引导文件
|-- ... # 其它模块
|-- alias.php # URL别名配置文件
|--themes # 网站前台主题目录,可通过THEME_DIR常量自定义
|--default # 默认主题
|--index.tpl # 网站首页模板
|--404.tpl # 404页面模板
|--403.tpl # 403页面模板
|--500.tpl # 500页面模板
|--template.php # 主题数据处理器定义文件
|--theme1 # 其它主题
|--...
|--wwwroot # 网站根目录,如果网站根目录不是此目录,需要修改WWWROOT_DIR常量值
|--assets # 公共资源目录,类型为wula-assset的composer包会安装到此目录
|--index.php # 网站入口,一般情况不需要修改.
|--robots.txt # 蜘蛛抓取规则文件(可删除)
|--favicon.ico # 网站图标(可删除)
|--crossdomain.xml # flash跨域文件(可删除)
|--artisan # wula命令行工具
|--bootstrap.php # 引导文件
|--composer.json # composer配置文件
|--docker-compose.sample.yml # docker-compose 样例文件
注:
- 下文中的
your_project_public_dir应为wwwroot目录的绝对路径.- 当
your_project_public_dir目录是wwwroot的上级目录时,要将WWWROOT_DIR常量定义为/wwwroot/wwwroot目录名可以自定义.- 以上所有常量的自定义都应该放在
bootstrap.php文件中.
- PHP >=5.6.9
- PDO (PDO_MySQL)
- mysqlnd 扩展
- mbstring 扩展
- curl 扩展
- json 扩展
- SPL 扩展
- Reflection 扩展
- 开发模式:
composer create-project wula/wula - 生产模式:
composer create-project --no-dev wula/wula
$ git clone https://github.com/ninggf/wula.git your_project_dir$ cd your_project_dir$ composer install [--no-dev]
wula可以部署在apache或nginx中,需要他们支持重写功能。
apache需要开启重写功能支持- 请检查
wwwroot目录中的.htaccess文件,此文件必须存在.
<VirtualHost *:80>
<Directory "your_project_public_dir">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerAdmin your-email-address
DocumentRoot "your_project_public_dir"
ServerName your_server_name
# other directives can be here
</VirtualHost>
注:
your_project_public_dir应指是wwwroot的绝对路径.配置完成后重启apache生效.
修改apache的配置文件中的以下内容:
- 修改DocumentRoot
DocumentRoot "your_project_public_dir"
- 修改目录配置
<Directory "your_web_public_dir">
Options FollowSymLinks -Indexes
AllowOverride all
Order allow,deny
Allow from all
</Directory>
注:
your_project_public_dir应指是wwwroot的绝对路径.配置完成后重启apache生效.
在nginx的配置中添加一个server如下:
server {
listen 80;
server_name your_server_name;
root your_project_public_dir;
location / {
index index.php index.html index.htm;
if (!-e $request_filename){
rewrite ^(.*)$ index.php last;
}
}
location ~ /assets/.+\.(php[s345]?|tpl|inc)$ {
return 404;
}
error_page 404 /404.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; #unix:/tmp/fpm56.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
#fastcgi_param APPMODE pro;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
注:
your_project_public_dir应指是wwwroot的绝对路径.可以通过
fastcgi_param APPMODE来定义wulaphp的运行模式:
- pro 为线上生产环境
- dev 为开发环境(默认)
- test 为测试环境
配置完成后重新加载nginx的配置生效.
- 重命名
docker-compose.sample.yml为docker-compose.yml - 按需要修改
docker-compose.yml和conf/site.conf - 启动docker:
$ docker-compose up -d
- 运行nginx或apache的用户对
storage并其子目录需要有可读可写权限.可通过命令
$ chmod 777 storage storage/tmp storage/logs
进行修改。
- 安装完成后通过浏览器访问http://your_server_name/ 看到以下输出说明安装成功:Hello wula !!
你可以立即从这儿详细了解wulaphp的方方面面, Have fun!.
- 如果有任何问题或建议请到issues提交。
- 如果您对wula感兴趣,欢迎fork并提交您的代码。
- 您还可以加入我们的QQ群: 371487281。