PHPackages                             wula/wula - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. wula/wula

ActiveProject[Framework](/categories/framework)

wula/wula
=========

wulaphp框架的炮架子，为其初始化目录结构。

v2.3.4(9y ago)11746MITPHPPHP &gt;=5.6.9

Since Dec 7Pushed 6y ago3 watchersCompare

[ Source](https://github.com/ninggf/wula)[ Packagist](https://packagist.org/packages/wula/wula)[ Docs](https://www.wulacms.com/)[ RSS](/packages/wula-wula/feed)WikiDiscussions v2.0 Synced 2mo ago

READMEChangelog (9)Dependencies (2)Versions (12)Used By (0)

[![](https://camo.githubusercontent.com/dfb9d6e629024242c1033f2a299450ab027c5402ddc9b6b4061b27794472f015/68747470733a2f2f64333377756272666b69306c36382e636c6f756466726f6e742e6e65742f696d616765732f316438336330396232663063643832333161353466326138613665616565393735346238303266622f6c6f676f2e706e67)](https://camo.githubusercontent.com/dfb9d6e629024242c1033f2a299450ab027c5402ddc9b6b4061b27794472f015/68747470733a2f2f64333377756272666b69306c36382e636c6f756466726f6e742e6e65742f696d616765732f316438336330396232663063643832333161353466326138613665616565393735346238303266622f6c6f676f2e706e67)

[![Build Status](https://camo.githubusercontent.com/5d034c1c1f546db516c17cfa7d663273626eab55b98a1781aa236d5764541fe8/68747470733a2f2f7472617669732d63692e6f72672f6e696e6767662f77756c612e7376673f6272616e63683d76322e30)](https://travis-ci.org/wula/wula)[![Total Downloads](https://camo.githubusercontent.com/93381734632b9b9e8dfa0e2935c9e1ec83edf91e86ed62e0f7776f069b8244aa/68747470733a2f2f706f7365722e707567782e6f72672f77756c612f77756c612f646f776e6c6f616473)](https://packagist.org/packages/wula/wula)[![Latest Stable Version](https://camo.githubusercontent.com/31d799544662b539841d9a5adc25462a862e19c20c74ea17128fdb55fc24699b/68747470733a2f2f706f7365722e707567782e6f72672f77756c612f77756c612f762f737461626c65)](https://packagist.org/packages/wula/wula)[![License](https://camo.githubusercontent.com/3daa98a0848caff7ecaa314fe79a39735630037ef426c17b907a638dda59cfe1/68747470733a2f2f706f7365722e707567782e6f72672f77756c612f77756c612f6c6963656e73652e737667)](https://packagist.org/packages/wula/wula)

关于wula(乌拉)
==========

[](#关于wula乌拉)

**wula**(`wula@php`、乌拉)是[wulaphp](https://github.com/ninggf/wulaphp)框架的炮架子，它为[wulaphp](https://github.com/ninggf/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 样例文件
```

> 注：
>
> 1. 下文中的`your_project_public_dir`应为`wwwroot`目录的绝对路径.
> 2. 当`your_project_public_dir`目录是`wwwroot`的上级目录时，要将`WWWROOT_DIR`常量定义为`/wwwroot/`
> 3. `wwwroot`目录名可以自定义.
> 4. 以上所有常量的自定义都应该放在`bootstrap.php`文件中.

0 环境要求
------

[](#0-环境要求)

- PHP &gt;=5.6.9
- PDO (PDO\_MySQL)
- mysqlnd 扩展
- mbstring 扩展
- curl 扩展
- json 扩展
- SPL 扩展
- Reflection 扩展

1 安装
----

[](#1-安装)

1.1 通过composer安装:
-----------------

[](#11-通过composer安装)

- 开发模式: `composer create-project wula/wula`
- 生产模式: `composer create-project --no-dev wula/wula`

1.2 直接clone
-----------

[](#12-直接clone)

1. `$ git clone https://github.com/ninggf/wula.git your_project_dir`
2. `$ cd your_project_dir`
3. `$ composer install [--no-dev]`

2. 配置
-----

[](#2-配置)

wula可以部署在`apache`或`nginx`中，需要他们支持重写功能。

### 2.1 apache 配置

[](#21-apache-配置)

- `apache` 需要开启重写功能支持
- 请检查`wwwroot`目录中的`.htaccess`文件，此文件必须存在.

#### 2.1.1 apache 虚拟主机配置

[](#211-apache-虚拟主机配置)

```

        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all

    ServerAdmin your-email-address
    DocumentRoot "your_project_public_dir"
    ServerName your_server_name
    # other directives can be here

```

> 注:
>
> `your_project_public_dir` 应指是 `wwwroot`的绝对路径.
>
> 配置完成后重启apache生效.

#### 2.1.2 apache 独立主机配置

[](#212-apache-独立主机配置)

修改apache的配置文件中的以下内容:

- 修改DocumentRoot

```
DocumentRoot "your_project_public_dir"

```

- 修改目录配置

```

    Options FollowSymLinks -Indexes
    AllowOverride all
    Order allow,deny
    Allow from all

```

> 注:
>
> `your_project_public_dir` 应指是 `wwwroot`的绝对路径.
>
> 配置完成后重启apache生效.

### 2.2 nginx 配置 (推荐)

[](#22-nginx-配置-推荐)

在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的配置生效.

### 2.3 docker

[](#23-docker)

1. 重命名`docker-compose.sample.yml`为`docker-compose.yml`
2. 按需要修改`docker-compose.yml`和`conf/site.conf`
3. 启动docker: `$ docker-compose up -d`

环境检测
----

[](#环境检测)

- 运行nginx或apache的用户对`storage`并其子目录需要有可读可写权限.可通过命令

`$ chmod 777 storage storage/tmp storage/logs`

进行修改。

安装验证
----

[](#安装验证)

- 安装完成后通过浏览器访问[http://your\_server\_name/](http://your_server_name/) 看到以下输出说明安装成功：**Hello wula !!**

接下来
---

[](#接下来)

你可以立即从这儿详细了解[wulaphp](https://github.com/ninggf/wulaphp/wiki)的方方面面， Have fun!.

BUG提交与参与
--------

[](#bug提交与参与)

- 如果有任何问题或建议请到[issues](https://github.com/ninggf/wula/issues)提交。
- 如果您对wula感兴趣，欢迎fork并提交您的代码。
- 您还可以加入我们的QQ群: 371487281。

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 80% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

11

Last Release

3446d ago

Major Versions

v1.5.1 → v2.0.02016-12-07

PHP version history (3 changes)v1.5.0PHP &gt;=5.6 || &gt;= 7.1

v2.0.0PHP &gt;=7.1

v2.0.x-devPHP &gt;=5.6.9

### Community

Maintainers

![](https://www.gravatar.com/avatar/0fbc94bdddaa037a7447b60ee88aa33d28275134ae727cdf29f7e6290e8aebd8?d=identicon)[ninggf](/maintainers/ninggf)

![](https://www.gravatar.com/avatar/2959562a1af0d0d5e86ea818ed9ecd32a9c518fac9192b0f67b016a10642daf8?d=identicon)[windywany](/maintainers/windywany)

---

Top Contributors

[![windywany](https://avatars.githubusercontent.com/u/1430771?v=4)](https://github.com/windywany "windywany (96 commits)")[![ninggf](https://avatars.githubusercontent.com/u/19420005?v=4)](https://github.com/ninggf "ninggf (24 commits)")

---

Tags

cmscmf

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/wula-wula/health.svg)

```
[![Health](https://phpackages.com/badges/wula-wula/health.svg)](https://phpackages.com/packages/wula-wula)
```

###  Alternatives

[orchid/platform

Platform for back-office applications, admin panel or CMS your Laravel app.

4.8k2.5M59](/packages/orchid-platform)[wintercms/winter

Free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. Originally known as October CMS.

1.5k43.3k](/packages/wintercms-winter)[processwire/processwire

ProcessWire CMS/CMF

1.1k32.9k28](/packages/processwire-processwire)[reinvanoyen/cmf

A flexible and extendable solution for all your content management needs

1025.5k](/packages/reinvanoyen-cmf)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
