今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

ローカルで動かしたLaravelをCentOSにデプロイする方法

前提: ソースがGitリポジトリに存在すること。

1. git cloneする。

# cd /var/www
# git clone https://hoge.backlog.com/git/HOGE/hoge.git hoge
# cd hode
# chown -R apache:apache .

2. Composerをインストールする。
インストール済みなら不要。

# yum install composer

3. Composer で必要なファイルをインストールする。

# php composer install

4. .env をコピーして適当に書き換える。

# cp .env.example .env
# vi .env

5. アプリケーションキーを生成する。

# php artisan key:generate

6. VirtualHost の設定をする。

# vi /etc/httpd/conf.d/hoge.conf

public に AllowOverride All しないとルーティングが有効にならないらしい。

<VirtualHost *:80>
    ServerName hoge.jp
    DocumentRoot /var/www/hoge/public
    ErrorLog logs/hoge-error_log
    CustomLog logs/hoge-access_log combined env=!no_log
    <Directory "/var/www/hoge/public">
        AllowOverride All
    </Directory>
</VirtualHost>

7. httpdに設定を読み込ませる。

# service httpd reload

git clone しようとしたら HTTP request failed と怒られたときの解決方法

CentOSVPSでgit cloneしようとしたら、エラーになった。

# git clone https://hoge.backlog.com/git/HOGE/hoge.git hoge
Initialized empty Git repository in /tmp/hoge/.git/
error: The requested URL returned error: 401 Unauthorized while accessing https://hoge.backlog.com/git/HOGE/hoge.git/info/refs

fatal: HTTP request failed

いろいろぐぐって対策してみるけど解決できず。

git のバージョンが古いのが原因ぽいことがわかった。

こちらを参考にして git をアップデート。

CentOS6でのgitアップデート(1.7→2.16)

既存gitのアンインストール

# git remove git

git2系がインストールできるrpmを入れる

# wget --no-check-certificate https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-15.ius.centos6.noarch.rpm
# rpm -Uvh ius-release-1.0-15.ius.centos6.noarch.rpm

git2uをインストールする

# yum install git2u --enablerepo=ius
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist https://mirrors.iuscommunity.org/mirrorlist?repo=ius-centos6&arch=x86_64&protocol=http error was
14: Peer cert cannot be verified or peer cert invalid
Error: Cannot find a valid baseurl for repo: ius

エラーになった。。。
参照したサイトでも似たようなエラーで、対策が書いてあった。

/etc/yum.conf に、以下の1行を追加する。

sslverify=false

リトライしたら成功。

>||
# yum install git2u --enablerepo=ius
(略)
Installed:
  git2u.x86_64 0:2.16.5-1.ius.centos6

Dependency Installed:
  git2u-core.x86_64 0:2.16.5-1.ius.centos6
  git2u-core-doc.noarch 0:2.16.5-1.ius.centos6
  git2u-perl-Git.noarch 0:2.16.5-1.ius.centos6

Complete!

git clone してみる。

# git clone https://hoge.backlog.com/git/HOGE/hoge.git hoge
Cloning into 'hoge...
Username for ...
Password for ...

clone できた!

Vagrant+Homestead+nginxで502 Bad Gatewayエラー

VagrantIPアドレスにアクセスしたら、502 Bad Gateway エラーが発生した。
ぐぐったらそれっぽいの発見。

https://qiita.com/ragingalpaca/items/6fc645ebfd4604a336b3

サービス再起動で動く?

$ sudo service php7.2-fpm restart

php7.2-fpm ってサービスは何してるの?

https://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc

で、

$ service --status-all

してみたら、そもそも動いてない。
起動&自動起動するように設定。

$ service php7.2-fpm start
$ systemctl enable php7.2-fpm

現場至上主義 Spring Boot2 徹底活用

献本いただきました。ありがとうございます。

現場至上主義 Spring Boot2 徹底活用
ソシム
売上ランキング: 5302
generated by affi-linker.com at 2018.12.05

専門学校での教科書に使えるのではないかと思いましたが、やはり「現場至上主義」な本は、教科書としては難易度が高すぎました。

しかし、副本としては学生にオススメするには良い本です。

今年からこちらの本を教科書として使っています。

Spring Boot 2 プログラミング入門
売上ランキング: 8952
generated by affi-linker.com at 2018.12.05

入門書という位置づけなので基本的な情報がわかりやすく書かれています。

この本があれば、簡単なWebサイトを作れるようになります。

で、よくある機能を追加しようとするとすぐに情報不足になります。

ファイルアップロード・ダウンロード、ユーザー認証、メール送信などなど。

これらの方法が、現場至上主義 Spring Boot2 徹底活用には書かれてますので、副本として持っておくとカバーできます。

Thymeleafで画面の部品化ができるのは、知りませんでした。
似たような画面を複数作ったりするとき、同様の内容を複数の画面で求める場合などは役立ちそうです。

Spring Boot で接続してきたクライアントのIPアドレスを取得する方法

コントローラで HttpServletRequest を参照できるようにするために、@Autowiredでインスタンス変数requestを追加する。
request.getRemoteAddr() でIPアドレスを取得できる。

HogeController.java

    @Autowired
    private HttpServletRequest request;
 
    public String getRemoteAddr() {
        return request.getRemoteAddr();
    }

デフォルトのままではIPv6形式になってしまうので、IPv4形式のアドレスを返すようにするために、application.properties に以下の設定を追加する。

server.address=127.0.0.1