環境・条件など
- EC2インスタンス生成済み
- MobaXtermを利用して、インスタンスにSSH接続ができていること
- EC2インスタンスタイプ↓
- EC2インスタンス設定でセキュリティグループに、HTTPとHTTPSのポート追加済み
- Windows
- Githubのプライベートリポジトリに作成物(動的プロジェクト)をプッシュ済み
- 作成物で利用(CodeIgniter3で作成したプロジェクト)
実行したい作成物がPHPなので、PHP7.4を入れる
sudo amazon-linux-extras install -y php7.4
php -v #インストールできたか確認
MariaDBインストール
sudo yum install -y mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl is-enabled mariadb #enabled であればOK!
sudo mysql_secure_installation #実行後、すべてYでOK
mysql -u root -p #ログインできればOK。exitと打つことででbyeできる
Apacheインストール
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl is-enabled httpd #enabled であればOK!
#apacheのグループに<SSH接続しているユーザ名>を追加
sudo usermod -aG apache <SSH接続しているユーザ名>
#もしルートログインしている状態であれば、
exit #これでログアウトできる
#<SSH接続しているユーザ名>でログインしている状態で
groups #apacheが追加されていたからOK!
#もしグループに追加されていなければ、
sudo systemctl restart httpd #このコマンド実行後に再度グループを確認してみる
#対象のディレクトとコンテンツをapache所有にする
sudo chown -R apache:apache /var/www
#グループの書き込み権限変更
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
#/var/www およびそのサブディレクトリのファイル許可を繰り返し変更してグループの書き込み許可を追加します。
find /var/www -type f -exec sudo chmod 0664 {} \;
#ここまでできたらパブリックIPアドレスをブラウザに入れ、
#Apacheのテスト画面が表示されるか確認する!表示されたらOK!
phpMyAdminインストール
sudo yum install php-mbstring php-xml -y
sudo systemctl restart httpd
sudo systemctl restart php-fpm
cd /var/www/html #ディレクトリを移動
sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
sudo mkdir phpMyAdmin #ディレクトリ内にファイル作成
#作ったファイル内にパッケージを展開
sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
#インストしたパッケージを削除
sudo rm phpMyAdmin-latest-all-languages.tar.gz
- 「パブリックIPアドレス/phpMyAdmin」 にブラウザでアクセスして画面表示を確認!
- phpMyAdminのログインはid:root,パスワード:設定したパスワード
- ログイン完了したらphpMyAdmin内でユーザを作成しておくこと!
Gitインストール
sudo yum install git
git version #インストールできたか確認
httpd.confを編集して、ファイルのアクセス権限を変更
この設定をすることで、apacheがプロジェクト直下以外のファイルへアクセスができるようになります
sudo vim /etc/httpd/conf/httpd.conf #設定ファイルを編集する
ファイル内で、
「#Further relax access to the document default root ~」と記載のある、「Allowoverride」をnone→Allにする
「i」を押下で、INSERTモード切替→INSERTモードでファイルに書き込みできる
「esc」を押下で、INSERTモードなどの解除ができる
非INSERTモードにて↓
- 「:wq!」 + 「Enter」→編集内容保存
- 「/ 検索したい文言」 + 「Enter」 →ファイル内で該当箇所を検索。「N」を押下で次の検索結果
Githubからプロジェクトをクローンする
条件
- PersonalAccessToken取得済み
cd /var/www/html #ディレクトリ移動
git clone https://(GithubアカウントID):(PersonalAccessToken)@(リモートリポジトリHTTPSのCode)
クローン後のpullについて
※gitpull時にpermission deniedエラーが発生した際、権限を持っているユーザでpullを行うこと
特定のユーザのSSH接続を禁止する
「ec2-userでSSH接続していたが、禁止したい!」ってときに使えます
sudo echo "DenyUsers ec2-user" >> /etc/ssh/sshd_config
sudo systemctl restart sshd
ec2-userで再度SSH接続をしてみる
できなければ設定完了!
Apacheのホーム画面(初期表示)を非表示にするための設定
cd /etc/httpd/conf.d/
mv welcome.conf welcome.conf.org
apache再起動して、画面表示確認
403エラーページを表示したいページにする方法
対象ディレクトリに「.htaccess」ファイルを作成。
その中で下記例のように記載する
例(対象ディレクトリが/var/www/html/projectであるとき)
ErrorDocument 403 /project/<表示したいファイル名>
と記載すると403エラーページが、<表示したいファイル名>ページに変わる
phpMyAdminへ特定のIPアドレスからのみアクセスを許可する
phpMyAdminが誰でもアクセスできたら大変です
/etc/httpd/conf.d/phpMyAdmin.confがあるときは↓
設定ファイルがないときは、/var/www/html/phpMyAdminディレクトリにて、.htaccessファイルを作成し下記入力
vi .htaccess #ファイル作成or編集コマンド
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ここに指定したいIPアドレス入力
Require ip ::1
</RequireAny>
</IfModule>
保存して設定完了。
指定したIPアドレスと、指定していないIPアドレスからアクセス可否確認
エラーが発生した時に行ったことなど
ファイルのアップロードがEC2環境でうまくできない
php.iniでuploadのサイズ制限を変更しまししょう
参考URL↓