平台概述
开发者指引
开发文档
平台政策
联系我们
开发指南
概述
由于开发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,如页面能正常打开说明您在开发前的准备工作已经完成。