なんか毎度ググるからメモ.
sudo su - user <<EOF pwd echo "hoge hoge" ls -al EOF
なんか毎度ググるからメモ.
sudo su - user <<EOF pwd echo "hoge hoge" ls -al EOF
なんかチョットハマったので.
<input type="date" id="due_date">
に対してこうやりたいんだけど, どうもうまくいかない.
->type('#due_date', '2020-01-01')
調べるとこうやるらしい.
->keys('#due_date', '2020', '{tab}', '01', '01')
微妙に面倒.
パスワードのハッシュを確認するメソッドを毎回忘れる.
// Hashファサードがいるよね use Illuminate\Support\Facades\Hash; // 普通の項目は以下でテストできる $this->assertDatabaseHas('users', [ 'name' => '更新した名前', 'email' => '更新したメールアドレス', ]); // パスワードの確認はHash::checkを使う $registed_user = User::where('email', '更新したメールアドレス')->first(); $this->assertTrue(Hash::check('期待されるパスワード', $registed_user->password));
なんか毎回ググってる気がするからメモっとく.
場合によっちゃDuskTestCase.phpに入れてもいいかもしれない.
public function setUp(): void { parent::setUp(); // 毎回ログアウトするためクッキーを消す foreach (static::$browsers as $browser) { $browser->driver->manage()->deleteAllCookies(); } }
忘れるし.
vagrantで構築する時の.
ユーザはvagrantで.
provisioning.shとか作れって話だけど.
sudo yum reinstall -y glibc glibc-common
sudo localectl set-locale LANG=ja_JP.utf8 sudo timedatectl set-timezone Asia/Tokyo
有効のままの設定方法知りたい.
SELinuxはポリシーでいつもハマる.わからん.
sudo sed -i".org" -e "s/^SELINUX=enforcing$/SELINUX=disabled/g" /etc/selinux/config
VMを再起動する.
sudo yum -y update
sudo yum -y install git
sudo yum -y install unzip
適当にその時のLTSを使う.
curl -sL https://rpm.nodesource.com/setup_12.x > node_setup.sh chmod +x node_setup.sh sudo ./node_setup.sh sudo yum -y install nodejs
sudo yum -y install postgresql-server sudo postgresql-setup initdb sudo systemctl enable postgresql.service sudo systemctl start postgresql.service sudo vi /var/lib/pgsql/data/pg_hba.conf
以下のように変更.
# IPv4 local connections: #host all all 127.0.0.1/32 ident host all all 127.0.0.1/32 password host all all all password # ローカル開発環境だしこれでいいでしょ
他ホストから接続を許可する.
sudo vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
再起動する.
sudo systemctl restart postgresql.service
sudo yum -y install httpd sudo systemctl enable httpd sudo systemctl start httpd
remiレポで入れた.
sudo yum install epel-release -y sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm sudo yum install --enablerepo=remi,remi-php74 -y php php-cli php-common php-bcmath php-ctype php-json php-mbstring php-openssl php-pdo php-tokenizer php-xml php-pdo_pgsql composer
postgresユーザの有効化.
sudo passwd postgres
ロールを作成.
su - postgres psql > CREATE ROLE app WITH LOGIN PASSWORD 'app'; > CREATE ROLE app_test WITH LOGIN PASSWORD 'app_test';
データベースを作成.
> CREATE DATABASE app OWNER = app TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8'; > GRANT ALL ON DATABASE app TO app; > CREATE DATABASE app_test OWNER = app_test TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8'; > GRANT ALL ON DATABASE app_test TO app_test;
cd ~ git clone [URL] app
sudo mkdir /var/www/app sudo ln -s /home/vagrant/app/public /var/www/app/public
# homeの権限を変更 sudo chmod 750 /home/vagrant # apacheグループに追加 sudo usermod -a -G apache vagrant # ファイルとディレクトリをapacheグループに変更 sudo chown vagrant:apache /home/vagrant sudo chown -R vagrant:apache ~/app # 念のためパーミッションをきれいにしておく sudo find ~/app -type f -exec chmod 644 {} \; sudo find ~/app -type d -exec chmod 755 {} \; sudo chgrp -R apache ~/app/storage ~/app/bootstrap/cache sudo chmod -R ug+rwx ~/app/storage ~/app/bootstrap/cache # SGIDの設定 # 新規作成のファイルとディレクトリは現在のディレクトリグループ(apache)に固定 find ~/app -type d -exec chmod g+s {} \; find ~/app/bootstrap/cache -type d -exec chmod g+s {} \; # storageとbootstrap/cacheで作成されるファイル、ディレクトリ # にはグループへ全てのパーミッションを与える sudo setfacl -R -d -m g::rwx ~/app/storage sudo setfacl -R -d -m g::rwx ~/app/bootstrap/cache
cd ~/app composer install npm install
.envと.env.testingを作成する. その後以下の初期化コマンド実行.
cd ~/app php artisan key:generate php artisan key:generate --env=testing php artisan storage:link
npm run dev
php artisan migrate --seed
/etc/httpd/conf/httpd.conf へ以下を追記
# 以下を変更 #DocumentRoot "/var/www/html" DocumentRoot "/var/www/app/public" # 以下を追記 <Directory "/var/www/app/public/"> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny Allow from all </Directory>
sudo systemctl restart httpd
sudo yum install -y supervisor
キュー使わないならいらんけど.
sudo vi /etc/supervisor.d/laravel.ini
こんな感じでそれっぽく.
[program:laravel-worker] process_name=%(program_name)s_%(process_num)01d command=php /home/vagrant/app/artisan queue:work --sleep=3 --daemon autostart=true autorestart=true user=root numprocs=1 redirect_stderr=true stdout_logfile=/home/vagrant/app/storage/laravel_worker.log stderr_logfile=/home/vagrant/app/storage/laravel_error.log
スケジュール使わないならいらんけど.
crontab -e * * * * * cd /home/vagrant/app/ && php artisan schedule:run >> /dev/null 2>&1
こんなエラーが出た.
Symfony\Component\Debug\Exception\FatalThrowableError : Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
doctrine/dbalを入れれば良いという情報はたくさん見つかるのだが, Laravel6だとうまく動かなかった.
どうもdoctrine/dbalのメジャーバージョンは3.*で, Laravel6はこれに対応していないらしい.
というわけでバージョン指定して入れれば解決した.
$ composer require doctrine/dbal:2.*
こんな感じで「-c」オプションを使えばよいらしい.(--cleanの別名っぽい)
「--if-exists」を使うとその名の通り「if exists」を付けてくれてより良い感じ.
pg_dump -c --if-exists db名 > dump.sql