LoginSignup
1
1

More than 5 years have passed since last update.

Nginxでconcrete5を

Last updated at Posted at 2015-12-24

ゴール

  • concrete5が無事動く
  • 次回のインストール時に自分がコケない

環境

Version
Host Azure
OS 14.04.1
Nginx 1.4.6
PHP 5.5.9
MariaDB 5.5

mariaDBを使うのは単なる趣味です。MySQLでも問題ありません。

必要なシステム要件は以下を参照ください。
System Requirements
apacheを使うことが意外と多いみたいです…

インストール

コマンド
sudo apt-get nginx php5 php5-fpm mariadb-server php5-mysql unzip php5-gd php5-curl

php5-curlは、コミュニテイーに接続する場合に必要

SQLにテーブル作成

  • phpmyadminを使用する方法は割愛します。(結局、この3行のためだけに入れるのは…)

今回はconcrete5というテーブルとconcrete5 というユーザーで作成

コマンド
create database concrete5 character set utf8;
create user 'concrete5'@'localhost' identified by 'パスワードは決めてね';
grant all privileges on concrete5 .* to 'concrete5'@'localhost';

ダウンロード

ダウンロードは公式サイトからダウンロードしてください。

wgetでダウンロードする場合、リンクのアドレスコピーを使ってそのURLからダウンロードするとindex.htmlとなり保存されます。zipへリネームしてください。

ローカルPCにダウンロードして解凍してアップロードは個人的にお薦めできません。
理由としては大量のファイルがあり、転送に失敗する可能性が高いです。
せめてサーバ側で解凍しましょう。

ダウンロード後concrete5フォルダ内部の以下の3つのパーミッション変更

コマンド
chmod 777 packages
chmod 777 application/config
chmod 777 application/files

nginxの設定

Point:
ハイスペックならそこまでシュールではないと思いますが、upstream timed outがerror.logにでるようならば、“fastcgi_read_timeout”を長めに設定します。(データベース作成に時間がかかる)
インストール完了後にコメントアウトしてあげれば問題ないと思います。
もしかすると初回時に“空のウェブサイト”を選択すれば以下の設定は不要かもしれません。

/etc/nginx/sites-available/concrete5(インストール時)
~略~
fastcgi_read_timeout 1000;
fastcgi_send_timeout 1000;
~略~

YOUR_DOMAINは稼働させるバーチャルホスト名に書き換えてください。

/etc/nginx/sites-available/concrete5(運用時)
server {
        listen 80 default_server;

        root /var/www/concrete5/;
        index index.php index.html index.htm;

        server_name YOUR_DOMAIN;

        location / {

                try_files $uri $uri/ /index.php?$args;

                if (-f $request_filename) {
                        expires 14d;
                        break;
                }

                if ($uri ~ "^(.+?\.php?)(/.*)$") {
                        set $path_info $2;
                }


                if (!-e $request_filename) {
                        rewrite / /index.php last;
                }
        }


        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                fastcgi_intercept_errors on;
                fastcgi_ignore_client_abort off;
                fastcgi_connect_timeout 60;
                fastcgi_send_timeout 180;
                fastcgi_read_timeout 180;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 4 256k;
                fastcgi_busy_buffers_size 256k;
                fastcgi_temp_file_write_size 256k;
                #コミュニティーに接続する場合必要
                fastcgi_param PHP_VALUE "allow_url_fopen=On";

        }

}

最後に

  • ツッコミがあればご指摘ください。
  • Wordpress関係のFTPアップデートで失敗する場合も“fastcgi_read_timeout”あたりが有効です。
  • Nginx + php5-fpmあたりは設定をしっかりしないと意図した動作にならない。(このへんapacheは吸収してくれているのかな)
  • 動いてしまえばあとはサクサク軽いものです。

参考

context-concrete5

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1