平台概述
开发者指引
开发文档
平台政策
联系我们
开发指南
概述
由于开发EduSoho需要有一些基础技术能力,为帮助广大开发者简单、便捷、快速开发应用,云平台为开发者提供一系列视频开发教程,视频教程对应用的开发指南进行了详细说明,供开发者参考使用应用开发视频教程。注:开发的应用只能在EduSoho产品中运行。
前期准备
1.代码下载
| Git下载: | git clone https://github.com/EduSoho/EduSoho.git |
| SVN下载: | svn co https://github.com/EduSoho/EduSoho |
| 文件下载: | https://github.com/EduSoho/EduSoho/archive/master.zip |
2.开发环境
官方推荐的配置是LNMP,即Linux+Nginx+MySQL+PHP。Windows用户请参考相关文档 Windows一键安装包.
在支持论坛上,有各种环境安装的帖子:各种环境安装测试教程汇总
| 操作系统: | Linux 推荐使用Ubuntu,CentOS |
| Web服务器: | 推荐Nginx或Apache2 |
| MYSQL数据库: | 推荐5.5及以上版本 |
| PHP版本: | 推荐5.3.17以上 |
| 开发工具: | 推荐Sublime Text2 |
3.主要文件目录结构说明
| 目录 | 说明 |
| App | 应用程序核心目录 |
| App/cache | 缓存目录 |
| App/DoctrineMigrations | 数据库更新脚本目录 |
| App/config | 配置文件目录 |
| App/data | 该目录下存放的是私有的文件课时的视频、音频等 |
| App/logs | 程序日志 |
| doc | 文档目录,包含apache和nginx的配置文件 |
| plugins | 插件目录 |
| src | 源代码目录 |
| Src/Topxia/WebBundle | 前台界面代码目录 |
| Src/Topxia/AdminBundle | 管理后台界面代码目录 |
| Src/Topxia/Service | 核心业务代码目录 |
| Src/Topxia/DataTag | 模板标签目录 |
| Src/Topxia/Common | 程序通用类目录 |
| Vendor | 程序依赖的第三方库 |
| Vendor_user | 程序依赖的第三方应用中心类库 |
| web | web资源根目录 |
| Web/app_dev.php | 开发环镜下程序主入口文件 |
| Web/bundles | 程序前后台资源文件 |
| Web/themes | 程序主题目录 |
4.系统主要业务逻辑模块说明
| 模块文件地址 | 说明 |
| Src/Topxia/Service/Course/CourseService | 课程核心服务 |
| Src/Topxia/Service/Course/MaterialService | 课程资料服务 |
| Src/Topxia/Service/Course/NoteService | 课程笔记服务 |
| Src/Topxia/Service/Course/ReviewService | 课程评价 |
| Src/Topxia/Service/Course/ThreadService | 课程讨论区服务,含话题及问答 |
| Src/Topxia/Service/User/UserService | 用户服务 |
| Src/Topxia/Service/User/MessageService | 私信服务 |
| Src/Topxia/Service/User/NotificationService | 系统通知服务 |
| Src/Topxia/Service/Taxonomy/CategoryService | 分类服务 |
| Src/Topxia/Service/Taxonomy/TagService | 标签服务 |
| Src/Topxia/Service/System/LogService | 日志服务 |
| Src/Topxia/Service/System/SettingService | 系统设置服务 |
| Src/Topxia/Service/Testpaper/TestpaperService | 题库服务 |
5.安装第三方组件
EduSoho采用Composer来管理第三方组件的依赖关系,只需在项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。关于Composer的使用请 查阅官方文档Composer下载:
1.使用curl下载:
curl -sS https://getcomposer.org/installer | php如果你没有安装curl,你可以使用php下载
2.php下载:
php -r "readfile('https://getcomposer.org/installer');" | php
安装步骤:
php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
- Installing doctrine/lexer (v1.0)
Loading from cache
- Installing doctrine/annotations (v1.2.0)
Loading from cache
- Installing doctrine/cache (v1.3.0)
Loading from cache
- Installing doctrine/collections (v1.2)
Loading from cache
- Installing twig/twig (v1.16.0)
Loading from cache
- Installing symfony/symfony (v2.3.18)
Loading from cache
......
Generating autoload files
Creating the "app/config/parameters.yml" file
Some parameters are missing. Please provide them.
database_driver (pdo_mysql):
database_host (127.0.0.1):
database_port (null):
database_name (symfony): edusoho-test
database_user (root):
database_password (null): root
mailer_transport (smtp):
mailer_host (127.0.0.1):
mailer_user (null):
mailer_password (null):
locale (en):
secret (ThisTokenIsNotSoSecretChangeIt):
由于本地曾经下过第三方组件,所以下载时都是从缓存中取的;至此第三方组件安装与数据库配置完成。
服务部署
关于Nginx:下载地址: http://nginx.org/en/download.html
版本推荐: 1.0以上
首先需要设置Nginx上传文件的大小限制:
修改nginx.conf文件: 找到”sendfile on"上方插入一行"client_max_body_size 200m;"。
EduSoho的Nginx虚拟主机配置文件 (更多内容详见软件包中的doc/nginx_server_config.txt文件):
server {
listen 80;
# [改] 网站的域名
server_name edusoho-dev.com www.edusoho-dev.com;
# [改] 程序的安装路径
root /var/www/edusoho/web;
# [改] 日志路径
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
index app.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/udisk {
internal;
# [改] 请根据程序的实际安装路径修改。该目录下存放的是私有的文件课时的视频、音频等。
root /var/www/edusoho/app/data/;
}
location ~ ^/(app|app_dev)\.php(/|$) {
# [改] 请根据实际php-fpm运行的方式修改
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect;
# [改] 请根据程序的实际安装路径修改。该目录下存放的是私有的文件。
fastcgi_param HTTP_X-Accel-Mapping /udisk=/var/www/edusoho/app/data/udisk;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
}
# 配置设置图片格式文件
location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {
# 过期时间为3年
expires 3y;
# 关闭日志记录
access_log off;
# 关闭gzip压缩,减少CPU消耗,因为图片的压缩率不高。
gzip off;
}
# 配置css/js文件
location ~* \.(css|js)$ {
access_log off;
expires 3y;
}
# 禁止用户上传目录下所有.php文件的访问,提高安全性
location ~ ^/files/.*\.(php|php5)$ {
deny all;
}
# 以下配置允许运行.php的程序,方便于其他第三方系统的集成。
location ~ \.php$ {
# [改] 请根据实际php-fpm运行的方式修改
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
配置完成之后重新加载nginx
php nginx -s reload关于Apache2:
下载地址: http://httpd.apache.org/download.cgi
推荐版本: 2.0以上
EduSoho的Apache2 虚拟主机配置文件 (更多内容详见软件包中的doc/apache_server_config.txt文件):
ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/edusoho/web LoadModule xsendfile_module modules/mod_xsendfile.so XSendFile On XSendFilePath /var/www/edusoho/web/files/ <Directory /var/www/edusoho/web/> # enable the .htaccess rewrites AllowOverride All Order allow,deny Allow from All </Directory> ErrorLog /var/log/apache2/example.com_error.log CustomLog /var/log/apache2/example.com_access.log combined
修改hosts ,以配置的相同的域名访问
sudo vim /etc/hosts #在hosts文件中加入server_name,与nginx_server_config.txt中的server_name或与apache_server_config.txt中的ServerName相同 127.0.0.1 edusoho-dev.com www.edusoho-dev.com
数据库
mysql -u root -p
create database edusoho-test
创建插件配置文件app/config/routing_plugins.yml,内容可以为空。初始化表结构与数据
app/console doctrine:migrations:migrate app/console topxia:init打开浏览器访问www.edusoho-dev.com,如页面能正常打开说明您在开发前的准备工作已经完成。