Skip to content
Mitsuru Mutaguchi edited this page Apr 30, 2024 · 29 revisions

Linux等へのインストール、root権限ある場合

目次

Requirements(必要なツール等)

(インストールコマンド例)
$ yum install -y php73 php73-php php73-php-mysql php73-php-php-mysqlnd php73-php-bcmath php73-php-ctype php73-php-json php73-php-mbstring php73-php-openssl php73-php-PDO php73-php-tokenizer php73-php-xml gcc
  • Apache ※後述の設定例はApache2.4を前提
    • mod_rewrite
  • git
  • composer
  • MySQL 5.7 or later(MySQL5.7以上) or Maria DB(MySQL5.7以上相当)

Option

Installation(インストール作業)

DB/user creation(DB/ユーザ作成)

// Create DB and connected user in advance // (あらかじめDBと接続ユーザを作っておく)

git clone

# ドキュメントルートへ移動
cd /var/www/html

# GitHubからプログラムをダウンロード
git clone https://github.com/opensource-workshop/connect-cms.git

# プログラム群がダウンロードされていることを確認
ls /var/www/html

# connect-cmsディレクトリに移動し、安定版(最新のバージョン)に切り替える
cd /var/www/html/connect-cms
git checkout $(git describe --tags --abbrev=0)

# ※別バージョンの指定を行う場合
後述ページ「(参考)Update」の「2.アップデートの実行」を参考にコマンドを実行してください。

Download the library using composer(composerで利用ライブラリのダウンロード)

cd /var/www/html/connect-cms/

php -d allow_url_fopen=1 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'ハッシュ値はcomposerのバージョン変わるたびに変わるので、https://getcomposer.org/download/を見てね') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php -d allow_url_fopen=1 composer-setup.php
php -r "unlink('composer-setup.php');"

php -d allow_url_fopen=1 composer.phar install --no-dev
// (開発ライブラリをダウンロードしたい場合は ※1 参照)

※1 開発ライブラリ(phpunit等)を入れるバージョン

(Linuxの場合)
COMPOSER=composer-dev.json php -d allow_url_fopen=1 composer.phar install

(他のコマンド例1)
COMPOSER=composer-dev.json php -d allow_url_fopen=1 /usr/bin/composer install

(Windows(コマンドプロンプト)の場合)
set COMPOSER=composer-dev.json
php -d allow_url_fopen=1 composer.phar install

(他のコマンド例2)
set COMPOSER=composer-dev.json
composer install

apache settings(apache設定)

// laravel default route changed to public // (laravelのデフォルトルートはpublic配下に変更)

vi /etc/httpd/conf/httpd.conf

#DocumentRoot /var/www/html
DocumentRoot /var/www/html/connect-cms/public

#<Directory "/var/www/html">
<Directory "/var/www/html/connect-cms/public">
    AllowOverride All ←.htaccessの使用を許可する設定です。特段の事情がない限りはAllを設定してください。
    Require all granted
</Directory>

apache restart(apache再起動)

# apachectl configtest
Syntax OK
# apachectl graceful

Laravel

Create .env file(.envファイル作成)

cd /var/www/html/connect-cms/
cp .env.example .env
vi .env

「#」はコメントとして扱われます。

APP_NAME="Connect-CMS"
APP_ENV=production     ← 開発環境は ※2参照
APP_KEY=               ←Enter an appropriate string(適当な文字列を入力、※ダブルクオートで囲まない)
APP_DEBUG=false
APP_URL=http://localhost    ← (例:DNS設定済みの場合)http://xxx.com/(例:ローカル端末の場合)そのまま

LOG_CHANNEL=daily

DB_CONNECTION=mysql
DB_HOST=127.0.0.1      ← Change to localhost(localhostに変更)
DB_PORT=3306
DB_DATABASE=homestead     ← Change to created DB, user, password(作成したDB、ユーザ、パスワードに変更)
DB_USERNAME=homestead     ← Same as above(同上)
DB_PASSWORD=secret        ← Same as above(同上)

# (メール送信を使う場合は以下の値も適切に変更する)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null                         # メールユーザー名
MAIL_PASSWORD=null                         # メールユーザーのパスワード
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=abcde@example.com        # 送信元として使うメールアドレス
MAIL_FROM_NAME="${APP_NAME}"               # 送信者として表示する名前

.envのMAIL_XXXX 設定例(さくらのレンタルサーバ)
※ .envのMAIL_XXXX 設定はインストール後、管理画面>システム管理>メール設定 から変更することもできます。

※2 開発環境の .envファイル

下記の該当箇所を修正する。
他は Create .env file(.envファイル作成) と同様です。

APP_ENV=local

Application key initialization(アプリケーションキーの初期化)

# php artisan key:generate

**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes        ← yes を入力

DB migration(DBマイグレーション)

# php artisan migrate

**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes        ← yes を入力

Initial data import with seeder(seederで初期データインポート)

# php artisan db:seed

**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes        ← yes を入力

seederで"class not found"エラーが出た場合

composer dump-autoloadを実行後、seederを再実行します。

(Linuxの場合)
# php composer.phar dump-autoload
(他のコマンド例)
# php /usr/bin/composer dump-autoload
# composer dump-autoload

# php artisan db:seed

Directory permissions(ディレクトリパーミッション)

storageディレクトリとbootstrap/cacheディレクトリ、vendor/tecnickcom/tcpdf/fontsディレクトリ、public/themes/UsersディレクトリをWebサーバから書き込み可能にします。

cd /var/www/html/connect-cms/

chown -R apache:apache storage
chown -R apache:apache bootstrap/cache
chown -R apache:apache vendor/tecnickcom/tcpdf/fonts
chown -R apache:apache public/themes/Users

chmod -R u+wr storage
chmod -R u+wr bootstrap/cache
chmod -R u+wr vendor/tecnickcom/tcpdf/fonts
chmod -R u+wr public/themes/Users

Check site display(サイト表示確認)

(例:DNS設定済みの場合)http://xxx.com

(例:ローカル端末の場合)http://localhost

Initial login ID(初期ログインID)

https://github.com/opensource-workshop/connect-cms/blob/master/database/seeders/DefaultUsersTableSeeder.php


Directory install(ディレクトリにインストールする場合)

Apache conf

    Alias /dir_laravel "{install-laravel Path}/public"

    <Directory "{install-laravel Path}/public">
        AllowOverride All
        Require all granted
    </Directory>

public/.htaccess

    RewriteEngine On
    # add dir_install
    RewriteBase /dir_laravel

.env

APP_URL=http://localhost/dir_laravel


# 複数のサイトをディレクトリインストールする場合 APP_NAME をサイト毎に変更します。
# 変更する事で SESSION_COOKIE の名前が重複しなくなり、ディレクトリインストールしたサイトの片方ログインしたら、もう片方が強制ログアウトされる問題が解消します。
APP_NAME="Connect-CMS"

関連ページ

Composer

日本語ファイルの日本語が消える/文字化けした場合

キャビネットでzipをアップロード&解凍した時に、日本語フォルダ・ファイルが含まれた場合、日本語ファイルやフォルダの日本語が消えたり文字化けする場合があります。
サーバ環境の設定によって引き起こされるため、以下参考設定を記載します。

### ApacheをRHEL/CentOSのパッケージで導入した場合
vi /etc/sysconfig/httpd 

# 末尾に追記
HTTPD_LANG=ja_JP.utf8

# apache再起動
systemctl restart httpd

参考URL

Clone this wiki locally