jQueryに一点集中してrailsとWordPress両方でコンテンツを作る計画を立ててみた

jQuery、みなさんすらすらかけますでしょうか。

私は点でダメで、壁に直面しております😅

7月まではrailsでDocker環境を導入し、アプリケーションの開発を行っておりました。

しかし、わたくしごとですが、子どもの幼稚園が夏休みに入ったと同時にまとまった時間が取れずにとても苦戦しておりました。

そこで、「ちょっと手軽に気分転換に」という軽い気持ちでWordPressでコンテンツ作りを始めたのですが、これがまた感動的にUI/UXが装備でき、苦手なフロント開発手間いらずじゃん!とウキウキでした。

今回作りたいと思ったアプリが、「ある試験の過去問対策でクイズ形式のアプリあったら便利だな」ということでDB設計から始めたのですが、

rails環境を整え、MVCも整えてさあ、viewから開発するかー

と思って取り掛かったのですが、

「??これってrailsでやる必要あるのか??」

となりました。

その疑問を素直に受け取り、いろいろ勉強してみるとやっぱり必要なさそうでした笑

なぜなら、

「JS(jQuery)」で全て完結してしまうからです。

 

ということで、サボってたjQueryを本格的に勉強し直しております。

 

気づいたこと

 

jQueryを極めるといいことがあることがわかりました。

WordPressでも使えるし、railsでも使えるのでとても便利だということです!

もしかしたら、自分が作りたいと思っているアプリケーションの8割り方はJSで作れてしまうのではないかと思うほどです。

 

この魅力の正体を突き詰めるべく、これからrubyに一点集中していた時と同じ様にがんばってみようかなと思いました。

 

ちなみに、付け焼き刃でできたアプリがこちらです🤔

https://fp-supporter.com/wp/2020/08/27/practice-11/

 

 

シンプルでかつ求められる様なアプリを開発できる様に引き続き時間を使っていきたいと思います😌

 

 

 

 

 

 

jQueryに一点集中してrailsとWordPress両方でコンテンツを作る計画を立ててみた

jQuery、みなさんすらすらかけますでしょうか。

私は点でダメで、壁に直面しております😅

7月まではrailsでDocker環境を導入し、アプリケーションの開発を行っておりました。

しかし、わたくしごとですが、子どもの幼稚園が夏休みに入ったと同時にまとまった時間が取れずにとても苦戦しておりました。

そこで、「ちょっと手軽に気分転換に」という軽い気持ちでWordPressでコンテンツ作りを始めたのですが、これがまた感動的にUI/UXが装備でき、苦手なフロント開発手間いらずじゃん!とウキウキでした。

今回作りたいと思ったアプリが、「ある試験の過去問対策でクイズ形式のアプリあったら便利だな」ということでDB設計から始めたのですが、

rails環境を整え、MVCも整えてさあ、viewから開発するかー

と思って取り掛かったのですが、

「??これってrailsでやる必要あるのか??」

となりました。

その疑問を素直に受け取り、いろいろ勉強してみるとやっぱり必要なさそうでした笑

なぜなら、

「JS(jQuery)」で全て完結してしまうからです。

 

ということで、サボってたjQueryを本格的に勉強し直しております。

 

気づいたこと

 

jQueryを極めるといいことがあることがわかりました。

WordPressでも使えるし、railsでも使えるのでとても便利だということです!

もしかしたら、自分が作りたいと思っているアプリケーションの8割り方はJSで作れてしまうのではないかと思うほどです。

 

この魅力の正体を突き詰めるべく、これからrubyに一点集中していた時と同じ様にがんばってみようかなと思いました。

 

ちなみに、付け焼き刃でできたアプリがこちらです🤔

https://fp-supporter.com/wp/2020/08/27/practice-11/

 

 

シンプルでかつ求められる様なアプリを開発できる様に引き続き時間を使っていきたいと思います😌

 

 

 

 

 

 

rake db:create RAILS_ENV=productionでつまづいたのでまとめてみた。

 

f:id:momonga0714:20200605182826p:plain

※ どうやらソケットがないよと言われている

 

でソケットの位置の確認

 

f:id:momonga0714:20200605182849p:plain

 

パスを間違えていた様だったので

 

database.ymlにソケットの位置の記載。

すかさず、再度create!

 

f:id:momonga0714:20200605182909p:plain

MySQLアクセスして書き込もうとしたら、権限なくて弾かれたよ、と教えてくれた。

ここでMySQLのパスワードの設定を見直す。

 

適当に

$ sudo /usr/libexec/mysql56/mysqladmin -u root password ‘password’

を登録しようとするとコマンドがないと怒られる笑

 

これはパスワードを一度確認!

 

f:id:momonga0714:20200605182927p:plain

 

 

※やっぱり、変なパスワードが設定されていた😅

変更!ただし、まずはMySQLに入れないといけないので…

この記事を参考に(https://teratail.com/questions/53026

 

f:id:momonga0714:20200605183023p:plain

 

コマンドを順番に叩き無事ログイン😭

 

ログインしたら

mysql> UPDATE mysql.user SET authentication_string = PASSWORD(‘password’)

    -> WHERE User = 'root' AND Host = 'localhost';

Query OK, 1 row affected, 1 warning (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 1

 

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

 

mysql> quit

Bye

 

この手順で、設定したのですが、ここで決めた、passwordが甘かったらしく、

データベースの情報を確認するだけでもこんな状況😅

 

f:id:momonga0714:20200605183044p:plain



 

なので、この記事(https://mamy1326.hatenablog.com/entry/2017/11/27/231450)を参考に少し高度なパスワードに設定し、

mysql> SET PASSWORD FOR root@localhost=password(‘難解password’);

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

(※ちなみにこのpasswordの設定は簡易的なものでもできる様にカスタムできる様です😓)

 

そうすると

 

f:id:momonga0714:20200605183100p:plain

 

見れた!

 

パスワードが生きていることを確認できたので

database.yml のVimファイルにパスワードを書き込み

 

f:id:momonga0714:20200605183120p:plain



 

無事、db:createできました☺️

デプロイ時の503エラーについて(aws)

sudo vim /etc/nginx/conf.d/rails.conf

 

 

Webサーバ側で何かエラーが出た場合、niginxで何かおかしいのでは?と疑うことがまず。

デプロイ時では503のエラーについては、vimファイルに原因があるのではないかと疑う必要がある。

 

実際に、指示通りに、vim.fileの編集を行わずに、デプロイ(unicorn)の再起動を行ったところ、

エラーとなった。

 

このnginxの確認は必須。

デプロイ時に、MYSQLにdatabaseをcreateしたときに出たエラー #<Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)> Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8", "pool"=>5, "username"=>"sfc-b", "pass

今回のエラーは結構手強かった😅

 

デプロイ時に、AWSを使って、データベースを準備し、

ユニコーンでデプロイするときの流れのところで、

#<Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)>
Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8", "pool"=>5, "username"=>"sfc-b", "password"=>nil, "socket"=>"/tmp/mysql.sock", "database"=>"sfc-b_production"}, {:charset=>"utf8"}
(If you set the charset manually, make sure you have a matching collation)
Created database 'sfc-b_production'

 

というエラーがしつこく、、とてもしつこくでていた

 

database.ymlと照らし合わせてみると、

どうやら、本番環境が読み込めていないらしい。

 

 

# MySQL. Versions 5.0 and up are supported.
#
# Install the MySQL driver
# gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
# gem 'mysql2'
#
# And be sure to use new-style password hashing:
#
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
socket: /tmp/mysql.sock

development:
<<: *default
database: sfc-b_development

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: sfc-b_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
# DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
# production:
# url: <%= ENV['DATABASE_URL'] %>
#
production:
<<: *default
database: sfc-b_production
username: root
password: <%= ENV['DATABASE_PASSWORD'] %>
socket: /var/lib/mysql/mysql.sock

 

どうしたら、ちゃんと読み込んでくれるのだろう。。。

GitHubにもしっかり

 

production:
<<: *default
database: sfc-b_production
username: root
password: <%= ENV['DATABASE_PASSWORD'] %>
socket: /var/lib/mysql/mysql.sock

 

この部分を追記したものをあげて、反映されているのに、

と悩んでいた。

もしかして、ローカルでいらんコードを書いていて、

それが邪魔しているのでは?

と思い、新しくnew_app

して、検証用のアプリも準備した。

しかし、その検証用のアプリでも

エラーになるのだった。。

 

ただ、これで、コードに問題はなく、

やはり、データベース側の読み込みがうまくいっていないという当初の

仮説に絞り込まれることになったのはよかった。

 

最後に行き着いたのは、

 

GitHubにあげたものを、キーを通して、ES2側にうまく渡っていないのでは」

 

という仮説にいきつき、GitHubから直接働きかけるのではなく、

「では直接、ローカルからデータベースに話しかける」

という結論が浮かんだ。

 

そのやり方は、

ターミナルから直接、コマンドをとおして伝えることだった。

 

そのやり方は

 

 

[ec2-user@ip-172-31-23-189 <リポジトリ名>] git pull origin master

 

これだ!

こうすることで、直接、EC2側に「database.ymlの記述変えたよ、反映してね」

と伝えることができるということらしいのだ。

 

このエラーは

 

「1ヶ月かかった」

 

という人もどうやら居た様なので、危機感を感じていたが、

なんとか丸一日で終戦してよかった☺️

 

 

rails sでlocalhost:3000が急に立ち上がらなくなったので解決してみた。 Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

表題の様なエラーが突然出て、

localhost:3000

が立ち上がらなくなった。

 

ん?おかしいな、と思ったのは

デプロイ準備中に

Node.jsのインストール

を行ったときのこと。

 

================================================================================

================================================================================

 

                              DEPRECATION WARNING                            

 

  Node.js 6.x LTS Boron is no longer actively supported!

 

  You will not receive security or critical stability updates for this version.

 

  You should migrate to a supported version of Node.js as soon as possible.

  Use the installation script that corresponds to the version of Node.js you

  wish to install. e.g.

 

   * https://deb.nodesource.com/setup_10.x — Node.js v10 LTS "Dubnium" (recommended)

   * https://deb.nodesource.com/setup_12.x — Node.js v12 LTS "Erbium"

 

  Please see https://github.com/nodejs/Release for details about which

  version may be appropriate for you.

 

  The NodeSource Node.js distributions repository contains

  information both about supported versions of Node.js and supported Linux

  distributions. To learn more about usage, see the repository:

    https://github.com/nodesource/distributions

 

================================================================================

================================================================================

 

急にこんなのが現れてパニック笑

 

ある、カリキュラムの通りにやっていたので、何かの間違いかと思い、大混乱笑

 

でも、以前、プロゲートでも教材が間違っていたりふるかったりして、この様なこともあったので、

エラー文からして、

もしかしたらと思って調べてみたら…

 

こんな記事が

 

https://qiita.com/azusanakano/items/771dc9919f347de061d7

 

3年前の記事ですが、どうやら

バージョンが古くてエラーが出てるよ、みたいな内容!

エラー文との意味合いからこれは間違いなさそうっだということで

 

 

Node.js 「推奨バージョン」にアップデートしたら直りました😅

 

https://nodejs.org/ja/

 

こういうことは多分これからもしょっちゅうあると思うので気をつけていきたいと思います🤔

 

 

Operation not permitted といって、AWSの設定を邪魔する原因

しばらく時間かかったのでシェア。

 

 

このエラーにかかったら、設定をいじって

変更しましょう〜

 

 

参考記事

https://gori.me/mac/mac-tips/112082

 

ターミナルでコマンド実行時

Operation not permitted