天天看點

部署LAMP站點-edusoho

一、部署edusoho站點

Edusoho是面向個人、學校、教育訓練機構及企業使用者的友好、開源、高成本效益的線上教育建站系統。Edusoho提供線上教學、網校管理、雲視訊點播、直播、移動APP等功能。

1.1 安裝edusoho推薦的緩存軟體和gd圖形元件

[[email protected] ~]# yum -y install mod_xsendfile
[[email protected] src]# yum -y install gd php-gd
           

1.2 修該主配置檔案

[[email protected] ~]# vi /etc/httpd/conf/httpd.conf
// 将如下内容注釋掉:
#<Files ".ht*">
#Require all denied
#</Files>
           

1.3 建立edusoho配置檔案

[email protected] ~]# cd /etc/httpd/conf.d/
[[email protected] conf.d]# cp ecshop.conf edu.conf
[[email protected] conf.d]# cat edu.conf 
<VirtualHost *:80>
    ServerAdmin [email protected]  
    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 建立站點目錄

[[email protected] ~]# mkdir /web/edu
           

1.5 修改hosts檔案

打開C:\Windows\System32\drivers\etc\hosts檔案,添加如下内容:

192.168.235.82 www.edu.com edu.com

1.6 配置PHP檔案

[[email protected] ~]# 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/,點選開源下載下傳

[[email protected] ~]# cd /usr/local/src
[[email protected] src]# rz -y
[[email protected] src]# unzip edusoho-7.5.5.zip 
[[email protected] src]# cd edusoho
[[email protected] edusoho]# ls
api  app  bootstrap  plugins  src  vendor  vendor_user  web
[[email protected] wordpress]# cp -r * /web/edu/
           

1.8 修改權限

[[email protected] ~]# chown -R apache.apache /web/edu/
[[email protected] ~]# apachectl -t
Syntax OK
[[email protected] ~]# apachectl graceful
           

1.10 部署edusoho資料庫

通路首頁http://www.edu.com/install/start-install.php,在下面頁面中點選【同意協定,并開始安裝】按鈕,如下圖所示:

部署LAMP站點-edusoho

檢測環境:

部署LAMP站點-edusoho
部署LAMP站點-edusoho

parameters.yml沒有執行權限,需要将該檔案增加執行權限:

[[email protected] ~]# cd /var/www/edu/app/config/
[[email protected] config]# chmod u+x parameters.yml 
[[email protected] config]# ll
-rwxr--r-- 1 apache apache 1491 Jul  7 19:39 parameters.yml
           

重新檢測,在下圖界面中點選【下一步】:

部署LAMP站點-edusoho

建立資料庫:

部署LAMP站點-edusoho

初始化系統:

部署LAMP站點-edusoho

安裝完成,儲存好授權碼:

部署LAMP站點-edusoho

通路網站:

部署LAMP站點-edusoho

二、配置安全方式通路網站(重要)

Edusoho基本的網站已經搭建好了,下面将網站由80端口改為443端口,将通路網站的流量進行加密。

2.1 網站證書

為了保證使用者的資訊安全,網站都會向第三方申請證書,來確定使用者通路的是真正的網站。如果網站不部署證書,使用者易被DNS攻擊,通路一個與真正的網站完全一樣的釣魚網站,就很容易上當受騙。證書是由第三方的權威機構頒發的,windows作業系統中預設信任了這些權威證書機構,如果通路的網站有第三方機構頒發的證書,網站就會顯示網站的認證資訊,使用者就可以放心的通路該網站了。

檢視百度網站的證書,點選左上角小鎖:

部署LAMP站點-edusoho

2.2 建立自定義證書

建立新目錄存儲私鑰:
[[email protected] ~]# mkdir /etc/ssl/private

設定目錄權限,隻有root使用者可以通路:
[[email protected] ~]# chmod 700 /etc/ssl/private

使用openssl建立SSL密鑰和證書檔案:
[[email protected] ~]# 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 []:[email protected]   #聯系人郵箱
[[email protected] ~]# ll /etc/ssl/certs/apache-selfsigned.crt      # 證書檔案
-rw-r--r-- 1 root root 1367 Jun  6 18:53 /etc/ssl/certs/apache-selfsigned.crt
[[email protected] ~]# 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用于用戶端和伺服器端協商全程加密

[[email protected] ~]# 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
.................................................++*++*
[[email protected] ~]# 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指令,是以必須手動将生成的檔案附加到我們的自簽名證書的末尾,操作方式如下:

[[email protected] ~]# 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目錄:

[[email protected] ~]# cp /etc/ssl/certs/apache-selfsigned.crt /etc/httpd
[[email protected] ~]# cp /etc/ssl/private/apache-selfsigned.key /etc/httpd
[[email protected] ~]# 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
 // 修改秘鑰檔案和證書檔案權限:
[[email protected] ~]# chown apache.apache /etc/httpd/apache*
           

2.4 安裝mod_ssl

mod_ssl是一個支援SSL的apache加密子產品,安裝方式如下:

[[email protected] ~]# yum install mod_ssl –y
安裝完成後,會在/etc/httpd/conf.d目錄下,生成一個ssl.conf配置檔案:
[[email protected] ~]# cd /etc/httpd/conf.d/
[[email protected] conf.d]# ls
autoindex.conf  edu.conf  php.conf  README  ssl.conf  userdir.conf
           

參考ssl.conf對虛拟主機進行配置。

2.5 修改edu.conf配置檔案

[[email protected] ~]# vi /etc/httpd/conf.d/edu.conf
#原先内容保留,因為使用者會通路80端口,然後從80跳轉到443端口:
<VirtualHost *:80>
    ServerAdmin [email protected]
    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>
           

重新開機伺服器:

[[email protected] ~]# apachectl -t
Syntax OK
[[email protected] ~]# systemctl restart httpd
           

2.6 通路測試

在浏覽器中輸入域名www.edu.com,這個域名使用http協定的80端口進行通路時,會自動跳轉到如下界面。在如下界面中點選【進階】【接受風險并繼續】按鈕:

部署LAMP站點-edusoho
部署LAMP站點-edusoho

繼續閱讀