ゴール
- 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は吸収してくれているのかな)
- 動いてしまえばあとはサクサク軽いものです。