DedeBIZ系统基于PHP+MySQL开发,同时数据库支持SQLite3用于本地开发调试。本篇主要从开发、生产两个部分来介绍如何筹备Dede系统需要的运营环境。
1.操作系统:Linux、Windows、OpenBSD
2.PHP:PHP7.2+
3.MySQL:MySQL5+
5.Web服务器:Nginx、Apache、IIS
构建一个最小的开发环境,仅仅为了体验或者制作模板,DedeBIZ会非常简单。从PHP5.4开始,PHP本身就包含了一个轻量级的开发Web Server,无需依赖任何第三方Web组件。
根据操作系统选择对应平台的PHP环境,由于我们开发环境采用Windows系统,可以通过PHP的Windows站点下载到相应的程序包。
下载对应的版本,解下压缩文件,我们可以将解压的压缩文件目录,例如D:\apps\php
添加到系统环境PATH变量中去。
复制php.ini-development
文件名为php.ini
,修改这个php.ini
文件。
我们需要保证开启几个DedeBIZ系统需要的基本组件。
extension_dir = "ext" ;由于是Windows环境,设定下载扩展目录
extension=curl ;开启后主要用于HTTP通信,比如获取远程服务器数据信息、接口调用
extension=gd2 ;验证码
extension=mysqli ;数据库存储
extension=openssl ;用于系统安全校验、授权
extension=sockets ;用于和DedeB商业组件通信
extension=sqlite3 ;开发环境下的SQLite3数据库
extension=fileinfo ;文件上传处理
好了,一个轻量级的PHP环境搭建完毕了,如果是Linux下面例如Ubuntu系统,通过sudo apt install php php-cli openssl php-gd php-mysql php-sqlite3 php-sockets php-fileinfo
。
在DedeBIZ系统src目录下采用PHP内置的Web Server运行,执行命令php -S localhost:8088 -t .
,访问地址http://localhost:8088
就可以访问到DedeBIZ安装界面。
或者采用DedeBIZ自带的命令行工具,可以轻松构建一个开发环境,执行命令行php ./dedebiz q
就可以快速初始化一个本地开发站点,或者运行php ./dedebiz s
,通过安装步骤自己可以初始化一个轻量级的系统开发环境。
生产环境建议采用Nginx+PHP-FPM的方式运行DedeBIZ,这里我们以在Ubuntu 20.04 LTS的Linux环境下为例。
执行命令sudo apt install nginx
,系统将会自动安装Nginx服务器。通过执行systemctl status nginx
可以查看Nginx服务运行状态。
如果你的服务器环境启用了防火墙,可以执行sudo ufw allow proto tcp from any to any port 80,443
来允许80、443端口访问站点。
执行命令sudo apt install php php-cli php-fpm php-json php-mysql php-zip php-gd php-curl php-sqlite3 php-sockets
来安装PHP及相关组件。
系统默认会安装PHP7.4版本,运行systemctl status php7.4-fpm.service
查看PHP服务运行情况。
执行命令sudo apt install mysql-server
安装MySQL服务,同样,通过systemctl status mysql
也能够查看服务运行情况。
执行命令sudo mysql_secure_installation
根据提示初始化数据库,如果希望了解更为详细的步骤,可以尝试通过搜索引擎了解。
我们先创建一个PHP环境的Web站点,可以在系统目录/var/www
下创建一个名为DedeBIZ
的文件夹。
修改/etc/nginx/sites-available/default
文件。
配置如下:
server {
listen 80;
server_name www.mydomain.com; # 这里是你自己的站点域名
index index.html index.php;
charset utf-8;
root /var/www/DedeBIZ/src;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
至此我们完成了一个DedeBIZ的运行环境的搭建。
下面是一个HTTPS站点Nginx生产环境运行实例,将前后台通过站点的方式进行分离,并且通过限定IP的方式保证后台独立出来。
server {
listen 80;
server_name www.dedebiz.com dedebiz.com;
return 301 https://www.dedebiz.com$request_uri;
# return 404;
}
server {
listen 443 ssl;
server_name dedebiz.com;
charset utf-8;
ssl_certificate /etc/nginx/ssl/1_dedebiz.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_dedebiz.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl on;
return 301 https://www.dedebiz.com$request_uri;
}
server {
listen 443 ssl;
server_name www.dedebiz.com;
index index.html index.php;
charset utf-8;
ssl_certificate /etc/nginx/ssl/1_www.dedebiz.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_www.dedebiz.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl on;
root /data/dedebiz/www/src;
location ~ /(admin|system|data|theme) {
deny all;
return 404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
server {
listen 443 ssl;
server_name adm.dedebiz.com;
index index.html index.php;
root /data/dedebiz/www/src;
ssl_certificate /etc/nginx/ssl/1_adm.dedebiz.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_adm.dedebiz.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl on;
allow 88.88.88.88; # 设定网站管理员的IP地址
deny all;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}