部署框架
更新时间:2019-06-14
概述
您可以自行设计和编写网站,也可以使用已有的网站框架。BCH兼容市面上主流的网站框架,可以满足大多数用户的需求:
| 框架 | 类型 | 版本 | php5.2 | php5.3 | php5.4 | php5.6 | php7 |
|---|---|---|---|---|---|---|---|
| dedecms | CMS | 5.7 | 支持 | 支持 | 支持 | 支持 | 支持 |
| thinkphp | 网站 | 3.2.3 | 不支持 | 支持 | 支持 | 支持 | 支持 |
| discuz | 论坛 | 3.2_SC_UTF | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| wordpress | Blog | 4.5.3 | 支持 | 支持 | 支持 | 支持 | 支持 |
| 帝国cms | CMS | 7.2_SC_UTF8 | 支持 | 支持 | 支持 | 支持 | 不支持 |
| phpcms | CMS | V9.5.10 | 支持 | 支持 | 支持 | 支持 | 不支持 |
| ecshop | 电商 | 2.7.3_UTF8 | 支持 | 支持 | 不支持 | 不支持 | 不支持 |
| destoon | 电商 | 6.0 | 支持 | 支持 | 支持 | 支持 | 支持 |
| zblog | Blog | 1.4 | 支持 | 支持 | 支持 | 支持 | 支持 |
| shopex | 电商 | 4.8.5 | 支持 | 支持 | 支持 | - | - |
| joomla | CMS | 3.4.5 | 不支持 | 支持 | 支持 | - | - |
| phpok | 网站 | 4.4.071 | 支持 | 支持 | 支持 | - | - |
| php168 | CMS | V7.0SP | 支持 | 支持 | 支持 | - | - |
| 微擎 | 微信 | 0.7 | 不支持 | 不支持 | 支持 | - | - |
| Metinfo | CMS | 5.3 | 支持 | 支持 | 支持 | - | - |
| corethink | 框架 | 1.3.0 | 支持 | 支持 | 支持 | - | - |
| 淘宝客 | 框架 | - | 支持 | 支持 | 支持 | - | - |
| HDWiki | 框架 | - | 支持 | 支持 | 支持 | - | - |
| feifeicms | 框架 | - | 支持 | 支持 | 支持 | - | - |
| 大商创 | 框架 | V1.9 | 不支持 | 支持 | 不支持 | - | - |
| drupal | 框架 | - | 不支持 | 不支持 | 不支持 | 不支持 | 支持Drupal安装后无法访问问题 |
| octobercms | 框架 | - | - | - | - | 支持 | 支持 |
| Flarum | 框架 | beta4 | - | - | - | 支持 | 不支持 |
我们以Wordpress和Discuz为例,介绍框架的安装方法,具体操作请参看:使用WordPress快速建站、使用Discuz搭建论坛。
框架安装问题
Drupal安装后无法访问问题
drupal安装后需要上传对应的nginx配置bcloud_nginx_user.conf到 /webroot 目录下。drupal 的 nginx 配置如下(修改自drupal官方配置):
Plain Text
1location = /favicon.ico {
2 log_not_found off;
3 access_log off;
4}
5
6location = /robots.txt {
7 allow all;
8 log_not_found off;
9 access_log off;
10}
11
12# Very rarely should these ever be accessed outside of your lan
13location ~* \.(txt|log)$ {
14 allow 192.168.0.0/16;
15 deny all;
16}
17
18location ~ \..*/.*\.php$ {
19 return 403;
20}
21
22location ~ ^/sites/.*/private/ {
23 return 403;
24}
25
26# Allow "Well-Known URIs" as per RFC 5785
27location ~* ^/.well-known/ {
28 allow all;
29}
30
31# Block access to "hidden" files and directories whose names begin with a
32# period. This includes directories used by version control systems such
33# as Subversion or Git to store control files.
34location ~ (^|/)\. {
35 return 403;
36}
37
38location / {
39 # try_files $uri @rewrite; # For Drupal <= 6
40 try_files $uri /index.php?$query_string; # For Drupal >= 7
41}
42
43location @rewrite {
44 rewrite ^/(.*)$ /index.php?q=$1;
45}
46
47# Don't allow direct access to PHP files in the vendor directory.
48location ~ /vendor/.*\.php$ {
49 deny all;
50 return 404;
51}
52
53# In Drupal 8, we must also match new paths where the '.php' appears in
54# the middle, such as update.php/selection. The rule we use is strict,
55# and only allows this pattern with the update.php front controller.
56# This allows legacy path aliases in the form of
57# blog/index.php/legacy-path to continue to route to Drupal nodes. If
58# you do not have any paths like that, then you might prefer to use a
59# laxer rule, such as:
60# location ~ \.php(/|$) {
61# The laxer rule will continue to work if Drupal uses this new URL
62# pattern with front controllers other than update.php in a future
63# release.
64location ~ '\.php$|^/update.php' {
65 fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
66 # Security note: If you're running a version of PHP older than the
67 # latest 5.3, you should have "cgi.fix_pathinfo = 0;" in php.ini.
68 # See http://serverfault.com/q/627903/94922 for details.
69 include fastcgi_params;
70 # Block httpoxy attacks. See https://httpoxy.org/.
71 fastcgi_param HTTP_PROXY "";
72 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
73 fastcgi_param PATH_INFO $fastcgi_path_info;
74 fastcgi_param QUERY_STRING $query_string;
75 fastcgi_intercept_errors on;
76 # PHP 5 socket location.
77 #fastcgi_pass 127.0.0.1:9000;
78 # PHP 7 socket location.
79 fastcgi_pass 127.0.0.1:9000;
80}
81
82# Fighting with Styles? This little gem is amazing.
83# location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
84location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
85 try_files $uri @rewrite;
86}
87
88# Handle private files through Drupal. Private file's path can come
89# with a language prefix.
90location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
91 try_files $uri /index.php?$query_string;
92}
93
94location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
95 expires max;
96 log_not_found off;
97}
常见建站框架支持问题
| 框架 | 类型 | 版本 | php5.2 | php5.3 | php5.4 | php5.6 | php7 | 市场占有率 | 备注 |
|---|---|---|---|---|---|---|---|---|---|
| dedecms | CMS | 5.7 | 支持 | 支持 | 支持 | 支持 | 支持 | 37.3% | - |
| thinkphp | 网站 | 3.2.3 | 不支持 | 支持 | 支持 | 支持 | 支持 | 8.7% | 该版要求php版本大于5.2 |
| thinkphp | 网站 | 5.0 | 不支持 | 不支持 | 支持 | 支持 | 支持 | - | 要求php版本大于5.3 5.0版本文件结构进行更改,文件放于public下 进行根目录重置-原有配置也要添加 location / { root /home/bae/app/public; index index.php index.html index.htm; } |
| discuz | 论坛 | 3.2_SC_UTF | 支持 | 支持 | 支持 | 不兼容 | 不支持 | 7% | - |
| discuz | 论坛 | 3.3 | 支持 | 支持 | 支持 | 不支持 | 不支持 | - | mysql 版本 5.5 不兼容,建议用户使用RDS + PHP7 |
| wordpress | Blog | 5.4.3 | 支持 | 支持 | 支持 | 支持 | 支持 | 6.3% | 官方说明要5.2.4版本以上,我们的5.2是5.2.17 不一定完全兼容 |
| 帝国cms | CMS | 7.2_SC_UTF8 | 支持 | 支持 | 支持 | 支持 | 不支持 | 4.7% | - |
| phpcms | CMS | V9.5.10 | 支持 | 支持 | 支持 | 支持 | 不支持 | 3.6% | - |
| ecshop | 电商 | 2.7.3_UTF8 | 支持 | 支持 | 不支持 | 不支持 | 不支持 | 3.3% | ecshop本身问题造成PHP5.4存在兼容性问题,建议用户使用5.3及以下版本 |
| destoon | 电商 | 6.0 | 支持 | 支持 | 支持 | 支持 | 支持 | 1.2% | - |
| zblog | Blog | 1.4 | 支持 | 支持 | 支持 | 支持 | 支持 | 1.1% | - |
| shopex | 电商 | 4.8.5 | 支持 | 支持 | 支持 | - | - | 0.66% | php5.2的zend optimizer默认启用,用户如果希望关闭,可以通过在webroot下的php.ini中加入来关闭 zend_optimizer.optimization_level=0 zend_optimizer.enable_loader=0 php.5.3/5.4的zend guard loader默认关闭,用户可以通过在php.ini中加入zend_loader.enable=1的方式启用 shopex 和apache兼容性更好,可能需要用户自己设置下nginx |
| joomla | CMS | 3.4.5 | 不支持 | 支持 | 支持 | - | - | 0.32% | 官方说明要php5.3.10以上版本 |
| phpok | 网站 | 4.4.071 | 支持 | 支持 | 支持 | - | - | 0.07% | (沙盒)首页ui兼容性问题,后台页面验证码刷新不出。lighttpd也存在该问题(线上)正常 |
| php168 | CMS | V7.0SP | 支持 | 支持 | 支持 | - | - | 0.3% | - |
| 微擎 | 微信 | 0.7 | 不支持 | 不支持 | 支持 | - | - | - | 该版要求php版本大于等于5.3,但5.3版本请求是空白,发生报错被微擎屏蔽了可能 |
| Metinfo | CMS | 5.3 | 支持 | 支持 | 支持 | - | - | - | - |
| YII | 框架 | 2.0 | 不支持 | 不支持 | 不支持 | - | - | - | 因为需要自行安装软件,所以传统的虚拟主机(包括阿里虚拟主机)都无法支持,建议用户使用BCC进行建站。 |
| TPshop | 电商 | 1.2.7 | 不支持 | 不支持 | 不支持 | - | - | - | mysql需要5.5版本,代码中mysqli_get_server_info 获取版本显示的是5.0.51b |
| PHPwind | 论坛 | - | - | - | - | - | - | - | - |
| UCenter Home | 论坛 | - | - | - | - | - | - | - | - |
| shopwwi | 综合 | S5 | 不支持 | 不支持 | 不支持 | - | - | - | 数据库用户名和密码限制了长度,无法正确输入用户名和密码,修改调整框架限制 |
| xiaocms | 框架 | V6 | 不支持 | 不支持 | 不支持 | - | - | - | mysql命令兼容性限制,当前可以建议用户使用RDS |
| corethink | 框架 | 1.3.0 | 支持 | 支持 | 支持 | - | - | - | 代码中/webroot/Application/Install/Controller/IndexController.class.php 的 152-162行,需要注释掉,SQL语句存在兼容性问题 //根据加密字符串更新admin密码的加密结果 // $new_admin_password = user_md5('admin', $auth); // $sql = <<<SQL // UPDATE `{$db_config["DB_PREFIX"]}admin_config` SET `value`='{$auth}' WHERE `name` = 'AUTH_KEY'; // UPDATE `{$db_config["DB_PREFIX"]}admin_user` SET `password`='{$new_admin_password}' WHERE `id` = 1; //SQL; // $result = $db_instance->execute($sql); // if (!$result) { // $this->error('写入系统加密KEY或管理员新密码出错!'); //} |
| 淘宝客 | 框架 | - | 支持 | 支持 | 支持 | - | - | - | - |
| HDWiki | 框架 | - | 修改后支持 | 支持 | 支持 | - | - | - | 修改/install/install.php 409行和410行 maxlength 后面的值改成40 并且注释掉338~355行 |
| feifeicms | 框架 | - | 支持 | 支持 | 支持 | - | - | - | hk环境需要./Lib/ThinkPHP/Lib/Think/Db/Driver/DbMysql.class.php 的58行增加,类似如下的db信息。 $config['hostname'] = 'sqld-hk.bcehost.com'; $config['hostport'] = 4050; $config['username'] = '-'; $config['password'] = '-'; $config['database'] 'msSFwnVPltetDmtaUZZG'; |
| 大商创 | 框架 | V1.9 | 不支持 | 支持 | 不支持 | - | - | - | 安装包比较大有500多MB,需要去除里面的中文文件,重新压缩zip并上传temp目录之后解压到webroot,需要注意的是一定要解压任务成功。 安装过程中需要注意的是使用PHP5.3 + 以及开启zend + 安装时选择使用已有数据库。 1. 需要到控制面板切换到PHP5.3 2. 在php.ini里面添加配置 zend_loader.enable=1 开启zend 重载之后生效 3. 安装的时候要直接点击选择已有数据库,否则会造成无法创建数据库。 |
| phpMyadmin | 框架 | - | 不支持 | 不支持 | 不支持需要php5.5以上 | 支持 | - | - | phpMyAdmin太大了,直接用虚拟主机跑很重 , 而且有些命令我们的数据库也不支持,我们自己的phpmyadmin也是经过裁剪过的,所以建议用户帝国备份王这种或者phpminiadmin会好一些 |
| drupal | 框架 | - | 不支持 | 不支持 | 不支持需要php5.5以上 | 不支持 | 支持,需要配置ngnix正常访问,配置文件见 Drupal安装后无法访问问题 | - | 安装mysql不兼容:\core\lib\Drupal\Core\Database\Driver\mysql\Install\Tasks.php 53行改成5.0.0 |
| octobercms | 框架 | - | - | - | - | 支持 | 支持 | - | - |
| Flarum | 框架 | beta4 | - | - | - | 支持 | 不支持 | - | PHP建议用户使用php5.6 如果mysql版本造成报错的话\vendor\flarum\core\src\Install\Console\InstallCommand.php 可以把211-213行注释掉 |
| iwebshop | 网店 | 4.7 | - | - | 支持 | - | - | - | 安装的时候注意使用压缩包解压,防止出现文档破损(压缩包不能有中文) |
| prestashop | 网店 | 1.5,1.6,1.7 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | - | 安装过程各种报错,框架安装步骤较多,1.5可以安装成功,但是管理后台使用有问题 |
| SDcms | CMS | 1.2 | 不支持 | 不支持 | 支持 | 支持 | 支持 | - | 该版要求php版本大于等于5.4 |
