GattsCOM

ブログ

BLOG

  1. Home
  2. Blog

CentOS Stream9 LAMP構築から色々含めて

こんにちわ!今日は2月8日にリリースされたLaravel9を使おうと思ってついでに新しいOSも導入しようと思ったのでここに書く内容をほぼほぼコピペで動くだろう!って感じで書いていこうと思います〜本ブログでは、Composer、npm、certbot(let's encrypt)なども含めてご紹介します。【構成】CentOS Stream9 (さくらVPS)Apache:2.4PHP:8.0MySQL:8.0Laravel:9.1Composer:2.2.6npm:8.3python:3.9 (Let's Encrypt Certbot用)今回やりたいLarave9は必須条件がPHP8以上でしたので、どうせならと思いOSも最新の物にしようと考えました。さくらVPSのコンパネから、OSをCentOS Stream9を選択してサクッとインスールします。インストールが終わったら、sshで接続します。この時、OSを入れる際に注意書きでrootユーザーではなくcentosってユーザーが自動で作られます。rootユーザーでは直接接続ができなくなります。(あとで設定で変更できますが、それは別のお話しで)あ、それからCentOS7などまで使われてたyumコマンドが変更されてdnfとなっているので、そこも見慣れないと思いますが気にせず進めて行きましょう!sshでログインの際に、変な文章出てくるのでcockpitは削除しておきましょう。続けてFirewalldを起動させて、ポートを開放しましょう続けてApacheのインストールです!インストールされたか確認しましょう。バージョンが表示されてればOKです!\(^o^)自動起動をONにしましょう!続いて、PHPをインストールしましょう! (8.0.13) 複数ライブラリもまとめてインストールインストールされたかバージョン確認してみましょう!表示されてればOKですよ!おめでとうございます続いては、MySQLのインストールですインストールされてるかバージョンの確認バージョンが表示されてればOKです。MySQLも自動起動をONにしときましょう!初期状態では、rootユーザーがパスワードなしで MySQLに接続できるようになっていますのでパスワードを設定しましょう!設定したパスワードで入れるか確認Sequel Proなどのツールを使っていると、接続できない!ってエラー出ると思います。なので、もう少し設定していきましょう。これでSquel Proの接続してみて、接続されればOK!続いて、Laraveをインストールする為に必要な「Composer」をインストールしていきましょう。バージョン表示の確認できればOKです!さてさて、やっと本題のLaravel9のインストールですね!!サクッと行ってみましょう!!インストールが終わったらバージョン確認してみましょう。プロジェクトへ移動してバージョン表示されましたか?されてればOKですよ!!!これで、ブラウザから確認してLaravel9の画面が出てればOKです。おめでとうございます!!ここからは、Laravelを使う上で必要になってくるnpmのインストールやSSL(https)をするためにpythonやcertbotのインストールになりますので、ここまでの方はお疲れ様でした〜!!!という事で、どんどん行きましょう!Pythonのインストール。Let's Encrypt(Certbot)を使えるようにする為↑ 終わったら下記実行してCertbot(Let's Encrypt)をインストールします。インストールが終わったらバージョン確認してみましょう。続いては、いつも通りhttpsをかける設定です。↑はいつも通りのコマンドですね。OSが変わったからと言って、ここのコードが変わるわけではないです!安心安心ここで、apacheの再起動忘れずに続いてnpmのインストールです。インストール終わったらバージョン確認バージョンが表示されてたらOKです。お疲れさまでした!!補足ですが。CentOS Stream9から/etc/にあった「hosts.allow」や「hosts.deny」がなくなっています。これはsshの接続を許可するIPを制限するための設定ファイルになるんですが、ものが無い。ならどうすんだ!って思った方。安心してください!履いてますよ!(古!CentOS Stream9からは「sshd_config」で行います。usernameのところは、接続したいusernameです@の後ろはIPアドレスになります。ですが、この設定hosts.allowやdenyと違ってIPの制限はされますがパスワードの入力までは見えてしまします。そこで、もしssh自体を制限したい場合は、Firewalldで行う必要があります。Firewalldは色んな設定の仕方がありますので、Firewalld sshなどでGoogle先生に聞いてもらったほうが色々書くより早いと思います。Firewalldでsshの書かれてるところを消して、usernameなどを設定、またIPアドレスなどもそこで設定してれば問題なくhosts.allow, denyの設定のような感じになると思います。どちらにしてもsshd_configの設定は必要ですので、お忘れなく。最後にsshd_configを触ったら再起動しておきましょう。まだまだ他にも細かい設定などはありますが、そこは省きました。httpdの「ServerTokens」や「ServerSignature」などphp.iniの「expose_php」などなど。今回はとりあえず、LAMP環境構築からLaravelをインストールして、npmやcertbot(Let's Encrypt)の一通りWEBサーバーとして使えるようにする設定のご紹介でした。長かったですが、最後まで読んでいただきありがとうございました。

Dockerを使って、とりあえずLaravel~MySQLまで使えるようにしよう(構築 前編)

みなさんご無沙汰してます!Docker使ってますか~!?大規模・小規模開発、関係ないです!節約につながるので、是非是非Dockerを使いましょう!!そして、少しでもサーバー構築の知識をつけてもらえたらと思います。環境はMacです。Windowsだと、すんなりインストールできる人とできない人が居るかもです。Windowsでつまずいた人は、ここらへん見るといいかも。Windows 10 + WSL 2 でDocker環境を構築する(Docker Desktop有料化対策)Windows docker起動エラー(WSL2 利用)今回の記事では、サーバー知識なくてもとりあえず、この手順通りやれば構築できるよ!?って感じでお伝えできたらと思います~!!まずは、Dockerがないと話しにならない!Dockerをインストールしましょう!(あ、Docker=ドッカーって読むみたいです)Docker公式サイト公式サイトを開いたら右上にある『Get Started』へ移動しましょう!そしたら、こんな画面になります。左の『Docker Desktop』からお使いのOSを選択しましょう!たぶん、デフォルトでお使いのOSが選ばれてると思います。画像左の『Download for Windows』って書いてる下向きになってるアイコンからOS選択できるのでそこから選んで見ましょう。AppleのM1チップをお持ちの方は、Apple Chipを選択してください。macの方CPUの確認は『アップルマーク → このMacについて』を押すとわかりますよダウンロード完了したら、インストールしてください。無事インストールが終わったらアプリを起動しましょう。※ Windowsの方は、ここで再起動しろと言われます・・・(Windowsのこう言う所うざいっすよね。右上あたりにクジラのアイコンが出てると思います!!クジラアイコンをクリックして画像部分が緑になってたら起動成功です。おめでとうございまーーーーーーーす!!!続いて、コンテナを作っていきましょう。(コンテナを作る準備をしましょう!)

2022年 明けましておめでとうございます。

LaravelでNamespace declaration statement has to be

rsyncでバックアップしようとしたら10秒ほどで切断・・・

LaravelでQRコードを生成、作成する

Laravelでルートは合ってるのに、Not Foundが出る解決方法

Laravel4でDB(データベース)のバックアップを取る

私は、現在Laravelのバージョンは5.7や5.8を使うことが多いのですが昔使ってたLaravel4.2のバージョンでまだ動いてる物もあったりします。そこで、今回はちょっと古い情報だけど、Laravel4でもデータベースのバックアップする方法を書きます!まずは下記のリンクを参照してください。と言っても、導入のやり方なども、このあと書いて行くので見なくてもOKですLarave-Backup↑ここが本家!まずは、composerに記述しましょう!!終わったら、Laravel側のapp/config/app.phpに下記記述してください設定は以上です!簡単ですね!!サクッと終わりました!あとは、ターミナルなどでphp artisan db:backupしたら、「app/storage/dumps/」ってところに「○○○○○○○.sql」ってファイルが出来てます!!中身は、きれいにdumpデータが書かれていますね!ターミナルじゃなくて、Laravel内で動かしたい人!!わかりますよその気持。ってことで、Laravel内で動かす場合はこちら!と書けば、同じ処理が出来ます。え?ファイル名を付けれないのか?って?もちろん付けれますよ!!app/storage/dumpsに事前にディレクトリを作って、そこを指定することも出来ます。その場合はなんてことも出来ます。でも、上に書いた「app_path().'/storage/dumps/bkupfile/'」の「bkupfile」と言うディレクトリは事前に作っておきましょう!No such Directory!ってエラーで怒られます。それでは、最後にバックアップしたデータを復元する方法を書きます!本家にも書かれていますがphp artisan db:restore filename.sqlで、出来ます。ですので、先程と同じでLaravel内で同じことがしたい場合は。で、出来ますよ!!しかも、バックアップ処理速度もかなり早いので便利です。また、良い情報集めて公開しま〜す。少しでも役に立てたら、嬉しいですねぇ〜(^o^)v

Laravelで簡単にバックアップしてCronで別サーバーへFTP転送までを自動化してみた

久しぶりの投稿です。12月は忙しく、事務所の移転もしたりとバタバタでした。回線の移動が、ビビりまくりでしたねぇ!!と言うことで、本題に戻しますw今までCronを使ってシェルなどを動かしてバックアップを取っていたのですがLaravelには凄く便利なバックアップ方法がありましたので、そちらを共有したいと思います!!spatie/laravel-backup:5.* ← 5.*はLarave V5系ならこれ。Laravel 6系ならspatie/laravel-backup:5.* → spatie/laravel-backupとしてください。実行したら、だらだら〜とインストールが始まってPackage manifest generated successfully.って出たら完了です次にとすると、configディレクトリにbackup.phpが生成されます。こちらは、特に触らなくても問題ないです。一応実行だけしときます。このファイルはバックアップの場所とか色々設定ができます。ここまでしたら、一旦完了です!!すげー!簡単だ!!たぶん色々とエラーは出ると思いますが、実行はされてるはずです。エラーが出る人はphp artisan backup:run --disable-notificationsこちらで実行してみてください。実行結果は、/Laravel_Root/storage/Laravel/の中にzipファイルが出来上がります。このzipファイルの中に、LaravelのソースコードとDatabaseのdumpデータが入っています。もし、zipのパッケージが入ってない人はパッケージをインストールしてください。インストール方法はzipをインストールしたら、もう一度php artisan backup:runを実行してみてください。/Laravel_Root/storage/Laravel/ の中にzipファイルができましたか??出来てない人は、チャットなどで問合せてくださいw時間を見て順次返答してみます。ここまでで、一旦サーバーにバックアップを創ることが出来たと思います。ですが、サーバーにバックアップを取っても、サーバーがぶっ飛んだら意味がない!!!と言うことで、弊社は別のサーバーをバックアップに立てて、そちらにバックアップデータを入れています。この場合はFTPやSFTPとかでアップしてるので(scpとか使わないの?とか言わないでくださいね。)先にそちらの話しをしてみましょう!!!LaravelにはStorageクラスというものがあり、こちらが非常に便利です!!!まずは、config/filesystem.phpを開いてみましょう!!今回はFTPとしていますが、SFTPなどもいけますし見てわかるように、s3などへも簡単に出来ますよ。https://readouble.com/laravel/5.5/ja/filesystem.htmlこちらを参考にしてもらったら、Storageクラスがある程度わかると思います。細かくポートやパッシブモードなども設定できます。次に、転送させる為のコードを書くのですがこのコードを実行すると、自動的にconfig/filesystem.phpで設定した、FTPへファイルを作ります。なんとたったの1行!!すげー!さて、ここまでで、バックアップファイルの生成からFTPへ転送までが完了しましたここから、それじゃーバックアップしたデータを自動的にFTPへ転送してぇ〜よ!ってところでここで登場するのが、Cronです。Cronはサーバーで指定した時間に自動的に実行してくれる便利な機能です。Cronの設定は、各々扱うユーザーなどが違うかもなので、私の設定で書きます。まずはSSHで書かないといけないので、順に説明しながら書いていきます。急に英語でてきて、わかんねぇ!!って言わないでくださいねwとりあえず、少し話しは脱線しますが、Cronの説明をしていきます。* * * * * ← 5つの*がありますが、こちら、英語の説明を簡単に訳すと1つ目の* 分 (0〜59)2つ目の* 時間 (0〜23)3つ目の* 日 (1〜31)4つ目の* 月 (1〜12) (数字じゃなくて、jan,feb,mar,apr ...みたいに書いてもいいよ!)5つ目の* 週 (0〜6) (0:日曜、1:月曜、2:火曜、3:水曜、4:木曜、5:金曜、6:土曜) 数字じゃなくても(sun,mon,tue,wed,thu,fri,sat みたいに書いてもいいよ!)という風になっています。例題をいくつか作ってみましょう。毎日朝4時30分に実行したい場合は30 4 * * * となります。毎週月曜日の朝4時30分に実行する場合は30 4 * * 1となります。毎月1日の朝4時30分に実行する場合は30 4 1 * *となります。だいたい、わかりましたか?それでは、これで話しを本題に戻しましょう。次に、Laravel側の設定をしないといけません。/Laravel_Root/app/Console/Karnel.phpのファイルを開きます。このようになっていると思います。こちらのschedule関数の中を少し触ります。このように、登録することで、SSHからartisanコマンドで、このschedule関数を呼び出すことが出来ます。実際にやってみましょう!↑さっきは php artisan backup:runでしたが、今回はschedule:runです。schedule関数を呼び出しています。これをすることで、先程 /Laravel_Root/app/Console/Karnel.phpで書かれたschedule関数が動きます。スケジュール関数には$schedule->command('backup:clean'); //←追加$schedule->command('backup:run'); //←追加この2つを登録したので、まずは古いバックアップをクリーンにしてから、新しいバックアップを創る処理をしていますね。なので、schedule:runをしたらこちらが動きます。ほんとにわかりやすいですね〜(^o^)v続いて、この中に(不細工なやり方ではありますが....)scheduleのcall関数を使って、このままFTPへ転送の処理も書いちゃおう!これで、SSHからphp artisan schedule:runを動かすと1:古いバックアップデータをクリーンする。2:新しいバックアップを作成する。(zipの中身は、Laravelのソース+Sqlのdumpデータ)3:ファイルが出来たら、自動的に別で用意してるFTPへ転送する。という所が出来ました。ここまで来たら、あとはCronで設定するだけですね。あとは、朝4時30分になると、Cronが自動的に処理してくれます。ここまでで、Laravelの公式にも書かれているspatieを使って、Laravelのソースコードやデータベースのバックアップを取ってそれを自動的にzipファイルにしてくれて、そのzipをまるごとFTPへ転送!!なんとCronも使って全自動!ってことで、かなり長くなりましたが、これで出来ると思います。余談を書くと、zipファイルが残るようであればサーバー内の容量が食われるのでFTPの転送が終われば、Storage::deleteを使ってファイルの削除をしてたほうが良いかも知れませんね。それでは、長々となりましたが、最後まで読んでいただきありがとうございました〜ちょくちょく更新がんばります〜m(_ _)m

CentOS7さくらのVPSに複数SSL設定をしたら、Apacheが再起動出来なくてハマッた

さくらのVPSにCentOS7を入れて、その他ちょこちょこ入れて(まぁここはどうでもいい)お客さんのサイトをhttps(SSL)化しており、同じサーバーでもう一つお客さんのサイトをhttps(SSL)しないと行けなくて設定したところ、Apacheの再起動が出来ず数時間ハマッた話し。結論は解決したので、その経緯を!!環境・さくらVPS・CentOS Linux release 7.2.1511 (Core)・Server version: Apache/2.4.6 (CentOS)・PHP Ver.7.1.26p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Andale Mono'; color: #2fff12; background-color: #000000; background-color: rgba(0, 0, 0, 0.77)}span.s1 {font-variant-ligatures: no-common-ligatures}以前のdomain1はこの設定で動いていたのでdomain2を追加してみたこの状態で、Apacheを再起動する。systemctl restart httpd (Apache再起動)すると。こんなエラーが出る。Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.あらら?とエラーの中にsystemctl status httpd.serviceと書かれているのでやってみるsystemctl status http● httpd.service - The Apache HTTP Server   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)   Active: failed (Result: exit-code) since 水 2019-05-22 17:05:30 JST; 21s ago     Docs: man:httpd(8)           man:apachectl(8)  Process: 12625 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)  Process: 7140 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)  Process: 12623 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE) Main PID: 12623 (code=exited, status=1/FAILURE) 5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: In order to read them you have to provide the pass phrases. 5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: Server ******.vs.sakura.ne.jp:443 (RSA) 5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: Enter pass phrase:Apache:mod_ssl:Error: Private key not found. 5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: **Stopped 5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE 5月 22 17:05:30 ******.vs.sakura.ne.jp kill[12625]: kill: cannot find process "" 5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: httpd.service: control process exited, code=exited status=1 5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: Failed to start The Apache HTTP Server. 5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: Unit httpd.service entered failed state. 5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: httpd.service failed.わけがわからんwエラーを見るとEnter pass phrase:Apache:mod_ssl:Error: Private key not found.とあるので、調べるが良いのが出てこないそーいえば、CentOS6のときはサーバー再起動したら、SSLのパスフレーズ聞かれたのにCentOS7で聞かれなかったな・・・と思いしかもエラーがEnter pass phraseなので、パスフレーズがねぇよ!?って怒ってるのかな?と思いましたのでシェルファイル作るという風に設置して、vhost.confの中身も書き換えるvhost.confの中身の1行目SSLPassPhraseDialog  builtin⬇⬇⬇⬇⬇⬇⬇SSLPassPhraseDialog exec:/etc/ssl/certs/pass_ssl.shへ変更して保存Apache再起動。エラー。内容は変わったけど、エラーのまま特に解決していない。おかしいなぁと思って、Google先生に色々聞いたり何やりと時間は過ぎていく・・・・友達に聞いてみた所そーいえば、SSL設定したサイトでパスフレーズ設定してたら、同じような事になったことがったなぁ〜その時はパスフレーズ解除したら、すんなり行けたよ〜って神のお告げが降りてくる。試しにやってみる。さて、Apache再起動してみよう。systemctl restart httpdエラーなし。お!行けた行けた!!.keyファイルのパスフレーズを解除したら、すんなり行けました〜!原因はまた今度調べときます〜これで、無事1サーバーに複数SSLの設定が出来ました!めでたしめでたし。

2014 American Megatrendsのブート画面とwindows10インストール

こんばんわ、さすけです。ついに、2020年1月14日にwindows7のサポートが終了すると告知がありました。2009年からだいたい10年間お世話になりました。僕の自宅にあったメインのデスクトップもwindows7でしたが、この度windows10にアップデートしました!痛い出費となりました…お店で買った時、結構小さい外箱と思ってレジに並び、自宅に帰って開けてみたら今はDVDじゃなくてUSBになってるんですね!ということで、ブートの起動順をUSBに変更しなくてはいけません。グーグル先生に聞いても、2014のAmerican MegatrendsのUSBのブート情報がありませんでした…一つ一つブートオプション確認していき、無事インストールできましたので、僕と同じ状況の方に情報提供できたらと思い、ブート設定の手順を簡単に記載します!①インストール用のUSBを挿して、パソコンの電源をつけ、Deleatキーを連打します。②「BIOS Features」タブの「Hard Drive BBS Priorities」の「Boot Option #1」にて「KDI-MSFTWindows 10 PMAP」を選択します。③「Save & Exit」タブの「Save & Exit Setup」で保存と再起動をします。再起動したら、windows10のインストールのスタートページが表示されます!インストールが完了し再起動したら、再度Deleatキーを連打し、②の部分に行き、インストールしたHDDを選択し(画像でしたら「P0:ST3000DM07-1WY10G」)、「Save & Exit」タブの「Save & Exit Setup」で保存と再起動をします。これで作業完了です!それではまた!
記事をもっと見る