概述
一、部署edusoho站点
Edusoho是面向个人、学校、培训机构及企业用户的友好、开源、高性价比的在线教育建站系统。Edusoho提供在线教学、网校管理、云视频点播、直播、移动APP等功能。
1.1 安装edusoho推荐的缓存软件和gd图形组件
[root@httpd-2 ~]# yum -y install mod_xsendfile
[root@httpd-2 src]# yum -y install gd php-gd
1.2 修该主配置文件
[root@httpd-2 ~]# vi /etc/httpd/conf/httpd.conf
// 将如下内容注释掉:
#<Files ".ht*">
#Require all denied
#</Files>
1.3 创建edusoho配置文件
root@httpd-2 ~]# cd /etc/httpd/conf.d/
[root@httpd-2 conf.d]# cp ecshop.conf edu.conf
[root@httpd-2 conf.d]# cat edu.conf
<VirtualHost *:80>
ServerAdmin 164767965@qq.com
DocumentRoot "/web/edu/web"
ServerName www.edu.com
ServerAlias edu.com
ErrorLog "logs/edu-error_log"
CustomLog "logs/edu-access_log" combined
</VirtualHost>
<Directory /web/edu/web>
AllowOverride All
Require all granted
</Directory>
1.4 创建站点目录
[root@httpd-2 ~]# mkdir /web/edu
1.5 修改hosts文件
打开C:WindowsSystem32driversetchosts文件,添加如下内容:
192.168.235.82 www.edu.com edu.com
1.6 配置PHP文件
[root@httpd-3 ~]# vi /etc/php.ini
#修改时区设置:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
#设置上传文件的最大值,也就是上传的视频最大1G:
post_max_size = 1024M
upload_max_filesize = 1024M
memory_limit = 1024M
1.7 部署edusoho代码
打开http://www.edusoho.com/,点击开源下载
[root@httpd-2 ~]# cd /usr/local/src
[root@httpd-2 src]# rz -y
[root@httpd-2 src]# unzip edusoho-7.5.5.zip
[root@httpd-2 src]# cd edusoho
[root@httpd-2 edusoho]# ls
api app bootstrap plugins src vendor vendor_user web
[root@httpd-2 wordpress]# cp -r * /web/edu/
1.8 修改权限
[root@httpd-2 ~]# chown -R apache.apache /web/edu/
[root@httpd-2 ~]# apachectl -t
Syntax OK
[root@httpd-2 ~]# apachectl graceful
1.10 部署edusoho数据库
访问首页http://www.edu.com/install/start-install.php,在下面页面中点击【同意协议,并开始安装】按钮,如下图所示:
检测环境:
parameters.yml没有执行权限,需要将该文件增加执行权限:
[root@httpd-2 ~]# cd /var/www/edu/app/config/
[root@httpd-2 config]# chmod u+x parameters.yml
[root@httpd-2 config]# ll
-rwxr--r-- 1 apache apache 1491 Jul 7 19:39 parameters.yml
重新检测,在下图界面中点击【下一步】:
创建数据库:
初始化系统:
安装完成,保存好授权码:
访问网站:
二、配置安全方式访问网站(重要)
Edusoho基本的网站已经搭建好了,下面将网站由80端口改为443端口,将访问网站的流量进行加密。
2.1 网站证书
为了保证用户的信息安全,网站都会向第三方申请证书,来确保用户访问的是真正的网站。如果网站不部署证书,用户易被DNS攻击,访问一个与真正的网站完全一样的钓鱼网站,就很容易上当受骗。证书是由第三方的权威机构颁发的,windows操作系统中默认信任了这些权威证书机构,如果访问的网站有第三方机构颁发的证书,网站就会显示网站的认证信息,用户就可以放心的访问该网站了。
查看百度网站的证书,点击左上角小锁:
2.2 创建自定义证书
创建新目录存储私钥:
[root@httpd-2 ~]# mkdir /etc/ssl/private
设置目录权限,只有root用户可以访问:
[root@httpd-2 ~]# chmod 700 /etc/ssl/private
使用openssl创建SSL密钥和证书文件:
[root@httpd-2 ~]# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
Generating a 2048 bit RSA private key
................+++
...............................+++
writing new private key to '/etc/ssl/private/apache-selfsigned.key'
Country Name (2 letter code) [XX]:CN #所在国家
State or Province Name (full name) []:SD #所在省份
Locality Name (eg, city) [Default City]:TA #所在城市
Organization Name (eg, company) [Default Company Ltd]:SKD #申请组织
Organizational Unit Name (eg, section) []:IT # 申请部门
Common Name (eg, your name or your server's hostname) []:www.edu.com
#输入要申请证书的域名,如果没有域名,可以输入IP地址
Email Address []:carrick_ma@163.com #联系人邮箱
[root@httpd-2 ~]# ll /etc/ssl/certs/apache-selfsigned.crt # 证书文件
-rw-r--r-- 1 root root 1367 Jun 6 18:53 /etc/ssl/certs/apache-selfsigned.crt
[root@httpd-2 ~]# ll /etc/ssl/private/apache-selfsigned.key # 私钥文件
-rw-r--r-- 1 root root 1704 Jun 6 18:53 /etc/ssl/private/apache-selfsigned.key
参数 | 作用 |
---|---|
openssl | 这是创建和管理OpenSSL证书、密钥和其他文件的命令。 |
req -x509 | 这指定我们要使用X.509证书签名请求(CSR)管理。 “X.509”是SSL和TLS坚持用于密钥和证书管理的公钥基础架构标准。 |
-nodes | 告诉OpenSSL跳过使用密码保护证书的选项。当服务器启动时,我们需要Apache才能读取文件,无需用户干预。密码会阻止这种情况发生,因此每次重新启动后都必须输入密码。 |
-days 3650 | 设置证书的有效期。我们在这里设置了十年。 |
-newkey rsa:2048 | 定同时生成新证书和新密钥。我们没有创建在上一步中签署证书所需的密钥,因此我们需要与证书一起创建。 rsa:2048分配告诉它制作一个2048位长的RSA密钥。 |
-keyou | 设置OpenSSL私钥文件的目录和文件名。 |
-out | 设置OpenSSL证书的目录和文件名。 |
2.3 创建DH
DH用于客户端和服务器端协商全程加密
[root@httpd-2 ~]# openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.................................................++*++*
[root@httpd-2 ~]# ll /etc/ssl/certs/dhparam.pem
-rw-r--r-- 1 root root 424 Jun 6 19:07 /etc/ssl/certs/dhparam.pem
由于CentOS7附带的Apache版本不包含SSLOpenSSLConfCmd指令,所以必须手动将生成的文件附加到我们的自签名证书的末尾,操作方式如下:
[root@httpd-2 ~]# cat /etc/ssl/certs/dhparam.pem | sudo tee -a /etc/ssl/certs/apache-selfsigned.crt
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEA45IXdqpcMbnjmLcBKFhEt20tRrzPEXCMGMa265gH4oc1CmvsA8BE
qVdyEOKuPCsRXZXYsMwGRUWPRHLegpLseHecXBn9x+JOtOz7njRLR7onRPsBT+TW
GPqM1UF5Wu4HTnY4tyjcqNNsRxhRlf7m3fJ0SKPUg2P3hbjzi+NpI+/MpESsJMCl
lVHNXJzRBQVn3zy8g9XRojmU7C/Ada/SVCsD7TLVmnbnovrK70L5zSzS+kD1berZ
bSXY38jHpbi1PTAg6QURgAtY4DUcqYngOpMkPQlualDC8AmWMti/WeN38Yk0JzVN
G1my9hgX+ZAsntvm4bf/usAPwVjKRp4bOwIBAg==
-----END DH PARAMETERS-----
将证书文件和私钥文件拷贝到/etc/httpd目录:
[root@httpd-2 ~]# cp /etc/ssl/certs/apache-selfsigned.crt /etc/httpd
[root@httpd-2 ~]# cp /etc/ssl/private/apache-selfsigned.key /etc/httpd
[root@httpd-2 ~]# ll /etc/httpd/apache*
-rw-r--r-- 1 root root 1803 Jun 6 19:13 /etc/httpd/apache-selfsigned.crt
-rw-r--r-- 1 root root 1704 Jun 6 19:13 /etc/httpd/apache-selfsigned.key
// 修改秘钥文件和证书文件权限:
[root@httpd-2 ~]# chown apache.apache /etc/httpd/apache*
2.4 安装mod_ssl
mod_ssl是一个支持SSL的apache加密模块,安装方式如下:
[root@httpd-2 ~]# yum install mod_ssl –y
安装完成后,会在/etc/httpd/conf.d目录下,生成一个ssl.conf配置文件:
[root@httpd-2 ~]# cd /etc/httpd/conf.d/
[root@httpd-2 conf.d]# ls
autoindex.conf edu.conf php.conf README ssl.conf userdir.conf
参考ssl.conf对虚拟主机进行配置。
2.5 修改edu.conf配置文件
[root@httpd-2 ~]# vi /etc/httpd/conf.d/edu.conf
#原先内容保留,因为用户会访问80端口,然后从80跳转到443端口:
<VirtualHost *:80>
ServerAdmin 164767965@qq.com
DocumentRoot "/var/www/edu/web"
ServerName www.edu.com
ServerAlias edu.com
ErrorLog "logs/edu-error_log"
CustomLog "logs/edu-access_log" combined
RewriteEngine On #启用rewrite功能
RewriteRule ^(.*)$ https://www.edu.com$1 [R=301,L] #301是永久重定向
</VirtualHost>
#在配置文件中,添加如下内容:
<VirtualHost *:443>
DocumentRoot "/var/www/edu/web"
ServerName www.edu.com #这里要去掉ServerAlias
ErrorLog "logs/edu-error_log"
CustomLog "logs/edu-access_log" combined
SSLEngine on # 启用SSL
SSLCertificateFile apache-selfsigned.crt # 证书文件
SSLCertificateKeyFile apache-selfsigned.key # 证书秘钥文件
</VirtualHost>
重启服务器:
[root@httpd-3 ~]# apachectl -t
Syntax OK
[root@httpd-3 ~]# systemctl restart httpd
2.6 访问测试
在浏览器中输入域名www.edu.com,这个域名使用http协议的80端口进行访问时,会自动跳转到如下界面。在如下界面中点击【高级】【接受风险并继续】按钮:
最后
以上就是动听可乐为你收集整理的部署LAMP站点-edusoho的全部内容,希望文章能够帮你解决部署LAMP站点-edusoho所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复