script day.log

大学生がなんとなく始めた、趣味やら生活のことを記録していく。

WordPressの構築

こんにちは。
先日、ownCloudを構築したので、
次にすべきはWordPressの設置でしょう。
ちゃちゃっと終わるつもりだったのですが、
手こずったのでメモします。

前回行ったownCloudの構築

makose3p1229.hatenablog.com



Let's WordPress

まず環境としては、
WordPress & ownCloud on nginx + MariaDB + PHP7 + Let's Encrypt
です。

WordPressのダウンロード
$ cd 
$ wget http://ja.wordpress.org/latest-ja.tar.gz
$ tar -xzvf latest-ja.tar.gz
WordPress用のデータベースとユーザの作成
$ mysql
MariaDB[(none)]> CREATE DATABASE wordpress;
MariaDB[(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO "admin"@"localhost" IDENTIFIED BY "adminpass";
MariaDB[(none)]> FLUSH PRIVILEGES;
MariaDB[(none)]> EXIT;
WordPressをインストー

WordPressをインストールするために、wp-config.phpを作成する。

$ cd wordpress
$ cp wp-config-sample.php wp-config.php
$ vi wp-config.php
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wordpress');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'admin');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'adminpass');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

WordPressインストール!

cp -fr wordpress/ /usr/share/nginx/html

その後、WebブラウザにてWordPressサーバにアクセスしようとすると…
f:id:makose3p1229:20170716133906p:plain
これです。

先日の記事をしっかり読んで、内容を
理解している方なら、分かると思いますが、
nginxは.confにlocationを書く必要がありましたね。
ということで書くわけですが、ここにかなり苦労しました。
そして妥協もしました。
とりあえずはrootでなくaliasを書くことですね。
試行錯誤の末、以下のようになりました。

upstream php-handler {

    #server 127.0.0.1:9000;

    server unix:/var/run/php-fpm/php-fpm.sock;

}



server {

    listen 80;

    server_name cloud.example.com;

    # enforce https

    return 301 https://$server_name$request_uri;

}



server {

    listen 443 ssl http2;

    server_name cloud.example.com;



    ssl_certificate /etc/letsencrypt/live/cloud.example.com/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/cloud.example.com/privkey.pem;

    # Use 2048 bit Diffie-Hellman RSA key parameters

    # (otherwise Nginx defaults to 1024 bit, lowering the strength of encryption # when using PFS)

    # Generated by OpenSSL with the following command:

    # openssl dhparam -outform pem -out /etc/nginx/ssl/dhparam2048.pem 2048

    ssl_dhparam /etc/nginx/ssl/dhparam2048.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_prefer_server_ciphers on;

    ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !DH !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';

    ssl_session_cache    shared:SSL:10m;

    ssl_session_timeout  10m;

    ssl_stapling on;

    ssl_stapling_verify on;

    ssl_trusted_certificate /etc/letsencrypt/live/cloud.example.com/fullchain.pem;

    resolver 8.8.8.8;

    add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';

    # Path to the root of your installation

    root /usr/share/nginx/html/owncloud;

    # set max upload size

    client_max_body_size 10G;

    fastcgi_buffers 64 4K;



    # Disable gzip to avoid the removal of the ETag header

    gzip off;



    # Uncomment if your server is build with the ngx_pagespeed module

    # This module is currently not supported.

    #pagespeed off;



    rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;

    rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;

    rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;



    index index.php;

    error_page 403 /core/templates/403.php;

    error_page 404 /core/templates/404.php;



    location = /robots.txt {

        allow all;

        log_not_found off;

        access_log off;

    }



    location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){

        deny all;

    }



    location / {

        # The following 2 rules are only needed with webfinger

        rewrite ^/.well-known/host-meta /public.php?service=host-meta last;

        rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;



        rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;

        rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;



        rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;



        try_files $uri $uri/ /index.php;

    }

    location /wordpress {
        alias /usr/share/nginx/html/wordpress;
        index  index.php;
        add_header X-Content-Type-Options nosniff;
        if (!-e $request_filename) {
            rewrite ^/wordpress(.+)$  /wordpress/index.php?q=$1 last;
            break;
        }
    }

    location ~ ^/wordpress/.+\.php$ {
        fastcgi_pass   php-handler;
        fastcgi_index  index.php;
        fastcgi_split_path_info ^/wordpress(.+\.php)(.*)$;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/wordpress$fastcgi_script_name;
        fastcgi_intercept_errors on;
	fastcgi_param HTTPS on;
        include        fastcgi_params;
    }

    location ~ \.php(?:$|/) {

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param PATH_INFO $fastcgi_path_info;

        fastcgi_param HTTPS on;

        fastcgi_pass php-handler;

    }

    #Optional: set long EXPIRES header on static assets

    # location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {

    #     expires 30d;

    #     # Optional: Don't log access to assets

    #     access_log off;

    # }

    
}

キャッシュの設定などが不完全ですが、これで一応動作します。
正規表現などがいまいち理解できていないため、
非常に苦労しました。時間があるときに正規表現
マスターしておかないと困ると思いました。

さあ気を取り直して、WordPressサーバにアクセスします。

https://[WordPressサーバのIPアドレス]/wordpress/wp-admin/install.php

サイト名、ユーザ名、パスワード、メールアドレス入力画面を入力します。
最後のチェックボックスはチェックを入れることで
検索エンジンに引っからないようです。
ログインすると下記ダッシュボードが表示されました。

https://[WordPressサーバのIPアドレス]/wordpressにアクセスすると、
無事ブログサイトができていました。
ownCloudと同じserver nameに置くことで、このサイト自体にも、
Let's Encryptの恩恵が得られました。
ちなみにこの設定でSSL評価がA+を得られました。

いつかはキャッシュの設定を…

いまのところ、自分のnginxの設定ファイル(.conf)では、
キャッシュの設定をすべてコメントアウトしてあります。

問題と思われる部分

# Optional: set long EXPIRES header on static assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    # Optional: Don't log access to assets
    access_log off;
  }
}

有効にすると、私の場合、WordPressのjsファイルやcssファイルが
読み込まれなかったからです。
近いうちに設定したいとは考えていますが、その前に一度サーバの
再構築が来そうな気がします。

WordPressを設定したってことは…

そうですね、このブログをお引っ越しするということですか?
とお考えの方もいらっしゃると思いますが、
いいえ、このブログを更新し続けますよ。
今回はただ設置したかっただけなのです。
ですので、これからもよろしくお願いします。

ownCloudの構築

こんにちは。
テスト期間中なので、勉強しないといけないのですが、
どうもやる気が起きません。
そして今日のお話は、実は以前に組んだシステムのメモになります。

クラウドストレージ欲しい

はい、自前のクラウドストレージが欲しいです。
そう、覚えている方がいるかどうか怪しいので、
過去の記事を引用するので、思い出してください。

makose3p1229.hatenablog.com

そうです。サーバーを建てていましたね。
このサーバーはVPNだったり、Webだったり、
色々な機能を突っ込まれているのですが、
更にクラウドストレージを突っ込みます。
実際、保守の事を考えると分散するべきなのですが…
メインサーバーに仮想サーバーとかいいですねぇ。
せっかくのWindows Serverライセンスの持ち腐れ。
さぁ、落胆はこの辺にして、

なぜownCloud?

私が自前のクラウドストレージを作ろうと思ったとき、
思いついたのがownCloudだったから。
今ならNextCloudにする。

Let's 構築

構築環境としては、
ownCloud on nginx+PHP7+PHP-fpm+Let's Encrypt+ MariaDB
を想定してます。

今後、以下で紹介するコマンドが通らない場合、rootユーザで実行するか、
sudoコマンドを使うことで大抵は解決します(雑

普通に

yum install owncloud

しようと思っていたのですが、
パッケージを調べてみると、
「owncloud」と「owncloud-files」があるみたいで…
中身を見た感じ、
owncloud-files:owncloud単体
owncloud:Apache+PHPもインストールされるみたい。
MariaDBは入っていないみたいなので、
別インストールがおそらく必要。

ちなみに私はOSインストールの際に、MariaDBが入っているので
問題はなかったのですが…
最新バージョンが欲しい人はwgetして来ればいいと思うよ。

MariaDBのインストー

入れてない場合はインストールして。

$ yum -y install mariadb mariadb-server
$ rpm -qa | grep maria
mariadb-5.5.47-1.el7_2.x86_64
mariadb-server-5.5.47-1.el7_2.x86_64
mariadb-libs-5.5.47-1.el7_2.x86_64

my.cnfにて、文字コードの設定をしましょう。

[mysqld]
…
character-set-server=utf8
…

さあ、起動しましょう。

$ systemctl enable mariadb.service
$ systemctl start mariadb.service

MariaDBにowncloudユーザとデータベースを作成。

$ mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] ←空Enter
New password:   ←パスワード入力
Re-enter new password: ←パスワード入力
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] ←空Enter
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] ←空Enter
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] ←空Enter
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] ←空Enter
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

$ mysql -u root -p
Enter password: ←初期セットアップコマンドで決めたパスワードを入力
mysql> CREATE DATABASE owncloud;
mysql> GRANT ALL ON owncloud.* to 'owncloud'@'localhost' IDENTIFIED BY 'owncloud';
nginxをインストー
$ rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
$ yum -y update nginx-release-centos
$ yum -y --enablerepo=nginx install nginx
$ nginx -v
nginx version: nginx/1.8.1

CentOS7なので、間違えずnginx-release-centos-7-0.el7.ngx.noarch.rpm
リポジトリに追加し、インストール。

PHP7をインストー
$ yum install epel-release.noarch
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ yum install --enablerepo=remi --enablerepo=remi-php70 php php-opcache php-devel php-fpm php-gd php-pdo php-dom php-mbstring php-mcrypt php-mysqlnd php-mssql php-pecl-xdebug php-openssl php-json php-pecl-apcu php-pdo_sqlite php-pdo_mysql php-pecl-memcached php-bcmath php-msgpack php-ldap php-pecl-imagick php-pgsql php-pecl-pthreads php-pecl-msgpack php-posix php-pecl-zip
nginxの設定 towards PHP-FPM(FastCGI)&ownCloud

/etc/php-fpm.d/www.confを以下のように変更。

sed -i -e 's/listen = 127.0.0.1:9000/listen = \/var\/run\/php-fpm\/php-fpm.sock/' /etc/php-fpm.d/www.conf
sed -i -e 's/;listen.owner = nobody/listen.owner = nginx/' /etc/php-fpm.d/www.conf
sed -i -e 's/;listen.group = nobody/listen.group = nginx/' /etc/php-fpm.d/www.conf

とりあえず一時的な設定ファイルを書きます。

$ vi /etc/nginx/conf.d/cloud.conf
upstream php-handler {
  #server 127.0.0.1:9000;
  server unix:/var/run/php-fpm/php-fpm.sock;
}

server {
  listen 80;
  server_name cloud.example.com; #ここを自分のアドレスに変更

  # Path to the root of your installation
  root /usr/share/nginx/html/owncloud;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  # Disable gzip to avoid the removal of the ETag header
  gzip off;

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed off;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
  }

  location / {
    # The following 2 rules are only needed with webfinger
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ /index.php;
  }

  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    fastcgi_pass php-handler;
  }

  # Optional: set long EXPIRES header on static assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    # Optional: Don't log access to assets
    access_log off;
  }
}

サービスの起動と自動起動設定。

$ systemctl start php-fpm
$ systemctl start nginx
$ systemctl enable php-fpm
$ systemctl enable nginx
さあ、owncloud本体のインストー
$ wget http://download.owncloud.org/download/repositories/9.0/CentOS_7/ce:9.0.repo -O /etc/yum.repos.d/ce:9.0.repo
$ yum --installroot=/usr/share/nginx/html
$ chown -R nginx /usr/share/nginx/html/owncloud

or

$ curl -O 'https://download.owncloud.org/community/owncloud-9.0.1.zip'
$ unzip owncloud-9.0.1.zip
$ rm -f owncloud-9.0.1.zip
$ mv owncloud/ /usr/share/nginx/html/
$ chown -R nginx /usr/share/nginx/html/owncloud

さあ、あとはSSL証明書を発行して、設定し直して終了。

Let's Encryptで証明書発行

gitが入っていなければ

$ yum list installed git
# if don't exist
$ yum -y install git

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt/
$ ./letsencrypt-auto --help

# -d でドメインを指定してください(単数、複数可)。
# -m でメールアドレス設定可(省略可)
$ ./letsencrypt-auto certonly --standalone -d cloud.example.com -d cloud1.example.com -m 自分のメールアドレス --agree-tos

セットアップ終了後

$ ls -l /etc/letsencrypt/live/cloud.example.com/

を実行して、生成した鍵が表示されれば問題なしです。

nginxの設定 towards HTTP/2

脆弱性のためにも古い形式の通信は断ち切りましょう。

$ vi /etc/nginx/conf.d/cloud.conf
upstream php-handler {
  #server 127.0.0.1:9000;
  server unix:/var/run/php-fpm/php-fpm.sock;
}

server {
  listen 80;
  server_name cloud.example.com; #ここを自分のアドレスに変更
  # enforce https
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;
  server_name cloud.example.com;

  ssl_certificate /etc/letsencrypt/live/cloud.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/cloud.example.com/privkey.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !DH !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';
  ssl_session_cache    shared:SSL:10m;
  ssl_session_timeout  10m;

  # Path to the root of your installation
  root /usr/share/nginx/html/owncloud;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  # Disable gzip to avoid the removal of the ETag header
  gzip off;

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed off;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
  }

  location / {
    # The following 2 rules are only needed with webfinger
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ /index.php;
  }

  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    fastcgi_pass php-handler;
  }

  # Optional: set long EXPIRES header on static assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    # Optional: Don't log access to assets
    access_log off;
  }
}
$ systemctl restart nginx

ブラウザのアドレスバー横に緑色で証明書が信頼されていますという表示になっていて、
かつページが正常に表示されていればOKです。
ただ証明書の有効期限が3ヶ月と短いので、自動更新を設定されることを
おすすめします。

makose3p1229.hatenablog.com
makose3p1229.hatenablog.com

SSL評価をもっとあげたい場合は、ssl_dhparamや
HSTSヘッダを追加してあげると良いと思います。

評価サイトの紹介
www.ssllabs.com

最後に

よいクラウドライフを!

ssh公開鍵認証の実装

事の発端

自宅サーバーにssh接続しようと思い、
設定した?のでメモする。

Let's 実装

鍵の実装
$ ssh-keygen -t rsa
Enter file in which to save the key:id_rsa
Enter passphrase (empty for no passphrase):

実行後、カレントディレクトリに
秘密鍵と公開鍵が生成されます。
拡張子にpubがある方がpublicだよ。

公開鍵の配置
$ mv id_rsa.pub ~/.ssh 
$ cd ~/.ssh
#if exist authorized_keys
$ cat id_rsa.pub >> authorized_keys
$ rm id_rsa.pub
#else
$ mv id_rsa.pub authorized_keys

$ chmod 600 authorized_keys
秘密鍵の配置

秘密鍵をホストマシンの分かりやすい場所に置く。
セキュリティ的に、パーミッションを600へ。

$ chmod 600 id_rsa
疎通確認

ホストマシンにて

$ ssh -l [ユーザ名] -i [秘密鍵のパス] [接続先サーバのホスト名]

パスフレーズは設定したものを入力してください。
無事にSSH接続出来れば完了です。

More Easy SSH

.ssh/config 書きましょうって話です。

Host hoge
HostNama hoge.com( or 192.168.1.1 or etc..(
User hoge
Port ポート番号 #必要なら
IdentityFile 秘密鍵へのPATH(ex.~/.ssh/id_rsa)

これを記述すれば、以下のようにSSH接続できます。

ssh hoge

これでComplete!

New NoteBook💻

新しいノートパソコンを買いました。

f:id:makose3p1229:20170703220112j:plain

主要スペックとしては以下の通り。
ThinkPad E470
OS:windows10Home
メモリ:16GB
CPU:i7-7500U
GPU:GeForce940MX
SSD:256GB

指紋センサーとかつけたりしましたよ。
windows helloはいいね。
PINだったり、生体認証システムは最高です。

届いてからすぐに、
win10Home→win10educationへアップグレードしました。

色々セットアップをして、完了です。

いろいろな角度から

f:id:makose3p1229:20170703220238j:plain

f:id:makose3p1229:20170703220125j:plain

f:id:makose3p1229:20170703220132j:plain

これで外出しても、色々できますね。
ある程度使ったら、レビュー書く予定です。


本当はX1CarbonとかT470Sが欲しかったなんて言えない。

梅雨の晴れ間に🚗

金曜日の全休デーをうまく活用して、
いつもの友人と道の駅めぐりに行きました。
目的はドライブとランチです♪

クラフトの里へ

MAP🚩

ランチで食べる予定のお店は双海の方にあるのですが、
早めに準備が整ったので、早めに出発しました。
ところが、前日から朝にかけて雨が振り、
ドライブ始めは雨がポツポツしていました。
このまま雨で、路面も濡れてるのかな?なんて
心配をしていたのですが、国道56号線を伊予方面へ
走っていると、だんだん晴れてきて良かったです😊

無事到着して、何か買うわけでもなく、
クルマを降りるなり、2人ともトイレへGO!
トイレにはツバメが巣を作っていました。
そして、次の目的地に向けて出発する前に、
1枚写真を撮りました。

PHOTO📷
f:id:makose3p1229:20170630215637j:plain



道の駅内子フレッシュパークからりへ

MAP🚩

クラフトの里でトイレ休憩をしたあとは、
友人が道の駅内子フレッシュパークからりに
行ったことがない私のために、行こうと言ってくれたので、
付いて行きました。からりに行く道中は、雨が上がって、
晴れ間も見え、湿気がすごかったです💦
無事着いて、写真撮影&自然を感じに行きました。
前日の雨の所為か、川はあまりきれいではなかったのですが、
自然はしっかり感じることが出来ましたよ。
キャンプとか出来るみたいですね。
ただ、暑かったこともあり、すぐにクルマに戻って、
ご飯を食べに行こうとなりました。

PHOTO📷
f:id:makose3p1229:20170630220716j:plain

f:id:makose3p1229:20170630220739j:plain



ラ・メールにてランチ🍴

MAP🚩

ぐるーっとまわって、夕やけこやけラインの
途中にある喫茶店に入り、ランチです。
友人のオススメでした。
私はミートソース、友人はバジリコを食べたのですが、
料理の写真は撮り損ねました。
気づいたら食べてましたね…
ミートソース美味しかったです。
代わりに、店内の風景をお届けします。
この店内から見た海岸線が晴れ間によって、
物凄く爽やかに写っていたのですが、そこに
アクアが通り過ぎたときは"これぞ爽やか!"って感じでした。
街乗りで見るアクアとは違って見えました。

PHOTO📷
f:id:makose3p1229:20170630221742j:plain

f:id:makose3p1229:20170630221806j:plain



おなじみの道の駅 ふたみ ふたみシーサイド公園

ご飯を食べ、出発した私達ですが、
せっかく近くに来たので、寄っていこうってことで、
毎度おなじみふたみシーサイド公園です♪
クルマを止め、写真撮って終了です。
ただ、筑豊ナンバーのFITがいて、
珍しいナンバーが居るものだなぁと思いました。
ここからはお家へノンストップで帰りました。
友人はDへ、オイル交換しに行きました。

PHOTO📷
f:id:makose3p1229:20170630222250j:plain

f:id:makose3p1229:20170630222312j:plain




乗り換えました

f:id:makose3p1229:20170630222448j:plain

いや、冗談です。
友人がDでオイル交換している間に、
試乗車を借りてきたので、しかも乗せてくれるということで、
喜んで横乗りしました。なんと1時間も!!!

観光港の公園で写真撮影会をして、
Dへ向かっていきました。
運転している間、ずーっと友人は、
"いいなぁー、これ。楽しいなぁ。くれんかなぁ?"
なんて言ってました。横に乗っているだけでも
楽しかったのですが、やはりドライバーには敵わないね。
まあ、MTはたまにでいいという友人にとっては、
1時間の運転が筋トレだと言ってました。

PHOTO📷
f:id:makose3p1229:20170630223157j:plain

f:id:makose3p1229:20170630223221j:plain

f:id:makose3p1229:20170630223245j:plain



次は県外に行きたいなぁ…

Emacs25.2 へ

Emacs25.2が2017/4/21にリリースされましたので、
今頃(6/22)になって、アップグレードしましたよ。
ビビって、インストールしなかったんじゃないんだからねっ!

さあ、アップグレード

私はDebianを使っているのですが、普通にaptで
パッケージインストールしようとすると、
Emacs24かEmacs25.1までしか入らないので、
ソースビルドしてインストールします。

$ wget http://public.p-knowledge.co.jp/gnu-mirror/emacs/emacs-25.2.tar.xz
$ unar emacs-25.2.tar.xz
$ cd emacs-25.2.tar.xz
$ ./configure --with-x-toolkit=gtk3 --with-sound=no --with-x --with-xwidgets

ココで私の場合、libpng12.so.0とlibgif4が無いと怒られたので、
これらをインストールしてから、再び挑戦します。
しかし、aptインストールしようとしても、パッケージが見つからず、
???ってなっていたのですが、Debian stretchのパッケージを見てみると、
なんとパッケージがありませんでした。
前回、stretchのパッケージのみに設定していましたので、
(/etc/apt/source.list)
これを編集して、jessieのパッケージからも
インストール出来るように設定します。
編集の仕方は前回を参考に…

makose3p1229.hatenablog.com

$ apt update
$ sudo apt install libpng12-0
$ sudo apt install libgif4
$ ./configure --with-x-toolkit=gtk3 --with-sound=no --with-x --with-xwidgets
$ make
$ sudo make install
$ sudo reboot //一応再起動
$ emacs --version
GNU Emacs 25.2.1
…

$ emacs

起動しようとすると、"Could not create connection emacswiki 443" のようなメッセージが出てきた
emacswiki関係にアクセスしてるのはauto-installかpackageぐらいなので、とりあえずviで設定する。
私の場合は "(auto-install-update-emacswiki-package-name t)" をコメントアウトで解決。
しかし、この後package listをアップデートしようとしたら、"Could not create connection marmalade-repo.org 443"
のようにmarmaladeも繋げないと怒られ、フリーズ。
原因はmarmaladeの証明書切れっぽい?
とりあえずの対策として、以下のようにmarmaladeのパッケージにアクセスしないようにコメントアウト。

(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
                         ;; ("marmalade" . "https://marmalade-repo.org/packages/")
                         ("melpa" . "https://melpa.org/packages/")))

一応これで動きました。

最後まで読んでくれたあなたへ

marmalade関係で解決している方はアドバイスいただけると助かります。

Debian バージョンアップ(8.8→9.0)

久し振りに技術ブログっぽいことをします。
タイトルの通り、6月17日にDebian 9 "Stretch" がリリースされたので、
ユーザーとしてはアップグレードしなければならない(謎の使命感)

私が行った手順は以下の通り。
途中省略している部分もある。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 8.8 (jessie)
Release:	8.8
Codename:	jessie

$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade

$ sudo reboot

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

$ sudo vi /etc/apt/sources.list
  jessie→stretch

sample output
deb http://httpredir.debian.org/debian          stretch  main contrib 
deb http://security.debian.org/ stretch/updates main

$ sudo apt-get update

$ sudo apt list --upgradable

$ sudo apt upgrade
$ sudo apt dist-upgrade

$ sudo apt autoclean
$ sudo apt autoremove

$ sudo reboot
$ lsb_release -a
:No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 9.0 (stretch)
Release:	9.0
Codename:	stretch