
環境構築スクリプトはBuilreeに生まれ変わりました
今まで環境構築スクリプトとして公開していたスクリプトは、新しくBuilree(ビルドリー) として生まれ変わりました。是非活用してください
CentOS7専用になりますが環境構築スクリプトを当サイト・github上にて公開してます。よければ是非使ってみてください。
環境構築スクリプトって何?
さくらのクラウド、VPS、ConohaのVPSなどにはスタートアップスクリプトが用意されておりますが、それと似た感じのものです。スターアップスクリプトは最初の公開時にスクリプトを読み込んで作りますが、このスクリプトはちょっと違います。
centos7 minimal インストールした状態で実行
- このスクリプトはCentOS7をインストールした状態で使ってください。(VPS、クラウドなどはcentos7 minimalなので使えます)
- 使用方法はrootもしくはsudo権限ユーザーでシェルの実行をしてください。
- 使用後はシェルスクリプトを削除してください。
- 内容は全てyumで普段やっている事をシェルで実行しているだけになります。
- インストール後初回のみ実行してください。
- Apacheなど何もインストールされていない状態で行ってください。
一部ファイルですが、ユーザーcentosというのを自動で作成します。その後ドキュメントルートの所有者もrootではなくcentosとなります。パスワードはランダム生成となっています。
コード解説
githubにて上がっているapache_php.shというファイルを元に簡単に解説します。
35行目からがプログラムコード
1行目から34行目まではコメントやプログラムの準備となります。
必要なソフトのインストール
PHPをインストールしたり、他のパッケージをインストールするのに必要なremiリポジトリや、gitをインストールしてます。
04 | yum -y install yum-utils |
これらはyumでインストールしています。その後アップデートで最新版にしています。
67行目からapacheのインストールと設定
3 | yum -y install openldap-devel expat-devel |
4 | yum -y install httpd-devel mod_ssl |
ここでapacheのインストールをしています。SSLもインストールしています。
1 | sed -i -e "151d" /etc/httpd/conf/httpd.conf |
2 | sed -i -e "151i AllowOverride All" /etc/httpd/conf/httpd.conf |
3 | sed -i -e "350i #バージョン非表示" /etc/httpd/conf/httpd.conf |
4 | sed -i -e "351i ServerTokens ProductOnly" /etc/httpd/conf/httpd.conf |
5 | sed -i -e "352i ServerSignature off \n" /etc/httpd/conf/httpd.conf |
ここでApacheのファイルを修正しています。htaccessを使えるようにしたり、バージョンを非表示にするようにしてます。
99行目でgzip圧縮の設定
2 | cat >/etc/httpd/conf.d/gzip.conf << 'EOF' |
4 | BrowserMatch ^Mozilla/4 gzip-only-text/html |
5 | BrowserMatch ^Mozilla/4\.0[678] no-gzip |
6 | BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html |
7 | SetEnvIfNoCase Request_URI\.(?:gif|jpe?g|png)$ no-gzip dont-vary |
8 | Header append Vary User-Agent env=!dont-var |
これはgzip圧縮の設定ファイルを作成して、います。
109行目からPHPの選択j
1 | ITEM_LIST= "PHP7.2 PHP7.3 PHP7.4" |
インストールするPHPのバージョンを聞くために、事前にリスト登録をしています。
01 | select selection in $ITEM_LIST |
03 | if [ $selection = "PHP7.2" ]; then |
06 | if 文を使って条件分岐しています。キーボードの数値キーを入力することで、PHPの7.2から7.4のどれかをインストールできます。 |
11 | 157行目からはPHPの設定をしています。デフォルトでバージョンが表示されているので |
13 | echo "sed -i -e s|expose_php = On|expose_php = Off| /etc/php.ini" |
でバージョンを非表示にしています。タイムゾーンの設定をしたりしています。167行目からはphpinfoのファイルを作成しています。
ユーザーの作成
PHPの設定が終わったら今度はユーザーの作成をしています。174行目~193行目までユーザーの作成をしたり、所有者の変更をしています
03 | echo "centosユーザーを作成します" |
05 | PASSWORD=$(more /dev/urandom | tr -d -c '[:alnum:]' | fold -w 10 | head -1) |
07 | useradd -m -G apache -s /bin/bash "${USERNAME}" |
08 | echo "${PASSWORD}" | passwd --stdin "${USERNAME}" |
09 | echo "パスワードは" ${PASSWORD} "です。" |
18 | echo "ドキュメントルートの所有者をcentos、グループをapacheにします" |
19 | chown -R centos:apache /var/www/html |
パスワードはランダムで10桁となっています
このように、基本的にyumでインストールしたりしています。
必要なファイルは全て自動化
スタートアップスクリプト
- htaccessの設定を別途必要
- gzipの設定が別途必要
- HTTP2は別途必要
- スクリプトによってはCentOS標準バージョンとなる
- スタートアップスクリプト対応が少ない
- Apache、nginx、PHPのバージョンは非表示
環境構築スクリプト
- htaccessの設定済み
- gzip圧縮設定済み
- HTTP2対応済み
- リバースプロキシ対応(nginxのみ)
- node.js対応
- Python対応
- Ruby対応
- HHVM対応
- centosユーザー作成。umaskは0002
- LAMP環境あり
- LEMP環境あり
- フレームワーク対応
- docker対応
- Go言語対応
となっています。スタートアップスクリプトとは違い、開発環境や本番環境ですぐに使える状態となっています。
テスト環境
- conohaのVPS
- さくらのVPS
- さくらのクラウド(さくらのクラウドは事前にwgetのインストールが必要となります)
にて現在テストをして動く事を確認しております。
配布スクリプト
現在配布スクリプトは以下の様になってます。
サイト名、ユーザー名とパスワードを決めるだけで使う事ができます
- htaccess(Apacheのみ)
- gzip
- ※HTTP2通信
- リバースプロキシ(nginxのみ)
HTTP2通信に関しては別途confファイルに記述が必要ですが、Apacheの設定としては終わっている形になります。nginxはそのまま設定済みなので使えます
- デフォルトのパスワード期限無効化(MySQLのみ)
- slowクエリー有効化
- Apache2.4+PHP7.2+MariaDB10.3(モジュール版とFastCGI版)
- Apache2.4+PHP7.3+MariaDB10.3(モジュール版とFastCGI版)
- Apache2.4+PHP7.2+MySQL5.7(モジュール版)
- Apache2.4+PHP7.3+MySQL5.7(モジュール版)
- Apache2.4+PHP7.2+MySQL8.0(モジュール版)
- nginx+PHP7.2+MariaDB10.3(FastCGI版)
- nginx+PHP7.3+MariaDB10.3(FastCGI版)
- nginx+PHP7.2+MySQL5.7(FastCGI版)
- nginx+PHP7.3+MySQL5.7(FastCGI版)
- nginx+PHP7.2+MySQL8.0(FastCGI版)
- bottle(Apache)
- Feurlphp(Apache)
- Laravel(Apache)
language
ダウンロード方法
スクリプトは単一ファイルになります。
配布スクリプトの種類
現在配布しているスクリプトは以下になります
- apache2.4.6のインストール
- apache2.4.xのインストール
- nginxのインストール
- nginx+apache
- nginx+apache+php7.2
- nginx+php7.xのインストール
- nginx+php7.x+MaraDBのインストール
- nodejsのインストール
- apache2.4.6+hhvmのインストール
- apache2.4.6+php7.xのインストール
- apache2.4.6+python3.6.7のインストール
- MariaDB10.2のインストール
- MariaDB10.3のインストール
- MySQL5.7のインストール
- MySQL8のインストール
- apache2.4+php7.x+MariaDB10.3のインストール
- apache2.4+php7.x+MySQL5or8のインストール
- Go言語のインストール
wgetでインストール
wgetの場合は以下のコマンドをコピー&ペーストしてください
※実行はroot又はsudo権限ユーザーになります
WordPress
2 | wget https://www.logw.jp/download/shell/wp_apache24u_php72_mariadb103.sh |
6 | wget https://www.logw.jp/download/shell/wp_apache24u_php_mariadb103.sh |
フレームワーク
02 | wget https://www.logw.jp/download/shell/apache_pyenv_bottle.sh |
05 | wget https://www.logw.jp/download/shell/apache24u_fuelphp72_mariadb103.sh |
08 | wget https://www.logw.jp/download/shell/apache24u_fuelphp72_mysql57.sh |
11 | wget https://www.logw.jp/download/shell/apache24u_fuelphp73_mariadb103.sh |
14 | wget https://www.logw.jp/download/shell/apache24u_fuelphp73_mysql57.sh |
17 | wget https://www.logw.jp/download/shell/apache_fuelphp72_mariadb103.sh |
20 | wget https://www.logw.jp/download/shell/apache_fuelphp_mysql.sh |
21 | ※PHPとMySQLを選んでインストールします |
25 | wget https://www.logw.jp/download/shell/apache_fuelphp73_mariadb103.sh |
28 | wget https://www.logw.jp/download/shell/apache_laravel72_mariadb103.sh |
31 | wget https://www.logw.jp/download/shell/apache_laravel72_mysql57.sh |
34 | wget https://www.logw.jp/download/shell/apache_laravel72_mysql80.sh |
37 | wget https://www.logw.jp/download/shell/apache24u_laravel73_mariadb103.sh |
40 | wget https://www.logw.jp/download/shell/apache_laravel73_mariadb103.sh |
43 | wget https://www.logw.jp/download/shell/nginx_laravel72_mariadb103_drn.sh |
46 | wget https://www.logw.jp/download/shell/nginx_laravel73_mariadb103_drn.sh |
Apache
02 | wget https://www.logw.jp/download/shell/apache.sh |
05 | wget https://www.logw.jp/download/shell/apache_hhvm.sh |
08 | wget https://www.logw.jp/download/shell/apache_php.sh |
09 | ※このスクリプトはPHPのインストールしたいバージョンを聞かれます |
12 | wget https://www.logw.jp/download/shell/apache_php_fcgid.sh |
13 | ※このスクリプトはPHPのインストールしたいバージョンを聞かれます |
16 | wget https://www.logw.jp/download/shell/apache_pyenv.sh |
19 | wget https://www.logw.jp/download/shell/apache_rbenv.sh |
22 | wget https://www.logw.jp/download/shell/apache24u.sh |
25 | wget https://www.logw.jp/download/shell/apache24u_hhvm.sh |
28 | wget https://www.logw.jp/download/shell/apache24u_php.sh |
29 | ※このスクリプトはPHPのインストールしたいバージョンを聞かれます |
32 | wget https://www.logw.jp/download/shell/apache24u_php_fcgid.sh |
33 | ※このスクリプトはPHPのインストールしたいバージョンを聞かれます |
nginx
02 | wget https://www.logw.jp/download/shell/nginx.sh |
05 | wget https://www.logw.jp/download/shell/nginx_apache.sh |
08 | wget https://www.logw.jp/download/shell/nginx_php.sh |
09 | ※PHPとMySQLのバージョンを選ぶタイプです |
12 | wget https://www.logw.jp/download/shell/nginx_apache_php72.sh |
15 | wget https://www.logw.jp/download/shell/nginx_php72_socket.sh |
18 | wget https://www.logw.jp/download/shell/nginx_php73_socket.sh |
21 | wget https://www.logw.jp/download/shell/nginx_php74_socket.sh |
24 | wget https://www.logw.jp/download/shell/nginx_nodejs.sh |
27 | wget https://www.logw.jp/download/shell/nginx_ndenv.sh |
30 | wget https://www.logw.jp/download/shell/nginx_go.sh |
33 | wget https://www.logw.jp/download/shell/nginx_goenv.sh |
Database
02 | wget https://www.logw.jp/download/shell/mariadb103.sh |
05 | wget https://www.logw.jp/download/shell/mariadb104.sh |
08 | wget https://www.logw.jp/download/shell/mysql57.sh |
11 | wget https://www.logw.jp/download/shell/mysql8.sh |
LAMP
02 | wget https://www.logw.jp/download/shell/apache_php_mysql.sh |
03 | ※PHPとMySQLのバージョンを選ぶタイプです |
06 | wget https://www.logw.jp/download/shell/apache_php_mariadb.sh |
07 | ※PHPとMySQLのバージョンを選ぶタイプです |
10 | wget https://www.logw.jp/download/shell/apache_php_fcgid_mariadb.sh |
11 | ※PHPとMySQLのバージョンを選ぶタイプです |
15 | wget https://www.logw.jp/download/shell/apache24u_php_mysql.sh |
16 | ※PHPとMySQLのバージョンを選ぶタイプです |
19 | wget https://www.logw.jp/download/shell/apache24u_php_mariadb.sh |
20 | ※PHPとMySQLのバージョンを選ぶタイプです |
LEMP
02 | wget https://www.logw.jp/download/shell/nginx_php_mariadb103_drn.sh |
06 | wget https://www.logw.jp/download/shell/nginx_php72_mysql57_drn.sh |
09 | wget https://www.logw.jp/download/shell/nginx_php73_mysql57_drn.sh |
12 | wget https://www.logw.jp/download/shell/nginx_php73_mysql80_drn.sh |
language
2 | wget https://www.logw.jp/download/shell/go_latest.sh |
5 | wget https://www.logw.jp/download/shell/python.sh |
docker
2 | wget https://www.logw.jp/download/shell/docker_hhvm.sh |
5 | wget https://www.logw.jp/download/shell/docker_apache_php72_mariadb103.sh |
デモ動画
実際にインストールした画面を動画撮影してみました
Laravelのインストール
Python-bottleのインストール
実際にテストしてみたいという場合
conohaのテスト環境があるので、それを貸すので使ってみてください。問い合わせより連絡してください。
感想を聞かせてください
もし使ってみて上手くいった、いかなかったなどありましたら#環境構築スクリプトでつぶやくか問い合わせをしていただけると嬉しいです。
docker image対応
Docker imageはDockerイメージを配布していますにて配布しております
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS