ブログ BLOG Home Blog #npm 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となっているので、そこも見慣れないと思いますが気にせず進めて行きましょう!# EPELの追加dnf config-manager --set-enabled crbdnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm# Remiの追加dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpmdnf config-manager --set-enabled remisshでログインの際に、変な文章出てくるのでcockpitは削除しておきましょう。## 不要なサービスの停止・削除# cockpitの削除dnf remove -y cockpit続けてFirewalldを起動させて、ポートを開放しましょう## Firewallの設定# Firewallをスタートさせるsystemctl start firewalld# 使わないサービスのポートを閉じる(cockpitとdhcpv6-client)firewall-cmd --remove-service=cockpit --permanentfirewall-cmd --remove-service=dhcpv6-client --permanent# HTTP(80/tcp) と HTTPS(443/tcp) を許可しておきますfirewall-cmd --add-port=80/tcp --permanentfirewall-cmd --add-port=443/tcp --permanentFirewalldを再起動して、設定が反映されているか確認しましょう# firewall 再起動firewall-cmd --reload# Firewallの確認firewall-cmd --list-all続けてApacheのインストールです!## Apacheインストールdnf -y install httpd-develdnf -y install mod_sslインストールされたか確認しましょう。# インストールされたかバージョン確認httpd -vバージョンが表示されてればOKです!\(^o^)自動起動をONにしましょう!# Apacheを自動起動設定systemctl enable httpd続いて、PHPをインストールしましょう! (8.0.13) 複数ライブラリもまとめてインストール# PHPのインストールdnf install php php-common php-opcache php-cli php-gd php-curl php-mysqlnd php-devel php-fpm php-mbstring php-pdo php-intl php-xml php-pear php-pecl-apcu php-soap php-zipインストールされたかバージョン確認してみましょう!# バージョン確認 (表示されればOK)php -v表示されてればOKですよ!おめでとうございます続いては、MySQLのインストールです# MySQLのインストール (8.0)dnf -y install mysqldnf -y install mysql-serverインストールされてるかバージョンの確認# バージョン確認 (表示されればOK)mysqld --versionバージョンが表示されてればOKです。MySQLも自動起動をONにしときましょう!# MySQLの自動起動設定systemctl enable --now mysqld初期状態では、rootユーザーがパスワードなしで MySQLに接続できるようになっていますのでパスワードを設定しましょう!mysql_secure_installation --use-default#実行したら、パスワードの入力を求められるのでパスワードを設定してください設定したパスワードで入れるか確認# MySQLへ接続できるか確認とMySQLのツール『Sequel Pro』を使えるように設定変更する。mysql -uroot -p# パスワード入力でmysqlに接続されればOK!Sequel Proなどのツールを使っていると、接続できない!ってエラー出ると思います。なので、もう少し設定していきましょう。# MySQLのrootの「caching_sha2_password」 を 「mysql_native_password」に変更しますALTER USER 'root'@"localhost" IDENTIFIED WITH mysql_native_password BY 'パスワード';# ↑が終わったら設定を反映FLUSH PRIVILEGES;# MySQLからexitしてSequel Proで接続を確認する。exitこれでSquel Proの接続してみて、接続されればOK!続いて、Laraveをインストールする為に必要な「Composer」をインストールしていきましょう。## Composerのインストール# まず、wgetのインストールdnf install -y wget# ゲットできたら、インストーラーのダウンロードwget https://getcomposer.org/installer -O composer-installer.php# ダウンロードしたら、インストールphp composer-installer.php --filename=composer --install-dir=/usr/bin# インストールが完了したら一応実行しとくといい。(バージョン確認用)composer self-updateバージョン表示の確認できればOKです!さてさて、やっと本題のLaravel9のインストールですね!!サクッと行ってみましょう!!## Laraveのインストール(Ver.9)composer create-project "laravel/laravel=9.*" プロジェクト名インストールが終わったらバージョン確認してみましょう。プロジェクトへ移動してphp artisan -V> Laravel Framework 9.1.0バージョン表示されましたか?されてればOKですよ!!!これで、ブラウザから確認してLaravel9の画面が出てればOKです。おめでとうございます!!ここからは、Laravelを使う上で必要になってくるnpmのインストールやSSL(https)をするためにpythonやcertbotのインストールになりますので、ここまでの方はお疲れ様でした〜!!!という事で、どんどん行きましょう!Pythonのインストール。Let's Encrypt(Certbot)を使えるようにする為dnf -y install python39 python-pip augeas-libs# python-pip39とすると私はエラーがでたので、python-pipとしてます。# もしpython-pipのところでエラー出る人はpython-pip39にしてみると良いかもしれません。↑ 終わったら下記実行してCertbot(Let's Encrypt)をインストールします。sudo python3 -m venv /opt/certbotsudo /opt/certbot/bin/pip install --upgrade pipsudo /opt/certbot/bin/pip install certbot certbot-apachesudo ln -s /opt/certbot/bin/certbot /usr/bin/certbotインストールが終わったらバージョン確認してみましょう。# バージョン確認 (表示されればOK) certbot --version続いては、いつも通りhttpsをかける設定です。# 登録・実行certbot certonly --webroot -w /ディレクトリ/public/ -d ドメイン↑はいつも通りのコマンドですね。OSが変わったからと言って、ここのコードが変わるわけではないです!安心安心ここで、apacheの再起動忘れずに続いてnpmのインストールです。# npmのインストール(root権限で)dnf install nodejsインストール終わったらバージョン確認# バージョン確認npm -vバージョンが表示されてたらOKです。お疲れさまでした!!補足ですが。CentOS Stream9から/etc/にあった「hosts.allow」や「hosts.deny」がなくなっています。これはsshの接続を許可するIPを制限するための設定ファイルになるんですが、ものが無い。ならどうすんだ!って思った方。安心してください!履いてますよ!(古!CentOS Stream9からは「sshd_config」で行います。# SSHの接続制限(IP制限) 旧hosts.allow, hosts.denyvi /etc/ssh/sshd_config# sshd_configに下記追加します。AllowUsers username@接続許可IPアドレスusernameのところは、接続したいusernameです@の後ろはIPアドレスになります。ですが、この設定hosts.allowやdenyと違ってIPの制限はされますがパスワードの入力までは見えてしまします。そこで、もしssh自体を制限したい場合は、Firewalldで行う必要があります。Firewalldは色んな設定の仕方がありますので、Firewalld sshなどでGoogle先生に聞いてもらったほうが色々書くより早いと思います。Firewalldでsshの書かれてるところを消して、usernameなどを設定、またIPアドレスなどもそこで設定してれば問題なくhosts.allow, denyの設定のような感じになると思います。どちらにしてもsshd_configの設定は必要ですので、お忘れなく。最後にsshd_configを触ったら再起動しておきましょう。# 設定の反映systemctl restart sshdまだまだ他にも細かい設定などはありますが、そこは省きました。httpdの「ServerTokens」や「ServerSignature」などphp.iniの「expose_php」などなど。今回はとりあえず、LAMP環境構築からLaravelをインストールして、npmやcertbot(Let's Encrypt)の一通りWEBサーバーとして使えるようにする設定のご紹介でした。長かったですが、最後まで読んでいただきありがとうございました。 #CentOS #Stream9 #LAMP #Laravel #Composer #npm #certbot #ssl 2022-02-23 記事をもっと見る
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となっているので、そこも見慣れないと思いますが気にせず進めて行きましょう!# EPELの追加dnf config-manager --set-enabled crbdnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm# Remiの追加dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpmdnf config-manager --set-enabled remisshでログインの際に、変な文章出てくるのでcockpitは削除しておきましょう。## 不要なサービスの停止・削除# cockpitの削除dnf remove -y cockpit続けてFirewalldを起動させて、ポートを開放しましょう## Firewallの設定# Firewallをスタートさせるsystemctl start firewalld# 使わないサービスのポートを閉じる(cockpitとdhcpv6-client)firewall-cmd --remove-service=cockpit --permanentfirewall-cmd --remove-service=dhcpv6-client --permanent# HTTP(80/tcp) と HTTPS(443/tcp) を許可しておきますfirewall-cmd --add-port=80/tcp --permanentfirewall-cmd --add-port=443/tcp --permanentFirewalldを再起動して、設定が反映されているか確認しましょう# firewall 再起動firewall-cmd --reload# Firewallの確認firewall-cmd --list-all続けてApacheのインストールです!## Apacheインストールdnf -y install httpd-develdnf -y install mod_sslインストールされたか確認しましょう。# インストールされたかバージョン確認httpd -vバージョンが表示されてればOKです!\(^o^)自動起動をONにしましょう!# Apacheを自動起動設定systemctl enable httpd続いて、PHPをインストールしましょう! (8.0.13) 複数ライブラリもまとめてインストール# PHPのインストールdnf install php php-common php-opcache php-cli php-gd php-curl php-mysqlnd php-devel php-fpm php-mbstring php-pdo php-intl php-xml php-pear php-pecl-apcu php-soap php-zipインストールされたかバージョン確認してみましょう!# バージョン確認 (表示されればOK)php -v表示されてればOKですよ!おめでとうございます続いては、MySQLのインストールです# MySQLのインストール (8.0)dnf -y install mysqldnf -y install mysql-serverインストールされてるかバージョンの確認# バージョン確認 (表示されればOK)mysqld --versionバージョンが表示されてればOKです。MySQLも自動起動をONにしときましょう!# MySQLの自動起動設定systemctl enable --now mysqld初期状態では、rootユーザーがパスワードなしで MySQLに接続できるようになっていますのでパスワードを設定しましょう!mysql_secure_installation --use-default#実行したら、パスワードの入力を求められるのでパスワードを設定してください設定したパスワードで入れるか確認# MySQLへ接続できるか確認とMySQLのツール『Sequel Pro』を使えるように設定変更する。mysql -uroot -p# パスワード入力でmysqlに接続されればOK!Sequel Proなどのツールを使っていると、接続できない!ってエラー出ると思います。なので、もう少し設定していきましょう。# MySQLのrootの「caching_sha2_password」 を 「mysql_native_password」に変更しますALTER USER 'root'@"localhost" IDENTIFIED WITH mysql_native_password BY 'パスワード';# ↑が終わったら設定を反映FLUSH PRIVILEGES;# MySQLからexitしてSequel Proで接続を確認する。exitこれでSquel Proの接続してみて、接続されればOK!続いて、Laraveをインストールする為に必要な「Composer」をインストールしていきましょう。## Composerのインストール# まず、wgetのインストールdnf install -y wget# ゲットできたら、インストーラーのダウンロードwget https://getcomposer.org/installer -O composer-installer.php# ダウンロードしたら、インストールphp composer-installer.php --filename=composer --install-dir=/usr/bin# インストールが完了したら一応実行しとくといい。(バージョン確認用)composer self-updateバージョン表示の確認できればOKです!さてさて、やっと本題のLaravel9のインストールですね!!サクッと行ってみましょう!!## Laraveのインストール(Ver.9)composer create-project "laravel/laravel=9.*" プロジェクト名インストールが終わったらバージョン確認してみましょう。プロジェクトへ移動してphp artisan -V> Laravel Framework 9.1.0バージョン表示されましたか?されてればOKですよ!!!これで、ブラウザから確認してLaravel9の画面が出てればOKです。おめでとうございます!!ここからは、Laravelを使う上で必要になってくるnpmのインストールやSSL(https)をするためにpythonやcertbotのインストールになりますので、ここまでの方はお疲れ様でした〜!!!という事で、どんどん行きましょう!Pythonのインストール。Let's Encrypt(Certbot)を使えるようにする為dnf -y install python39 python-pip augeas-libs# python-pip39とすると私はエラーがでたので、python-pipとしてます。# もしpython-pipのところでエラー出る人はpython-pip39にしてみると良いかもしれません。↑ 終わったら下記実行してCertbot(Let's Encrypt)をインストールします。sudo python3 -m venv /opt/certbotsudo /opt/certbot/bin/pip install --upgrade pipsudo /opt/certbot/bin/pip install certbot certbot-apachesudo ln -s /opt/certbot/bin/certbot /usr/bin/certbotインストールが終わったらバージョン確認してみましょう。# バージョン確認 (表示されればOK) certbot --version続いては、いつも通りhttpsをかける設定です。# 登録・実行certbot certonly --webroot -w /ディレクトリ/public/ -d ドメイン↑はいつも通りのコマンドですね。OSが変わったからと言って、ここのコードが変わるわけではないです!安心安心ここで、apacheの再起動忘れずに続いてnpmのインストールです。# npmのインストール(root権限で)dnf install nodejsインストール終わったらバージョン確認# バージョン確認npm -vバージョンが表示されてたらOKです。お疲れさまでした!!補足ですが。CentOS Stream9から/etc/にあった「hosts.allow」や「hosts.deny」がなくなっています。これはsshの接続を許可するIPを制限するための設定ファイルになるんですが、ものが無い。ならどうすんだ!って思った方。安心してください!履いてますよ!(古!CentOS Stream9からは「sshd_config」で行います。# SSHの接続制限(IP制限) 旧hosts.allow, hosts.denyvi /etc/ssh/sshd_config# sshd_configに下記追加します。AllowUsers username@接続許可IPアドレスusernameのところは、接続したいusernameです@の後ろはIPアドレスになります。ですが、この設定hosts.allowやdenyと違ってIPの制限はされますがパスワードの入力までは見えてしまします。そこで、もしssh自体を制限したい場合は、Firewalldで行う必要があります。Firewalldは色んな設定の仕方がありますので、Firewalld sshなどでGoogle先生に聞いてもらったほうが色々書くより早いと思います。Firewalldでsshの書かれてるところを消して、usernameなどを設定、またIPアドレスなどもそこで設定してれば問題なくhosts.allow, denyの設定のような感じになると思います。どちらにしてもsshd_configの設定は必要ですので、お忘れなく。最後にsshd_configを触ったら再起動しておきましょう。# 設定の反映systemctl restart sshdまだまだ他にも細かい設定などはありますが、そこは省きました。httpdの「ServerTokens」や「ServerSignature」などphp.iniの「expose_php」などなど。今回はとりあえず、LAMP環境構築からLaravelをインストールして、npmやcertbot(Let's Encrypt)の一通りWEBサーバーとして使えるようにする設定のご紹介でした。長かったですが、最後まで読んでいただきありがとうございました。 #CentOS #Stream9 #LAMP #Laravel #Composer #npm #certbot #ssl 2022-02-23