レガシーなコード達 PHPで色々やってるアラフォー

PHPer歴10年ですが、まだモダンからはかけ離れた開発をしていますので、辞めたいです。

ところどころが抜けてる 設定手順の件

先に書いた通り、1つにssh接続できなくなったので、新しく建ててみたが、ところどころ設定が抜けて同じ状態までに進ませられない。

 

ssh接続できなくなった

の前

jenkinsの設定ができた。

の前

git pullの認証がうまくいったので、目的である、jenkinsでgit pullで公開領域の変更ができた

 

という前の前の設定があり、

 

そこに至るわけです。

 

phpunitのテストを覚えていくため、

phpunitの実行まではできた。

 

何が書いてあり何が行われているかを把握してるところだ。

 

しかしながら、サーバの設定に時間を取られて本来したいことができないでいる。

 

壁がある。

 

それを乗り越えようとしてい

ます。

 

む。

 

VMにsshで接続できなくなる

残念ながら、VMsshで接続できなくなる事態。

 

こういうのがあるから、余計な時間を食うことになるんや。

 

とりあえず復旧させねば。

 

どこ見たらいいんやー。

 

<これからやること>

・それの復旧

phpunit入門

  OSSフレームワークにあるphpunitのテストを開いて、これは何してるんだというのを調べて知る。

phpunitのテストを書き足してみる。

   書いて動かしてみないとわからない。あれは全部OKになればいいルールだよね?

   だから1+1=2だったらOK

   のテストと

    1+1=1だったらNGとすればOK

    のテストを書けばよいのだと今のところ解釈。

    数値しかこないのであれば、数値かどうかのテストをしてとけば、

    1+a=2とか来ることはないだろう。

    それで良いのだと、今のところは解釈しているだけ。

 

   どうやるのかは知らないのです。

 

 

ひとつひとつ解決してスキルアップしたいです。

 

git-hubのアカウントを作り直します。

 

 

イマココ Jenkins設定〜手動ビルドでページ更新

サーバの設置

昨日終わった。 MacBookVirtualBox上にCentOSを立てて、

Apache /var/www/html を http://192.168.56.100/ にした。

Jenkins /var/lib/jenkins を設置

http://192.168.56.100:8080/

とポートを変えた。Jenkinsは初期値が8080。

同じサーバ内だ。

動きは ホストOSでpush>ゲストOS Jenkins>手動ビルド>シェルスクリプトディレクトリ移動とgit pullでWEBサーバ内(/var/www/html/)を更新 とする。

/var/lib/jenkins/.ssh/に秘密鍵を作って、bitbucketの方にパブリックキーを登録。

pullできるようにした。

今日

Jenkinsの設定引き続き。

MacBookでbitbucketのリポジトリを作成して、

phpを編集。

<?php
phpinfo();
?>

git push!

CentOS[VM]にて 手動で /var/www/htmlにgit clone

続いて、MacBook

<?php
echo "Hello";
?>

に編集して、 git push!

続いて、予め設定しておいたJenkinsで手動ビルド実行。

/var/www/htmlにgit pullして、

更新が完了した。

jenkinsがApacheの方を更新してくれるようにする。

達成!

次回はgit pushでをトリガーにしたいところだが、 Webhookがローカル環境なので使えなさそう。。

Jenkins 設定

ソースコード管理:Git リポジトリに bitbucketのリポジトリを入れる。

git@bitbucket.org:yourrepo/name.git

ビルド:シェルスクリプト ここは同じサーバなので、ディレクトリの移動で

cd /var/www/ ;
git pull origin master ;

つまづき> /var/www/ がjenkinsユーザーと違うグループだったので

エラー;error: cannot open .git/FETCH_HEAD: ????????

が出る。

/var/www/ のグループをjenkinsに変えた

以上で、達成だ。

自動ではない部分はトリガー。 あとテスト。

明日以降にまたトライする。

目的を持ってつまづきながらも達成しているので、とても嬉しいひと時。

だが、環境構築が目的ではない。

最終的には業務フローに導入したい。

素直に、できなかったことができるようになった。先週はできなかったのに。

0.01%成長した。

VagrantとDockerについて名前しか知らない。まだ試してない。

qiita.com

 

サーバ構築の際の設定を覚えるところから、離れるべきだと思いつつ。。

 

おじさんは、

何をやるかじゃない。何をやらないか、だ。

 

Vagrantだと簡単だ。その言葉にくすぐられる。

 

 

継続的インテグレーション(CI)に興味があります。環境構築(のための手前)の初歩

コードを書くことに集中したいのであって、サーバの設定とか面倒な部類。

でも、そうも言ってられないからやるって性分で、2パターンの環境構築にトライしてみたい。

1つは、ローカル環境でCIを実現 1つは、グローバル環境でCIを実現 だ。

テストも書けないからフォーム入力テストはいつも手動。 氏名にテストテストや、電話番号09012345678、メールアドレスもexample.comだ。 自動でデプロイも知らない。 何度も何度もブラウザでボタン押下、送信している。

もう平成最後だっていうのに時代遅れ、それもやめだ。

ということで、

今日は、ローカル環境で継続的インテグレーションの構築をする方法を勉強するために、サーバ構築したことのメモ

イメージ https://tracpath.com/works/wp-content/uploads/2018/05/fig-continuous-integration-1.png 引用: tracpath.com

ホストOSがmacOS High Sierra

ゲストOSがVirtualBox上のCentOS 7.5

1. MacBookVirtualBoxをインストールした。

VirtualBoxとは仮想マシンを無料で自分のPC内に構築できるアプリケーション。

https://www.virtualbox.org

Windows,MacなどOSに対応。無料がありがたい。

2. VirtualBoxにCentOS7を載せた。

DVD ISOをダウンロードしてきて、インストール。

ネットワーク設定がわからなかったのでググる

Macターミナルから、SSHCentOSにログインするまでに時間がかかった。

3. CentOS7にApache,Jenkinsをインストールした。

この辺はyum install

Jenkinsのポート8080を設定 CentOS

firewall-cmd --zone=public --permanent --add-port=8080/tcp firewall-cmd --reload

4. CentOS7にGitをインストールした。

5. gitリポジトリはbitbucket

無料でプライベートリポジトリが持てるので。

6. php7をインストール

7. phpunitなどをpharでなくcomposerでインストール

tk0miya.hatenablog.com

やったことで気づいたこと

VirtualBoxを初めて使った。サーバ構築はあまり慣れていないので、ここまでの設定が1日がかかり。 ネットワークの設定とかでつまづいた。

とりあえず、CentOSのIP 192.168.56.100にしてブラウザで

http://192.168.56.100/Apacheの方 http://192.168.56.100:8080/でJenkinsの方が 見れるまできた!

次はgit pushでjenkinsがApacheの方を更新してくれるようにする。

わたし

イマココ

30代男性。中小企業でECの販売を担当。部下(アルバイト)3名。自身はPHPMySQLでマイクロWEBアプリを社内で作成。他にプログラマーがいないので、日々、自学自習。レガシーコードでコンテンツ毎にコーディングルールも異なり、非フレームワーク、非バージョン管理、非テスト、FTPで更新。

それではダメだと、2017年gitをやっと導入。github、cloud9、bitbucket、backlogを試した。cakephp2.3、laravel5.5はインストールしてHello World!までした。プライベートではさくらスタンダードを借りてアフィリエイトサイトを運用している。IDCFでCentOS7.5の起動までした。

WEBデザインは、bootstrapでページ制作を主としている。Photoshopを使う。ECサイトでの商品画像はアクションを使ってリサイズ等を行なっている。

ECCUBE2を構築運用したことがある。ECCUBE2.4を業者に頼んで中国語に翻訳してもらい、運用したこともある。現在はアリババクラウドで運用している。

楽天Yahoo!ショッピングヤフオク、AmazonJP、eBayへの出品も経験あり。

コレカラ(18年11月付)

Mac上にJenkinsを入れて、git push トリガーで自動デプロイする

Mac上にJenkinsを入れて、git push トリガーでテスト後、自動デプロイする

ご連絡ください

探してます。

Twitter:yespamaster