BookStack là một nền tảng nguồn mở để tạo nội dung tài liệu/wiki cho dự án của bạn. Nó được viết bằng ngôn ngữ lập trình PHP và sử dụng khung web Laravel. Về cơ bản, tài liệu/wiki dự án của bạn sẽ được lưu trữ trên BookStack dưới dạng 'Book', theo sau là 'Chapter' và 'Pages'. Nó giúp bạn dễ dàng tạo và đọc tài liệu dưới dạng Book, dựa trên Chapter và Pages.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình BookStack trên CentOS 7 theo ngăn xếp LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Hướng dẫn này sẽ đề cập đến các chủ đề bao gồm cài đặt PHP Composer và tạo cơ sở dữ liệu MySQL bằng dòng lệnh.
Cài đặt kho lưu trữ EPEL bằng lệnh yum bên dưới.
Cài đặt Máy chủ web Nginx sử dụng lệnh yum bên dưới.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ và cho phép nó khởi chạy mỗi khi khởi động hệ thống.
Bây giờ hãy kiểm tra bằng lệnh netstat.
Đảm bảo bạn có cổng 80 trong danh sách và cổng này được dịch vụ Nginx sử dụng.
Máy chủ web Nginx hiện đã được cài đặt trên hệ thống CentOS 7.
Bổ sung: Nếu bạn đang chạy firewalld trên hệ thống của mình, hãy thêm dịch vụ HTTP mới vào cấu hình bằng cách chạy các lệnh bên dưới.
Trước khi cài đặt PHP và PHP-FPM, hãy thêm kho lưu trữ 'webtatic' mới vào hệ thống CentOS 7 bằng lệnh rpm bên dưới.
Bây giờ hãy cài đặt PHP và PHP-FPM với tất cả các tiện ích mở rộng cần thiết bằng lệnh yum theo cách sau.
Sau khi cài đặt hoàn tất, chúng ta cần chỉnh sửa tệp cấu hình 'php.ini' và chỉnh sửa cấu hình nhóm php-fpm 'www.conf'.
Sử dụng trình soạn thảo vim để chỉnh sửa tệp cấu hình 'php.ini'.
Bỏ chú thích dòng 'cgi.fix_pathinfo' và đổi giá trị thành '0'.
Lưu và thoát.
Tiếp theo, chỉnh sửa tệp cấu hình nhóm 'www.conf'.
Thay đổi người dùng mặc định để chạy dịch vụ PHP-FPM thành người dùng 'nginx' và group.
Trên dòng 'listen', hãy thay đổi giá trị thành tệp sock như bên dưới. Chúng ta sẽ chạy PHP-fpm trong tệp sock.
Bây giờ là cấu hình quyền socket và chủ sở hữu. Bỏ chú thích cho những dòng này và thay đổi giá trị như bên dưới.
Cuối cùng, bỏ chú thích cho môi trường PHP-FPM.
Lưu và thoát.
Nếu cấu hình hoàn tất, hãy khởi động dịch vụ PHP-FPM và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động.
Bây giờ hãy kiểm tra bằng lệnh netstat.
Và hãy đảm bảo rằng bạn có được tệp sock PHP-FPM.
PHP và PHP-FPM 7.0 với tất cả các tiện ích mở rộng cần thiết cho nền tảng 'BookStack' đã được cài đặt trên hệ thống CentOS 7.
Chạy lệnh yum bên dưới để cài đặt cơ sở dữ liệu MariaDB.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ và cho phép nó khởi chạy mọi lúc khi khởi động.
Bây giờ chúng ta cần cấu hình mật khẩu 'root' cho cơ sở dữ liệu.
Chạy lệnh bên dưới để thiết lập mật khẩu cơ sở dữ liệu 'root'.
Và bạn sẽ được yêu cầu nhập mật khẩu root MySQL mới - nhập mật khẩu của bạn cho người dùng root và nhấn Enter. Đối với những người dùng khác, chỉ cần nhập 'Y' cho yes và nhấn Enter một lần nữa.
Mật khẩu root MySQL hiện đã được thiết lập.
Tiếp theo, chúng ta cần tạo cơ sở dữ liệu MySQL mới để cài đặt BookStack. Chúng tôi sẽ tạo một cơ sở dữ liệu mới có tên 'bookstackdb' với người dùng 'bookstak' và mật khẩu 'bookstack@'.
Đăng nhập vào shell MySQL bằng người dùng root.
Chạy tất cả các truy vấn MySQL bên dưới trên shell.
MySQL/MariaDB đã được cài đặt trên hệ thống CentOS 7 và cơ sở dữ liệu để cài đặt 'BookStack' đã được tạo.
Đi đến thư mục gốc và tải xuống trình cài đặt bằng curl.
Và bạn sẽ nhận được tệp 'composer.phar' trong thư mục gốc của mình. Di chuyển tệp đến thư mục '/usr/bin' và thử lệnh 'composer' như được hiển thị bên dưới.
Và bạn sẽ nhận được phiên bản composer được cài đặt trên hệ thống của mình.
PHP Composer hiện đã được cài đặt trên hệ thống CentOS 7.
Trước khi cài đặt 'BookStack', hãy cài đặt git trên hệ thống của bạn.
Bây giờ hãy tạo thư mục '/var/www' mới.
Đi đến thư mục đó và sao chép mã nguồn BookStack bằng lệnh git.
Đi đến thư mục 'BookStack/' và cài đặt tất cả các Phụ thuộc PHP cần thiết bằng lệnh composer như được hiển thị bên dưới.
Đảm bảo bạn không gặp lỗi nào khi hoàn tất. Bạn sẽ thấy kết quả như bên dưới.
Bây giờ hãy sao chép tệp cấu hình môi trường '.env.example' và chỉnh sửa bằng vim.
Trên dòng chi tiết cơ sở dữ liệu, hãy thay đổi mọi thứ bằng thông tin cơ sở dữ liệu của bạn như hiển thị bên dưới.
Lưu và thoát.
Và thay đổi quyền sở hữu của thư mục 'BookStack' thành người dùng và nhóm 'nginx'.
Tiếp theo, chúng ta cần tạo khóa ứng dụng duy nhất cho BookStack và cập nhật lược đồ cơ sở dữ liệu bằng lệnh artisan PHP.
Trong thư mục ứng dụng gốc '/var/www/BookStack', hãy chạy các lệnh sau.
Bạn sẽ được yêu cầu xác nhận, nhập 'yes' và nhấn Enter.
Chờ cho đến khi quá trình di chuyển bảng thành công.
Ứng dụng BookStack đã được cài đặt, với ứng dụng khóa duy nhất bí mật được tạo và lược đồ cơ sở dữ liệu cho BookStack được cập nhật.
Đi đến thư mục '/etc/nginx' và tạo tệp máy chủ ảo mới 'bookstack.conf' trong thư mục 'conf.d/' bằng trình soạn thảo vim.
Dán cấu hình bên dưới.
Lưu và thoát.
Bây giờ hãy kiểm tra cấu hình nginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ nginx.
Máy chủ ảo Nginx cho ứng dụng BookStack đã được tạo và kích hoạt.
Và bạn sẽ được chuyển hướng đến trang 'đăng nhập/' như bên dưới.
Nhập người dùng quản trị mặc định '[emailprotected]' với mật khẩu 'password', sau đó nhấn nút 'Đăng nhập'.
Bạn sẽ nhận được Bảng điều khiển người dùng BookStack.
Nhấp vào menu 'Cài đặt' và bạn sẽ nhận được trang cài đặt.
Bây giờ hãy nhấp vào 'Người dùng' rồi nhấp vào người dùng 'Quản trị'. Thay đổi email mặc định bằng địa chỉ email của bạn và mật khẩu bằng mật khẩu bí mật của riêng bạn.
Sau đó nhấp vào nút 'Lưu'.
Quá trình cài đặt BookStack với ngăn xếp LEMP (Linux, Nginx, MariaDB và PHP-FPM) trên CentOS 7 đã hoàn tất thành công.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình BookStack trên CentOS 7 theo ngăn xếp LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Hướng dẫn này sẽ đề cập đến các chủ đề bao gồm cài đặt PHP Composer và tạo cơ sở dữ liệu MySQL bằng dòng lệnh.
Điều kiện tiên quyết
- CentOS 7
- Quyền root
Những việc chúng ta sẽ làm
- Cài đặt EPEL Repository
- Cài đặt Nginx
- Cài đặt và cấu hình PHP-FPM
- Cài đặt và cấu hình MySQL/MariaDB
- Cài đặt PHP Composer
- Cài đặt BookStack
- Cấu hình Nginx Virtual Host BookStack
- Kiểm tra
Bước 1 - Cài đặt EPEL Repository
Thêm kho lưu trữ của bên thứ ba mới vào hệ thống. Chúng ta cần thêm kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) vào hệ thống CentOS 7 của mình để có thể cài đặt Nginx và các gói khác.Cài đặt kho lưu trữ EPEL bằng lệnh yum bên dưới.
Mã:
sudo yum -y install epel-release
Bước 2 - Cài đặt Nginx trên CentOS 7
Trong hướng dẫn này, chúng ta sẽ chạy nền tảng 'BookStack' trong ngăn xếp LEMP và cài đặt máy chủ web Nginx từ kho lưu trữ EPEL.Cài đặt Máy chủ web Nginx sử dụng lệnh yum bên dưới.
Mã:
sudo yum -y install nginx
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
Máy chủ web Nginx hiện đã được cài đặt trên hệ thống CentOS 7.
Bổ sung: Nếu bạn đang chạy firewalld trên hệ thống của mình, hãy thêm dịch vụ HTTP mới vào cấu hình bằng cách chạy các lệnh bên dưới.
Mã:
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
Bước 3 - Cài đặt PHP và PHP-FPM
Trong bước này, chúng ta sẽ cài đặt và cấu hình PHP-FPM 7.0. Chúng tôi sẽ cài đặt PHP và PHP-FPM từ kho lưu trữ 'webtatic' - cài đặt PHP với một số tiện ích mở rộng cần thiết cho nền tảng 'BookStack', bao gồm PDO, Tokenizer, GD, Tidy, MBString và OpenSSL.Trước khi cài đặt PHP và PHP-FPM, hãy thêm kho lưu trữ 'webtatic' mới vào hệ thống CentOS 7 bằng lệnh rpm bên dưới.
Mã:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
sudo yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-common php70w-mbstring php70w-tidy php70w-zip php70w-soap curl
Sử dụng trình soạn thảo vim để chỉnh sửa tệp cấu hình 'php.ini'.
Mã:
vim /etc/php.ini
Mã:
cgi.fix_pathinfo=0
Tiếp theo, chỉnh sửa tệp cấu hình nhóm 'www.conf'.
Mã:
vim /etc/php-fpm.d/www.conf
Mã:
user = nginx
group = nginx
Mã:
listen = /var/run/php-fpm/php-fpm.sock
Mã:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Mã:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Nếu cấu hình hoàn tất, hãy khởi động dịch vụ PHP-FPM và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động.
Mã:
systemctl start php-fpm
systemctl enable php-fpm
Mã:
netstat -pl | grep php
PHP và PHP-FPM 7.0 với tất cả các tiện ích mở rộng cần thiết cho nền tảng 'BookStack' đã được cài đặt trên hệ thống CentOS 7.
Bước 4 - Cài đặt và cấu hình MySQL/MariaDB
BookStack chỉ hỗ trợ cơ sở dữ liệu MySQL và sẽ chỉ chạy dưới phiên bản MySQL > 5.6. Đối với hướng dẫn này, chúng ta sẽ sử dụng MariaDB (phiên bản mới nhất) có thể cài đặt từ kho lưu trữ Ubuntu.Chạy lệnh yum bên dưới để cài đặt cơ sở dữ liệu MariaDB.
Mã:
yum install -y mariadb mariadb-server
Mã:
systemctl start mariadb
systemctl enable mariadb
Chạy lệnh bên dưới để thiết lập mật khẩu cơ sở dữ liệu 'root'.
Mã:
mysql_secure_installation
Và bạn sẽ được yêu cầu nhập mật khẩu root MySQL mới - nhập mật khẩu của bạn cho người dùng root và nhấn Enter. Đối với những người dùng khác, chỉ cần nhập 'Y' cho yes và nhấn Enter một lần nữa.
Mã:
Đặt mật khẩu root? [Y/n] Y
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập root từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Tiếp theo, chúng ta cần tạo cơ sở dữ liệu MySQL mới để cài đặt BookStack. Chúng tôi sẽ tạo một cơ sở dữ liệu mới có tên 'bookstackdb' với người dùng 'bookstak' và mật khẩu 'bookstack@'.
Đăng nhập vào shell MySQL bằng người dùng root.
Mã:
mysql -u root -p
Mã:
create database bookstackdb;
create user bookstack@localhost defined by 'bookstack@';
grant all privileges on bookstackdb.* to bookstack@localhost defined by 'bookstack@';
flush privileges;
exit;
MySQL/MariaDB đã được cài đặt trên hệ thống CentOS 7 và cơ sở dữ liệu để cài đặt 'BookStack' đã được tạo.
Bước 5 - Cài đặt PHP Composer trên CentOS 7
Composer là trình quản lý phụ thuộc cho PHP. Nó cho phép bạn quản lý các phụ thuộc PHP mà bạn cần cho dự án của mình. Trong bước này, chúng ta sẽ cài đặt Composer bằng tập lệnh cài đặt. Composer sẽ được sử dụng để tải xuống tất cả các thư viện PHP cần thiết cho 'BookStack'.Đi đến thư mục gốc và tải xuống trình cài đặt bằng curl.
Mã:
cd ~/
curl -sS https://getcomposer.org/installer | php
Mã:
mv composer.phar /usr/bin/composer
composer -v
PHP Composer hiện đã được cài đặt trên hệ thống CentOS 7.
Bước 6 - Cài đặt BookStack trên CentOS 7
Trong bước này, chúng ta sẽ cài đặt BookStack trong thư mục '/var/www' - thư mục đó sẽ là thư mục ứng dụng gốc.Trước khi cài đặt 'BookStack', hãy cài đặt git trên hệ thống của bạn.
Mã:
yum -y install git
Mã:
mkdir -p /var/www
Mã:
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
Mã:
cd BookStack/
composer install
Bây giờ hãy sao chép tệp cấu hình môi trường '.env.example' và chỉnh sửa bằng vim.
Mã:
cp .env.example .env
vim .env
Mã:
# Chi tiết cơ sở dữ liệu
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
DB_PASSWORD=bookstack@
Và thay đổi quyền sở hữu của thư mục 'BookStack' thành người dùng và nhóm 'nginx'.
Mã:
chown -R nginx:nginx /var/www/BookStack
Trong thư mục ứng dụng gốc '/var/www/BookStack', hãy chạy các lệnh sau.
Mã:
php artisan key:generate
php artisan migrate
Chờ cho đến khi quá trình di chuyển bảng thành công.
Ứng dụng BookStack đã được cài đặt, với ứng dụng khóa duy nhất bí mật được tạo và lược đồ cơ sở dữ liệu cho BookStack được cập nhật.
Bước 7 - Cấu hình Nginx Virtual Host cho BookStack
Trong bước này, chúng ta sẽ cấu hình nginx virtual host cho BookStack. Chúng tôi sẽ sử dụng 'book.hakase-labs.co' làm tên miền cho URL BookStack của chúng tôi.Đi đến thư mục '/etc/nginx' và tạo tệp máy chủ ảo mới 'bookstack.conf' trong thư mục 'conf.d/' bằng trình soạn thảo vim.
Mã:
cd /etc/nginx
vim conf.d/bookstack.conf
Mã:
server {
listen 80;
server_name book.hakase-labs.co;
root /var/www/BookStack/public;
access_log /var/log/nginx/bookstack_access.log;
error_log /var/log/nginx/bookstack_error.log;
client_max_body_size 1G;
fastcgi_buffers 64 4K;
index index.php;
vị trí / {
try_files $uri $uri/ /index.php?$query_string;
}
vị trí ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
từ chối tất cả;
}
vị trí ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}
Bây giờ hãy kiểm tra cấu hình nginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ nginx.
Mã:
nginx -t
systemctl restart nginx
Bước 8 - Kiểm tra
Mở trình duyệt web của bạn và nhập URL BookStack vào thanh địa chỉ, của tôi là:Và bạn sẽ được chuyển hướng đến trang 'đăng nhập/' như bên dưới.
Nhập người dùng quản trị mặc định '[emailprotected]' với mật khẩu 'password', sau đó nhấn nút 'Đăng nhập'.
Bạn sẽ nhận được Bảng điều khiển người dùng BookStack.
Nhấp vào menu 'Cài đặt' và bạn sẽ nhận được trang cài đặt.
Bây giờ hãy nhấp vào 'Người dùng' rồi nhấp vào người dùng 'Quản trị'. Thay đổi email mặc định bằng địa chỉ email của bạn và mật khẩu bằng mật khẩu bí mật của riêng bạn.
Sau đó nhấp vào nút 'Lưu'.
Quá trình cài đặt BookStack với ngăn xếp LEMP (Linux, Nginx, MariaDB và PHP-FPM) trên CentOS 7 đã hoàn tất thành công.