LoginSignup
0
2

More than 5 years have passed since last update.

Windows10+Virtual Box+CentOS7で環境構築(Laravel+MySQL)

Posted at

※自分用メモ

■Windows10+Virtual Box+CentOS7環境構築
下記はすべてrootで実行しています

・VirtualBoxにCentOSのインストール
    ※参考URL:
        GUI:http://www.enrise-corp.co.jp/2185
        CUI:http://qiita.com/100/items/80a899fbaeb1e82b3f67

    ・アカウント
        root
            パス:root

        develop
            パス:develop

・CentOSインストール後の設定

    ・selinux無効化
        vi /etc/selinux/config
        SELINUX=disabled

    ・ネットワーク設定
        su
        vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
            下記に変更しただけでOKだったが要調査
            ONBOOT=yes

        systemctl stop NetworkManager
        systemctl disable NetworkManager.service
        /etc/init.d/network restart

    ・パッケージ最新化
        su
        yum update
        yum install kernel-devel gcc
        reboot

    ・sudoユーザーを追加
        su
        visudo
            %wheel  ALL=(ALL)   ALLの行のコメントを外して保存
        usermod -G wheel develop
        exit
            developユーザーへ切り替え
        whoami
            ログインしているアカウント確認
        sudo pwd
            sudoが使用できるか確認

・その他、インストール
    yum install -y git vim

・リポジトリのインストール
    su
    yum install epel-release.noarch
    yum install epel-release
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    vim /etc/yum.repos.d/epel.repo
    [epel]の中身をenable=1をenable=0に変更

・phpのインストール(7.1.Xの最新)
    ※参考URL:https://centosinstall.com/centos/centos7/php7

    su
    yum install --enablerepo=remi,remi-php71 php php-devel php-cli php-common php-fpm php-mbstring php-pdo php-gd php-mysqlnd php-intl php-fpm php-xml php-pear php-igbinary php-pecl-apcu php-soap php-xmlrpc
    php -v

    ・php.iniの設定
        default_charset = "UTF-8"
        display_errors = On
        date.timezone = "Asia/Tokyo"
        mbstring.language = Japanese
        mbstring.internal_encoding = UTF-8
        mbstring.http_input = UTF-8
        mbstring.http_output = pass
        mbstring.encoding_translation = Off
        mbstring.detect_order = UTF-8
        mbstring.substitute_character = none

・Apacheインストール
    su
    yum install httpd
    下記いずれかで起動
    service httpd start
    apachectl start

・Apacheのhttpd.confの設定
    su
    /etc/httpd/conf/httpd.conf内の一番下に下記を追加
    #php
    <IfModule prefork.c>
        LoadModule php7_module modules/libphp7.so
    </IfModule>

    Laravelでは.htaccessを利用するための設定が必要
    <Directory "/var/www/html">
        Options +FollowSymLinks
        RewriteEngine On

        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]

        Require all granted
        AllowOverride All
    </Directory>

・apacheのDocumentRootを変更
    ※デフォルトの"/var/www/html"から"/var/www/[project-name]/public"に変更
    DocumentRoot "/var/www/[project-name]/public"
    <Directory "/var/www/[project-name]/public">
    ・・・・・・省略・・・・・・・・
    </Directory>

    設定後、再起動

・Apacheの自動起動設定
    su
    chkconfig httpd on
    systemctl is-enabled httpd

・composer経由でインストールするためcomposerをインストール
    su
    curl -sS https://getcomposer.org/installer | sudo php
    パスが通っている場所にリネーム
    mv composer.phar /usr/local/bin/composer

・laravelのインストール
    su
    ※-prefer-dist: リリース版、安定版をダウンロードします。
    composer create-project laravel/laravel --prefer-dist project1

    ※最初に権限をフルアクセス
    chown -R apache:apache [project-name]
    chmod -R 777 [project-name]

・デバッガーのインストール
    ※参考URL:http://qiita.com/LowSE01/items/d0333fc30e433e68acfd
    su
    composer require phpunit/phpunit --prefer-dist
    composer require barryvdh/laravel-debugbar

・メールのドライバーのインストール
    composer require guzzlehttp/guzzle

・Redisのインストール
    ※参考URL
        http://qiita.com/esu_eichi/items/e3abe72f55b53865acf5
        https://e-algorithm.xyz/redis/#jump90
        http://qiita.com/Syo_pr/items/4994f71e8c9152ceee0d
        http://qiita.com/laviee/items/906da834db20c946f9be
        https://namaikinamaiki.wordpress.com/2015/11/18/laravelmysqlredis%E3%81%AB%E3%81%A6%E3%83%A6%E3%83%BC%E3%82%B6%E8%AA%8D%E8%A8%BC%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E8%A6%8B%E3%82%8B/
        https://readouble.com/laravel/5.4/ja/redis.html

    下記でインストール
    su
    yum --enablerepo=epel -y install redis

    sudo systemctl start redis.service
    sudo systemctl enable redis.service

    通信確認
    redis-cli ping
    PONG ←成功

    firewallの許可追加
    firewall-cmd --permanent --add-port=6379/tcp

    firewall確認
    firewall-cmd --reload

    firewallの設定確認
    firewall-cmd --list-all

    LaravelのセッションストアをRedisに設定
    vi .env
    SESSION_DRIVER=redis

    vi config/session.php
    'driver' => env('SESSION_DRIVER', 'redis'),

    composer require predis/predis --prefer-dist

・phpredisのインストール
    ※下記だけだとインストールできないかも
    ※igbinary.so、redis.soとigbinary.soの読み込み設定は/etc/php.d/配下に
    ファイルを作成しigbinary.so、redis.soの順番で読み込めるようなファイル名にする(先頭のファイル名でソート)
    su
    yum install php71-php-pecl-redis.x86_64
    yum install php71-php-pecl-igbinary-devel.x86_64
    yum install --enablerepo=remi-php71 php-igbinary

・MySQL5.7のインストール
    ※参考URL:http://qiita.com/yoshikyoto/items/957642f595adb873bb2b

    CentOS 7 にはmariaDBがデフォルトが入っていることがあり、
    MySQLと競合を起こすことがあるので削除したほうがいいとのこと。
    su
    yum remove mariadb-libs
    rm -rf /var/lib/mysql/

    要求: libsasl2.so.2()(64bit)と表示されるので下記をインストール
    yum localinstall ftp://195.220.108.108/linux/mageia/distrib/3/x86_64/media/core/updates/lib64sasl2-2.1.25-12.1.mga3.x86_64.rpm

    yum localinstall http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

    ※インストールできないので下記を実行
    ※参考URL:https://adan.jp.net/blog/program/1235
    yum-config-manager --disable mysql56-community
    yum-config-manager --enable mysql57-community-dmr

    yum -y install mysql-community-server
    mysql --version

・MySQLの初期化
    su
    mysqld --user=mysql --initialize

・MySQLの自動起動
    su
    systemctl enable mysqld.service

・MySQLの起動・終了確認
    su
    systemctl start mysqld.service
    systemctl stop mysqld.service
    systemctl restart mysqld.service

・MySQLの初期rootパスワードについて
    初回起動時にrootの初期パスワードが自動設定される。
    ログに出力されるので確認する。
    su
    cat /var/log/mysqld.log | grep "temporary password"

    rootユーザのパスワードを再設定
    ※参考URL:http://qiita.com/ksugawara61/items/d8d69b7d57a3afcef980

・MySQLのrootパスワード変更
    su
    mysql -uroot -p
    set password for root@localhost=password('root');

・ApacheのVirtualHost設定でエラーが出る場合
    ※参考URL
        http://momoiro-tj.hateblo.jp/entry/2016/01/12/221657
        http://qiita.com/hiropopjp/items/e3ad1c82028082916a5e

    chcon -R -t httpd_sys_rw_content_t laravelのパス/storage
    chcon -R -t httpd_sys_rw_content_t laravelのパス/bootstrap/cache

・RedisのPermission deniedでエラーが出る場合
    ※参考URL
        http://yut.hatenablog.com/entry/20131206/1386285876
        http://qiita.com/snaka/items/9db959d9494ebda30a98

    sudo /usr/sbin/setsebool httpd_can_network_connect=1

    SELinuxが有効化されているとhttpdのCGI経由でのネットワークアクセスが制限され、
    結果としてWebSVNのようなスクリプトが正常に動作しないらしい。

    現在の設定を確認
    $ sudo getsebool httpd_can_network_connect
    httpd_can_network_connect --> off

    ONにする
    $ sudo setsebool httpd_can_network_connect 1

    設定を再度確認
    $ sudo getsebool httpd_can_network_connect
    httpd_can_network_connect --> on
0
2
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
0
2