Thứ Sáu, 3 tháng 8, 2012

Hướng dẫn cài đặt DotNetNuke


DotNetNuke 6.x đã có một bước thay đổi quan trọng đối với Cộng đồng, hầu hết phần core của DNN 6.x đã được viết lại bằng Ngôn ngữ lập trình C#, đây cũng là ngôn ngữ được rất nhiều lập trình viên .NET ưa chuộng.
Nếu trước đây bạn đã từng lo ngại vì DotNetNuke sử dụng VB.NET thì nay đó không còn là vấn đề nữa, với nhiều thay đổi từ bộ core bên trong đến việc bổ sung các Skin (giao diện mới) DotNetNuke ngày càng được cộng đồng quan tâm hơn.

Rất vui vì bạn đã quan tâm tới bài viết này. Hi vọng bạn cũng sẽ là một tín đồ của DotNetNuke và kiếm được một chút gì đó khi tham gia Cộng đồng DotNetNuke Việt Nam
Đây cũng là bài đầu tiên trong chuỗi những bài hướng dẫn sử dụng và phát triển DotNetNuke
Đọc xong bài này bạn sẽ:
- Hiểu được những vấn đề cơ bản trong quá trình cài đặt
- Có thể cài đặt thành thạo được DotNetNuke từ bộ mã nguồn
- Có được một bản DNN chạy offline là cơ sở để bạn có thể tùy chỉnh DotNetNuke theo ý của bạn.
Bài 1: Hướng dẫn cài đặt DotNetNuke từ bộ mã nguồn của DotNetNuke
Trước hết xin mời bạn có thể xem demo bản cài đặt tại địa chỉ: http://demo.dnnvn.net/ . Hi vọng bạn trở lại bài viết ngay để tiếp tục theo dõi bởi sau bài viết này, tự bạn cũng có thể cài đặt được một bản như vậy. Còn bây giờ, DNNVN xin được bắt đầu bài viết.
Yêu cầu hệ thống:
- Đã cài đặt IIS và đảm bảo IIS đang hoạt động bình thường (Xem hướng dẫn cài đặt IIS trên Windows 7)
- Đã cài đặt Visual studio 2008/2010
- Đã cài đặt MS SQL 2005/2008 (có thể dùng bản express hoặc bản cao hơn, tuy nhiên đã mất công dùng thì dùng luôn bản mới để ngâm cứu cho sướng)
- Download bộ cài của DotNetNuke tại địa chỉ http://dotnetnuke.codeplex.com/ và giải nén vào một thư mục trên ổ đĩa. ở đây tôi chọn làD:\Develop\2011\DNNVN.NET\DotNetNuke_Community_06.00.01_Source

Bước 1: Tạo CSDL cho bản cần cài đặt. 
Do dùng trên local nên tôi tạm dùng tài khoản SA vì hệ thống local của máy cá nhân không cần yêu cầu bảo mật cao vả lại tạo nhiều tài khoản nhiều khi khó quản. Tuy nhiên bạn cũng chú ý, khi cài trên online - những ứng dụng yêu cầu bảo mật hoặc hệ thống có nguy cơ rủi ro từ việc sử dụng chung tài khoản truy cập CDSL  tốt nhất mỗi trang web nên có một user truy cập riêng - cái này phụ thuộc vào chính sách bảo mật và mô hình tổ chức của bạn.
Để tạo một CSDL cho website chuẩn bị cài đặt, bạn đăng nhập vào MS SQL và New database ...

Create database mssql
Sau đó bạn nhập tên cho CSDL cần tạo, ở đây tôi đặt là dnnvn_demo, bạn nhớ lấy tên csdl này để lát nữa sẽ cung cấp cho DotNetNuke khi cài đặt.
Chú ý: Nếu cần thay đổi đường dẫn của các file CSDL (thường là hay làm vậy bởi mặc định những gì nằm ở ổ C: khi hệ thống bị tèo thì bạn có thể mất đi bất kỳ lúc nào. Nhất là khi bị quên ko sao lưu khi cài lại máy). Phòng trường hợp này, tôi chọn nơi lưu trữ cũng là một thư mục chứa bộ source của DotNetNuke sau này.

create database mssql - cong dong dotnetnuke viet nam

Sau khi tạo CSDL xong, bước tiếp theo là dùng Visual studio để mở DotNetNuke lên, mặc định bộ cài chưa có đủ file .dll do đó ta phải dùng Visual Studio để build. Quá trình build thành công, bạn sẽ có một bản sẵn sàng cho việc cài đặt
Bước 2: Build DotNetNuke bằng Visual Studio từ bộ Source đã download
Bước này cần chú ý: mặc định DotNetNuke sẽ tạo ra một virtual directory trên máy bạn với tên là: DotNetNuke_Community và địa chỉ truy cập là http://localhost/DotNetNuke_Community , nếu bạn không thích cái tên do nó tự tạo, bạn có thể mở file Solution bằng một text editor - không phải visual studio, và sửa chúng. Ở đây tôi dùng Notepad++ và chọn tên mới là dnnvn, địa chỉ truy cập dự kiến sẽ là: http://localhost/dnnvn. Bạn cũng chú ý, để tránh những thông tin thiếu sót tốt nhất là bạn nên dùng replace all và next từng giá trị một để có thể quan sát. Việc quan sát này cũng sẽ cho bạn những hiểu biết nhất định về Solution của  DotNetNuke. Code sau khi sửa:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "dnnvn", "http://localhost/dnnvn", "{B3AA3E14-0471-4AFE-9844-D8B2A1259C67}"
    ProjectSection(WebsiteProperties) = preProject
        SccProjectName = ""
        SccAuxPath = ""
        SccLocalPath = ""
        SccProvider = ""
        UseIISExpress = "false"
        TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
        Debug.AspNetCompiler.VirtualPath = "/dnnvn"
        Debug.AspNetCompiler.PhysicalPath = "Website\"
        Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\dnnvn\"
        Debug.AspNetCompiler.Updateable = "true"
        Debug.AspNetCompiler.ForceOverwrite = "true"
        Debug.AspNetCompiler.FixedNames = "false"
        Debug.AspNetCompiler.Debug = "True"
        Release.AspNetCompiler.VirtualPath = "/dnnvn"
        Release.AspNetCompiler.PhysicalPath = "Website\"
        Release.AspNetCompiler.TargetPath = "PrecompiledWeb\dnnvn\"
        Release.AspNetCompiler.Updateable = "true"
        Release.AspNetCompiler.ForceOverwrite = "true"
        Release.AspNetCompiler.FixedNames = "false"
        Release.AspNetCompiler.Debug = "False"
        SlnRelativePath = "Website\"
    EndProjectSection
Trước khi dùng VisualStudio mở và build Solution, bạn nhớ đổi tên file Release.config thành Web.Config (hoặc Development.config thành web.config) việc quyết định sử dụng file nào tùy thuộc vào bạn sử dụng DNN này ra sao. Thường thì cứ đổi file release.config thành Web.config cho chắc ăn. Nếu bạn quên không đổi, VisualStudio sẽ tự động tạo và đó sẽ là lý do khi chạy bị lỗi.
Tiếp theo bạn mở Visual Studio ra và Build Solution này. Ở đây tôi dùng VS 2010, .NET 4.0 và Windows 7. Việc sử dụng hệ điều hành (dẫn đến IIS có thể khác nhau) phiên bản Visual Studio và .NET Framework khác nhau cũng có khác nhau đôi chút. Nên nếu giao diện cửa sổ Windows của bạn có khác thì cũng không phải lo lắng.
Như bên trên đã đề cập, do bộ này là bộ source nên vẫn các file dll đi kèm không được vào thư mục bin của website như bộ Install, do đó ta cần phải build trước khi chạy. Nếu bạn không buil mà chạy ngay sẽ bị dính lỗi như sau:
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Việc build cũng chỉ mất vài phút thiết nghĩ đối với những người mới làm quen thì nên làm đầy đủ các bước này để có thể quan sát và nắm rõ hơn DotNetNuke
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam

Quá trình build thành công, bạn sẽ nhận được kết quả như cửa sổ sau. Chú ý: "Nếu build mà không thành công, xin kiểm tra lỗi và xem lại máy của bạn" vì có một số trường hợp tôi từng hỗ trợ, nguyên nhân là do IIS của máy đó dẫn tới quá trình build bị thất bại hoặc gặp các lỗi khi bắt đầu chạy. Việc này tùy từng trường hợp mà có cách xử lý cụ thể, nếu bạn nào gặp vào trường hợp này xin post lên diễn đàn anh em trong diễn đàn sẽ hỗ trợ.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam

Sau khi build thành công, đây là lúc mà bạn đã sẵn sàng để chạy bằng cách chọn View in Browser từ cửa sổ của Visual Studio hoặc bạn có thể mở trình duyệt và gõ thẳng vào http://localhost/dnnvn. Hình minh họa:
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam

Một cửa sổ mới hiện ra và chúng ta bắt đầu quá trình thiết lập thông tin cài đặt, ở đây ta chọn chế độ cài đặt là Custom - tùy chọn từng bước trong quá trình cài đặt
ngoài ra còn 2 chế độ nữa đó là:
Typical: cài đặt với những module, thành phần điển hình tích hợp sẵn trong DotNetNuke
Auto: hệ thống sẽ tự động cài đặt với các thông tin mặc định của dotnetnuke ví dụ như tên, mật khẩu của host, admin, các module điển hình có sẵn trong dotnetnuke. Để thực hiện được bước này thì bạn phải thay đổi chuỗi kết nối CSDL trước khi bắt đầu cài đặt trong file web.config.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Chọn Next để chuyển sang bước tiếp theo. Một màn hình mới hiện ra với các thông tin kiểm tra quyền của user IIS (Đối với WinXP thì user này là aspnet_user, còn đối với windows 7, windows server là NETWORK SERVICES, nếu trên host có sử dụng Plesk thì user thường là Plesk IIS User  tùy theo hệ thống mà chọn user tương ứng.
Các quyền cần phải thiết lập: Tạo/xóa thư mục/tệp tin (nếu thiết lập quyền cho user thì tương ứng sẽ là quyền modify)
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Tiếp theo là nhập thông tin kết nối CSDL cho website đang cài đặt. Có một tham số quan trọng ở đây chính là Object Qualifier đây chính là tiền tố cho tên các đối tượng do DotNetNuke tạo trong quá trình cài đặt. Ví dụ nếu bạn đặt là dnnvn thì khi tên các table do DotNetNuke sinh ra sẽ tương ứng là dnnvn_Users,dnnvn_Portals ...
Ở đây tôi bỏ trống - coi như không có tiền tố cho các đối tượng được sinh ra smiley

Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Bước tiếp theo DotNetNuke sẽ tự động cài đặt. Bạn chỉ việc click Next cho mỗi bước được yêu cầu.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Khai báo thông tin tài khoản host (tài khoản quản trị cấp cao nhất hệ thống DotNetNuke) và khai báo thông tin thiết lập Email. Các thông tin hiển thị như hình minh họa.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Chọn các module cài đặt thêm vào DotNetNuke ngoài các module không thể thiếu. Sau này vẫn có thể cài lại các module này.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Chọn Skin để cài đặt, ở đây mặc định chỉ có 1 Skin do đó ta cứ Next cho nhanh (vì cũng ko còn chỗ nào hay hơn để Click nữa >:) ). Sau này muốn cài vẫn thoải mái vào cài.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Chọn ngôn ngữ - Tuy nhiên mặc định thì ta lại next. Sau này ta vẫn có thể cài thêm ngôn ngữ này.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Chọn chế độ xác thực đăng nhập, cái Active Directory này dùng khi kết hợp với cả hệ thống ActiveDirectory của Windows Server. Trên localhost chúng ta không chọn chế độ này.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Cài đặt thêm các Provider cho DotNetNuke. Mặc định chọn Next, các thành phần Provider được chọn sẽ tích hợp vào trong hệ thống như mở rộng thêm các tính năng cho Website,
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Khai báo thông tin tài khoản quản trị website ở bước này bạn chú ý: nên dùng email khác với Tài khoản host để tránh xung đột sau này khi bạn muốn bắt buộc mỗi người dùng phải sử dụng một email phân biệt bằng cách cấu hình trong file web.config sau khi cài dặt
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Code cấu hình yêu cầu mỗi người dùng phải sử dụng một email khác nhau. Thiết lập thuộc tính requiresUniqueEmail=true
 
?
1
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SiteSqlServer" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" requiresUniqueEmail="true" passwordFormat="Encrypted" applicationName="DotNetNuke" description="Stores and retrieves membership data from the local Microsoft SQL Server database" />
Xin nói thêm có 2 thuộc tính trong chuỗi này bạn cũng nên quan tâm đó là
minRequiredPasswordLength="7": Độ dài tối thiểu của mật khẩu, nếu muốn ngắn hơn thì bạn có thể điều chỉnh giảm con số này. minRequiredNonalphanumericCharacters="0": Số ký tự đặc biệt yêu cầu, nếu muốn mật khẩu có độ khó cao hơn thì bạn thiết lập giá trị cho tham số này. Sau bước trên. bạn sẽ có một màn hình như sau.
Cài đặt DotNetNuke - Cộng đồng DotNetNuke Việt Nam
Demo của bản cài đặt này bạn có thể xem thêm tại địa chỉ http://demo.dnnvn.net/
Trên đây là bài hướng dẫn cài đặt DotNetNuke từ bộ mã nguồn của DotNetNuke 6.0.1 - tất nhiên bài viết này vẫn có giá trị đối với các phiên bản 5.x và những bản về sau. (Tất nhiên khi DotNetNuke thay đổi các bước cài đặt, chúng ta sẽ trao đổi về vấn đề đó sau).
Các vấn đề đã đề cập trong bài viết:
1. Cách cài đặt DotNetNuke từ bộ mã nguồn (source code)
2. Các bước thiết lập thông tin trong quá trình cài đặt DotNetNuke
3. Cách thiết lập email,mật khẩu trong cấu hình web.config của DotNetNuke

2 nhận xét:

  1. các bài hướng dẫn dotnetnuke framework



    Mình có một số bài về dotnetnuke muốn chia sẻ, vì cũng không thể chia sẻ hết được tại đây, nên các bạn nào có nhả ý thì ghé qua blog đóng góp ý kiến, cùng nhau chia sẻ nhé
    ở đây mình đã viết được một số bài, và đang viết thêm :

    Làm thế nào để Dotnetnuke chạy nhanh hơn
    http://raokhang.blogspot.com/2013/08/p1-lam-nao-e-dotnetnuke-chay-nhanh-hon.html

    Làm thế nào để xóa evenlog, sitelog, schedulehistory một cách tự động
    http://raokhang.blogspot.com/2013/08/p2-lam-nao-e-xoa-evenlog-sitelog.html

    Sử dụng cache để tăng scalability và tốc độ thực thi
    http://raokhang.blogspot.com/2014/02/p3-su-dung-cache-e-tang-scalability-va.html

    Trả lờiXóa
  2. giúp mình sủa lỗi này với

    Connection Error(s):
    Index #: 0
    Source: .Net SqlClient Data Provider
    Class: 20
    Number: -1
    Message:

    Trả lờiXóa