BookStackは、プロジェクトのドキュメント/Wikiコンテンツを作成するためのオープンソースプラットフォームです。これはPHPプログラミング言語で記述されており、LaravelWebフレームワークを使用しています。基本的に、プロジェクトのドキュメント/ wikiは「ブック」としてBookStackに保存され、その後に「チャプター」と「ページ」が続きます。章とページに基づいて、ドキュメントをブックとして作成して読むのが簡単になります。
このチュートリアルでは、LEMP(Linux、Nginx、PHP-FPM、MySQL / MariaDB)スタックの下のCentOS7にBookStackをインストールして構成する方法を段階的に説明します。このチュートリアルでは、PHPComposerのインストールやコマンドラインを使用したMySQLデータベースの作成などのトピックについて説明します。
- CentOS 7
- root権限
- EPELリポジトリをインストールする
- Nginxをインストールする
- PHP-FPMのインストールと構成
- MySQL/MariaDBのインストールと構成
- PHPComposerをインストールする
- BookStackをインストールする
- Nginx仮想ホストBookStackを構成する
- テスト
新しいサードパーティリポジトリをシステムに追加します。 Nginxやその他のパッケージをインストールできるように、EPEL(Enterprise Linux用の追加パッケージ)リポジトリをCentOS7システムに追加する必要があります。
以下のyumコマンドを使用してEPELリポジトリをインストールします。
sudo yum -y install epel-release
このチュートリアルでは、LEMPスタックの下で「BookStack」プラットフォームを実行し、EPELリポジトリからNginxWebサーバーをインストールします。
以下のyumコマンドを使用してNginxWebサーバーをインストールします。
sudo yum -y install nginx
インストールが完了したら、サービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start nginx
systemctl enable nginx
次に、netstatコマンドを使用して確認します。
netstat -plntu
リストにポート80があり、Nginxサービスによって使用されていることを確認してください。
これで、NginxWebサーバーがCentOS7システムにインストールされました。
追加: システムでfirewalldを実行している場合は、以下のコマンドを実行して、構成に新しいHTTPサービスを追加します。
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
このステップでは、PHP-FPM7.0をインストールして構成します。 PHPとPHP-FPMを「webtatic」リポジトリからインストールします。「BookStack」プラットフォームに必要な拡張機能(PDO、Tokenizer、GD、Tidy、MBString、OpenSSLなど)を使用してPHPをインストールします。
PHPおよびPHP-FPMをインストールする前に、以下のrpmコマンドを使用して、新しい「webtatic」リポジトリをCentOS7システムに追加してください。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
次に、次の方法でyumコマンドを使用して、必要なすべての拡張機能を備えたPHPおよびPHP-FPMをインストールします。
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
インストールが完了したら、「php.ini」構成ファイルを編集し、php-fpmプール構成「www.conf」を編集する必要があります。
vimエディタを使用して「php.ini」構成ファイルを編集します。
vim /etc/php.ini
'cgi.fix_pathinfo'行のコメントを解除し、値を'0'に変更します。
cgi.fix_pathinfo=0
保存して終了します。
次に、プール構成ファイル「www.conf」を編集します。
vim /etc/php-fpm.d/www.conf
PHP-FPMサービスを実行するためのデフォルトのユーザーを「nginx」ユーザーとグループに変更します。
user = nginx
group = nginx
'listen'行で、値を次のようにsockファイルに変更します。 sockファイルでPHP-fpmを実行します。
listen = /var/run/php-fpm/php-fpm.sock
次に、ソケットのアクセス許可と所有者の構成について説明します。これらの行のコメントを解除し、以下のように値を変更します。
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
最後に、PHP-FPM環境のコメントを解除します。
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
保存して終了します。
構成が完了したら、PHP-FPMサービスを開始し、起動時に毎回起動できるようにします。
systemctl start php-fpm
systemctl enable php-fpm
次に、netstatコマンドを使用して確認します。
netstat -pl | grep php
そして、PHP-FPMソックスファイルを必ず入手してください。
「BookStack」プラットフォームに必要なすべての拡張機能を備えたPHPおよびPHP-FPM7.0がCentOS7システムにインストールされました。
BookStackはMySQLデータベースのみをサポートし、MySQLバージョン>=5.6でのみ実行されます。このチュートリアルでは、UbuntuリポジトリからインストールできるMariaDB(最新バージョン)を使用します。
以下のyumコマンドを実行して、MariaDBデータベースをインストールします。
yum install -y mariadb mariadb-server
インストールが完了したら、サービスを開始し、起動時に毎回起動できるようにします。
systemctl start mariadb
systemctl enable mariadb
次に、データベースの「root」パスワードを構成する必要があります。
以下のコマンドを実行して、「root」データベースパスワードを設定します。
mysql_secure_installation
そして、新しいMySQLルートパスワードの入力を求められます。ルートユーザーのパスワードを入力して、Enterキーを押します。その他の場合は、「Y」と入力して「はい」と入力し、Enterキーをもう一度押します。
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
これで、MySQLのルートパスワードが設定されました。
次に、BookStackをインストールするための新しいMySQLデータベースを作成する必要があります。ユーザー「bookstak」とパスワード「[emailprotected]」を使用して「bookstackdb」という名前の新しいデータベースを作成します。
rootユーザーでMySQLシェルにログインします。
mysql -u root -p
以下のすべてのMySQLクエリをシェルで実行します。
create database bookstackdb;
create user [email protected] identified by '[email protected]';
grant all privileges on bookstackdb.* to [email protected] identified by '[email protected]';
flush privileges;
exit;
MySQL /MariaDBがCentOS7システムにインストールされ、「BookStack」インストール用のデータベースが作成されました。
コンポーザーはPHPの依存関係マネージャーです。これにより、プロジェクトに必要なPHPの依存関係を管理できます。このステップでは、インストーラースクリプトを使用してComposerをインストールします。 Composerは、「BookStack」に必要なすべてのPHPライブラリをダウンロードするために使用されます。
ホームディレクトリに移動し、curlを使用してインストーラーをダウンロードします。
cd ~/
curl -sS https://getcomposer.org/installer | php
そして、ホームディレクトリに「composer.phar」ファイルを取得します。ファイルを「/usr/ bin」ディレクトリに移動し、以下に示すように「composer」コマンドを試してください。
mv composer.phar /usr/bin/composer
composer -v
そして、システムにインストールされているコンポーザーバージョンを取得します。
これで、PHPComposerがCentOS7システムにインストールされました。
このステップでは、BookStackを「/ var/www」ディレクトリの下にインストールします。このディレクトリがルートアプリケーションディレクトリになります。
「BookStack」をインストールする前に、システムにgitをインストールしてください。
yum -y install git
次に、新しい'/ var/www'ディレクトリを作成します。
mkdir -p /var/www
そのディレクトリに移動し、gitコマンドを使用してBookStackソースコードのクローンを作成します。
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
'BookStack /'ディレクトリに移動し、以下に示すように、composerコマンドを使用して必要なすべてのPHP依存関係をインストールします。
cd BookStack/
composer install
エラーが発生しないことと、エラーが完了したことを確認してください。結果は次のように表示されます。
次に、環境構成ファイル「.env.example」をコピーし、vimを使用して編集します。
cp .env.example .env
vim .env
データベースの詳細行で、以下に示すようにデータベース情報ですべてを変更します。
# Database details
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
[email protected]
保存して終了します。
そして、「BookStack」ディレクトリの所有権を「nginx」ユーザーとグループに変更します。
chown -R nginx:nginx /var/www/BookStack
次に、BookStackの一意のアプリケーションキーを生成し、PHPの職人コマンドを使用してデータベーススキーマを更新する必要があります。
ルートアプリケーションディレクトリ'/var / www / BookStack'で、次のコマンドを実行します。
php artisan key:generate
php artisan migrate
確認を求められたら、「はい」と入力してEnterキーを押します。
テーブルの移行が成功するまで待ちます。
BookStackアプリケーションがインストールされ、秘密の一意キーアプリケーションが生成され、BookStackのデータベーススキームが更新されました。
このステップでは、BookStack用にnginx仮想ホストを構成します。 BookStackURLのドメイン名として「book.hakase-labs.co」を使用します。
'/ etc / nginx'ディレクトリに移動し、vimエディターを使用して'conf.d/'ディレクトリの下に新しい仮想ホストファイル'bookstack.conf'を作成します。
cd /etc/nginx
vim conf.d/bookstack.conf
以下に構成を貼り付けます。
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;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
location ~ \.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;
}
}
保存して終了します。
次に、nginx構成をテストし、エラーがないことを確認してから、nginxサービスを再起動します。
nginx -t
systemctl restart nginx
BookStackアプリケーション用のNginx仮想ホストが作成され、アクティブ化されました。
ウェブブラウザを開き、アドレスバーにBookStackのURLを入力します。私のものは次のとおりです。 http://book.hakase-labs.co/
そして、以下のように「ログイン/」ページにリダイレクトされます。
デフォルトの管理者ユーザー「[emailprotected]」とパスワード「password」を入力し、「ログイン」ボタンを押します。
BookStackユーザーダッシュボードを取得する必要があります。
[設定]メニューをクリックすると、設定ページが表示されます。
次に、[ユーザー]をクリックしてから、[管理者]ユーザーをクリックします。デフォルトのメールアドレスを自分のメールアドレスに変更し、パスワードを自分の秘密のパスワードに変更します。
次に、[保存]ボタンをクリックします。
CentOS 7でのLEMP(Linux、Nginx、MariaDB、およびPHP-FPM)スタックを使用したBookStackのインストールが正常に完了しました。