ISUCON10の素振り時に使ったあんちょこ
参考実装をPHPに切り替える
code:sh
sudo systemctl stop isuumo.go.service
sudo systemctl disable isuumo.go.service
sudo systemctl start isuumo.php.service
sudo systemctl enable isuumo.php.service
sudo unlink /etc/nginx/sites-enabled/isuumo.conf
sudo ln -s /etc/nginx/sites-available/isuumo.php.conf /etc/nginx/sites-enabled/isuumo.php.conf
sudo systemctl restart nginx
Gitの初期設定
code:sh
git config --global user.name takoba
git config --global user.email plane25@gmail.com
git config --global core.editor 'vim -c "set fenc=utf-8"'
git config --global alias.st status
git config --global alias.co checkout
nginxのconfファイルをGit管理する
code:sh
mkdir -p ~/isuumo/webapp/nginx/site-available/
sudo cp /etc/nginx/sites-available/isuumo.php.conf ~/isuumo/webapp/nginx/site-available/isuumo.php.conf
sudo ln -s ~/isuumo/webapp/nginx/site-available/isuumo.php.conf /etc/nginx/sites-available/isuumo.php.conf
mkdir -p ~/isuumo/webapp/nginx/
sudo cp /etc/nginx/nginx.conf ~/isuumo/webapp/nginx/nginx.conf
sudo ln -s ~/isuumo/webapp/nginx/nginx.conf /etc/nginx/nginx.conf
MySQLのconfファイルをGit管理する
code:sh
mkdir -p ~/isuumo/webapp/mysql/mysql.conf.d
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf ~/isuumo/webapp/mysql/mysql.conf.d/mysqld.cnf
sudo ln -s ~/isuumo/webapp/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
MySQLのslowlogを出力する
code:sh
cat <<EOF > ~/isuumo/webapp/mysql/mysql.conf.d/slowlog.cnf
slow_query_log
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
EOF
sudo ln -sf ~/isuumo/webapp/mysql/mysql.conf.d/slowlog.cnf /etc/mysql/mysql.conf.d/slowlog.cnf
削除は以下
code:sh
sudo rm /etc/mysql/mysql.conf.d/slowlog.cnf
別のホストサーバからMySQLにアクセスできるようにする
code:sql
GRANT ALL PRIVILEGES ON *.* TO isucon@"%" IDENTIFIED BY '__PASSWORD__' WITH GRANT OPTION;
あとbind-serverを 0.0.0.0 に書き換える
php-fpmの疎通確認
code:sh
apt-get update && apt-get install -y libfcgi0ldbl
code:sh
SCRIPT_NAME=index.php \
SCRIPT_FILENAME=/php/public/index.php \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:8080
psコマンドを入れる
code:sh
apt-get update && apt-get install -y procps
logrotate
以下のようにdeploy時にrogrotateする
application log
nginx log
mysql slowlog
code:bash
cp /home/isucon/isuumo/webapp/php/app/var/log/app.log /home/isucon/isuumo/webapp/php/app/var/log/app.log-date "+%s"
truncate --size 0 /home/isucon/isuumo/webapp/php/app/var/log/app.log