Vagrantで動かすAmazon Linux2(PHP7.3+Xdebug+MySQL5.7)の環境を作る
はじめに
AmazonLinuxをVagrantで実行出来るようにするためには、VirtualBoxのイメージをダウンロードして、cloud init用のCD作成、VMの作成などが必要になりますが、この記事では@shunsuke_takahashiさんの公開されているイメージを利用しています。
通常の手順(途中まで試しました)
Amazon Linux 2 LTSの綺麗なVagrant boxを作ってみた(2.0.20180622.1)
・Macでの作業になります。
・手順の案内を細かく書くというよりはざっくりとしたやり方と各記事へのリンクになっています。
・初めて書いてみたので何か変だったらごめんなさい><;
公開されているAmazonLinux2のイメージを利用する
以下のvagrantファイルを用意してVagrant upを実行
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "stakahashi/amazonlinux2"
config.vm.network "private_network", ip: "192.168.33.10"
end
Virtualbox上でGuesstAdditionをインストールする
このままだと共有フォルダが使えないのでこちらの記事を参考に設定しました。
設定後、仮想マシンを再起動することを忘れないようにします。
インストールしてWindowsとフォルダーを共有させる
Vagrantファィルに共有フォルダを設定
Vagrantfileにconfig.vm.synced_folderを追加して、一度vagrant haltして終了後vagrant upを実行
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "stakahashi/amazonlinux2"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "「ホスト側のフォルダパス」", "「ゲストOS側のフォルダパス」", :mount_options => ['dmode=777', 'fmode=777']
end
(「」内は適宜指定してください。)
PHPをインストール
こちらの記事を参考に「パッケージ更新」から「PHP7.3の起動設定」・「確認」までの作業を行いました。
AmazonLinux2でNginx+PHP7.3をインストールする。ついでにOPcacheとAPCuも
ブラウザで表示できるようにする
以下のdefault.confを/etc/nginx/conf.d/以下に作成しました。
192.168.33.10:10000で動作確認させる設定になります。適宜変更してください。
(Laravelで使っていたものをそのまま利用したので明らかに不要な箇所だけ記事作成時に削除しました。
まだ不要な箇所はあると思います。)
server {
listen *:10000;
server_name localhost;
#Document Root
root ルートフォルダのパス;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
}
その他confファイルを変更
nginx.confのserverの項目を削除
server {
(省略)
}
php.confを削除
php-fpm.confを削除
Xdebugのインストール
インストールの前に以下のパッケージをインストール
sudo yum install git
sudo yum install php-devel
Xdebugのインストールは以下の記事を参考に「Xdebugのインストール」の項目にある
cd /usr/local/srcのコマンドからmake installまでを行いました。
make testは非常に実行に時間がかかりそうだったので、キャンセルしました。
Cent OS 7上でApache/PHP開発環境を構築する
php.iniの設定(Xdebug用)
php.iniの設定については以下の記事を参考に設定を行いました。
VisualStudioCodeのデバッグでどうしてもブレークで止まらない場合 (PHP Xdebug)
VisualStudioCode + Vagrant + XdebugでPHPをリモートデバッグ
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
zend_extension=xdebug.so
[XDebug]
xdebug.dump_undefined = 1
xdebug.remote_enable = 1
;xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
設定後php-fpm とnginxを再起動します。
VisualStudioCodeの設定
先ほどの記事を参考にVisualStudioCodeの設定も行いました。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"stopOnEntry": true,
"log": true,
"pathMappings": {
"サーバ側のパスを書いてください": "${workspaceRoot}"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
workspaceRootはVisualStudioCodeで開いているフォルダになります。
MySQLのインストール
こちらの記事を参考にMariaDBの削除後、MySQL5.7をインストールしました。
【AWS】Amazon Linux2環境にMySQLをインストールしようとしてはまった
MySQLのパスワードについて
こちらの記事を参考に以下のコマンドを実行してパスワードを確認しました。
MySQL5.7インストール後にrootでログインする方法
cat /var/log/mysqld.log | grep root@localhost
以上になります。
試行錯誤しながら試していたので意外と時間がかかりました。
最後まで読んで頂いてありがとうございます。
Author And Source
この問題について(Vagrantで動かすAmazon Linux2(PHP7.3+Xdebug+MySQL5.7)の環境を作る), 我々は、より多くの情報をここで見つけました https://qiita.com/shinkawax/items/c5621271b08f36f6c39a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .