Gravは、データベースを必要としない最新のWebアプリケーションです。これはファイルベースのウェブプラットフォームであり、シンプルで高速で、インストールは不要です。 Gravは、テンプレート用のTwig Templating、コンテンツ作成用のMarkdown、単純な構成用のYAML、Parsedown、パフォーマンスレイヤー用のDoctrineキャッシュなどの最新テクノロジーを使用しています。ツールはPHPで記述されており、 Grav自体、およびテーマとプラグインのインストールとアップグレードを含むGravシステム。
このチュートリアルでは、Ubuntu16.04にGravCMSをインストールして構成する方法を段階的に説明します。 GravはPHPWebアプリケーションベースであるため、システムにPHPをインストールする必要があります。パフォーマンスを向上させるには、NginxWebブラウザーでPHP-FPMを使用します。
- Ubuntu 16.04
- root権限
私たちが行うこと:
- Nginxをインストールする
- PHP-FPMのインストールと構成
- PHPComposerをインストールする
- GravCMSをダウンロードしてインストールする
- Grav用にNginx仮想ホストを構成する
- テスト
この最初のステップでは、UbuntuリポジトリからNginxWebサーバーをインストールします。その前に、次のaptコマンドを使用してすべてのパッケージとリポジトリを更新する必要があります。
sudo apt update
sudo apt upgrade
次に、NginxWebサーバーをインストールします。
sudo apt install nginx -y
インストールが完了したら、サービスを開始し、システムの起動時に起動できるようにします。これは、次のsystemctlコマンドを使用して実行できます。
systemctl start nginx
systemctl enable nginx
NginxWebサーバーはUbuntu16.04にインストールされており、デフォルトのHTTPポート80で実行されています。次の方法でnetstatコマンドを使用して確認してください。
netstat -plntu
そして、以下のような結果が得られます。
次に、Gravインストール用にPHP-FPMをインストールして構成します。次のコマンドを使用して、PHPおよびPHP-FPMパッケージ(必要なすべての拡張機能を含む)をインストールします。
sudo apt install -y php7.0 php7.0-fpm php7.0-cli php7.0-gd php7.0-mbstring php-pear php7.0-curl php7.0-dev php7.0-opcache php7.0-xml php7.0-zip
次に、PHP-FPMを構成する必要があります。
-追加の拡張機能をインストールする
これはオプションですが、Gravのパフォーマンスに最適です。 PECLコマンドを使用して、PHP拡張機能リポジトリからいくつかの追加拡張機能を手動でインストールします。
以下の「pecl」コマンドを使用して、「apcu」拡張機能をインストールします(キャッシュパフォーマンスを向上させるため)。
sudo pecl install apcu
次に、「/ etc / php / 7.0 /mods-available/」ディレクトリに新しい拡張設定「apcu.ini」を作成します。
sudo vim /etc/php/7.0/mods-available/apcu.ini
次の構成をそこに貼り付けます。
extension=apcu.so
保存して終了します。
次に、以下のコマンドを使用して拡張機能をアクティブにします。
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/fpm/conf.d/20-apcu.ini
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/cli/conf.d/20-apcu.ini
次に、Gravのパフォーマンスをさらに向上させるために、「YAML」拡張機能をインストールします。ただし、拡張機能をインストールする前に、次のaptコマンドを使用していくつかのパッケージをインストールする必要があります。
sudo apt install libyaml-dev unzip -y
次に、peclコマンドを使用してyaml拡張機能をインストールします。
sudo pecl install yaml-2.0.0
インストールが完了したら、新しい「yaml.ini」構成ファイルを作成します。
sudo vim /etc/php/7.0/mods-available/yaml.ini
次の構成をそこに貼り付けます。
extension=yaml.so
保存して終了します。
次に、YAML拡張機能をアクティブにします。
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/fpm/conf.d/20-yaml.ini
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/cli/conf.d/20-yaml.ini
Grav用の新しいPHP拡張機能が追加されました。
-Grav用にPHP-FPMプールを構成する
新しいPHP-FPMプール構成を作成する前に、「grav」という名前の新しいユーザーをシステムに追加する必要があります。これは、useraddコマンドを使用して実行できます。
useradd -m -s /bin/bash grav
passwd grav
次に、「/ etc / php / 7.0 / fpm / pool.d」ディレクトリに移動し、デフォルトの「www.conf」構成をバックアップします。
cd /etc/php/7.0/fpm/pool.d/
mv www.conf www.conf.bak
次に、Grav用の新しいPHP-FPMプール構成('grav.conf')を作成します。
vim grav.conf
次の構成をそこに貼り付けます。
[grav]
user = grav
group = grav
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
保存して終了します。
PHP-FPMサービスを再起動し、システムの起動時に起動できるようにします。
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPMは「php7.0-fpm.sock」ファイルで実行されています。次の方法でnetstatコマンドを使用して確認してください。
netstat -pl | grep php
そして、以下のような結果が得られるはずです。
注:
apcuおよびyaml拡張機能を確認する場合は、次のphpコマンドを使用できます。
sudo php -m | grep apcu
sudo php -m | grep yaml
PHP-FPMのインストールと構成が完了しました。
コンポーザーは、PHP用のアプリケーションレベルのパッケージマネージャーです。 PHPの依存関係を管理するために使用されます。
次のコマンドを使用してPHPComposerをインストールします。
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
インストールが完了したら、次の方法でcomposerコマンドを実行してみてください。
composer --version
PHPComposerがインストールされました。
'grav'ユーザーとしてツールをインストールして実行します。ユーザーは前の手順のいずれかで作成されました。
まず、「grav」ユーザーとしてログインします。
su - grav
次に、新しい「www」ディレクトリを作成します。
mkdir -p ~/www
cd ~/www
wgetを使用して最新のgravバージョンをダウンロードし、ファイル名に「.zip」拡張子を追加します。
wget https://getgrav.org/download/core/grav/latest
mv latest latest.zip
'latest.zip'ファイルを抽出し、'grav'ディレクトリの名前を'html'に変更します。
unzip latest.zip
mv grav/ html/
ここでルート特権に戻り、グループ所有者を「www-data」に変更します。
exit
cd /home/grav/www
sudo chown -R grav:www-data html/
Gravは、「grav」ユーザーによって「/ home / grav / www/html」ディレクトリにダウンロードおよびインストールされるようになりました。
このステップでは、Grav用にNginx仮想ホストを構成します。 「sites-available」ディレクトリ内に「grav」という名前の新しい仮想ホストファイルを作成してから、Grav仮想ホストをアクティブ化します。
'/ etc / nginx'構成ディレクトリに移動し、vimエディターを使用して新しいファイル'grav'を作成します。
cd /etc/nginx
vim sites-available/grav
次のGravNginx仮想ホスト構成をそこに貼り付けます。
server {
## Define Index
#listen 80;
index index.html index.php;
## Web root and Domain Name
root /home/grav/www/html;
server_name grav.hakase-labs.co;
## Begin - Index
# for subfolders, simply adjust the rewrite:
# to use `/subfolder/index.php`
location / {
try_files $uri $uri/ /index.php?$query_string;
}
## End - Index
## Begin - PHP-FPM Configuration
location ~ \.php$ {
# Choose either a socket or TCP/IP address
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
## End - PHP
## Begin - Security
# deny all direct access for these folders
location ~* /(.git|cache|bin|logs|backups)/.*$ { return 403; }
# deny running scripts inside core system folders
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny running scripts inside user folder
location ~* /user/.*\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny access to specific files in the root folder
location ~ /(LICENSE|composer.lock|composer.json|nginx.conf|web.config|htaccess.txt|\.htaccess) { return 403; }
## End - Security
}
保存して終了します。
次に、仮想ホストをアクティブにして、nginx構成をテストします。
ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/
nginx -t
注: 構成をテストした後、Nginxエラーが発生しないことを確認してください。
次に、NginxおよびPHP-FPMサービスを再起動します。
systemctl restart nginx
systemctl restart php7.0-fpm
NginxGrav仮想ホストの構成が完了しました。
Webブラウザーを開き、Gravサイトのドメイン名を入力します。私の名前はhttp://grav.hakase-labs.co/
そして、以下に示すように、デフォルトのGravホームページが表示されます。
Ubuntu16.04でPHP-FPMとNginxWebサーバーを使用したGravFlatCMSのインストールが正常に完了しました。