古典的なapache2でのphpデプロイ作業メモ
DNS
まずAレコードを設定する、やっぱり。これは最近は私はroute53でやっている。
certbot
いずれにせよ成功すると /etc/letsencrypt/live 以下に証明書が配置される。lapache2の場合は放っておいても証明書が更新されるとreloadされると思う。
virtualhostの更新
debianの場合 /etc/apache2/sites-available/
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/example/public/
<Directory /var/www/example/public/>
AllowOverride all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
</IfModule>
AllowOverride all が気になるとかまあ細かいチューニングは後程行うか
とりあえずこの例だたお /var/www/example にソースツリーを展開すること
ソースのclone
とりあえずrootでやっている
-rw-r--r-- 1 root root 500 Oct 12 12:33 README.md
drwxr-xr-x 10 root root 4096 Oct 12 12:33 app
-rwxr-xr-x 1 root root 1686 Oct 12 12:33 artisan
drwxr-xr-x 3 root root 4096 Oct 12 12:33 bootstrap
-rw-r--r-- 1 root root 2230 Oct 12 12:33 composer.json
-rw-r--r-- 1 root root 342981 Oct 12 12:33 composer.lock
drwxr-xr-x 2 root root 4096 Oct 12 12:33 config
drwxr-xr-x 5 root root 4096 Oct 12 12:33 database
-rw-r--r-- 1 root root 1989 Oct 12 12:33 docker-compose.yml
-rw-r--r-- 1 root root 169 Oct 12 12:33 jsconfig.json
drwxr-xr-x 4 root root 4096 Oct 12 12:33 lang
-rw-r--r-- 1 root root 190066 Oct 12 12:33 package-lock.json
-rw-r--r-- 1 root root 1107 Oct 12 12:33 package.json
-rw-r--r-- 1 root root 1014 Oct 12 12:33 phpunit.xml
-rw-r--r-- 1 root root 93 Oct 12 12:33 postcss.config.js
drwxr-xr-x 2 root root 4096 Oct 12 12:33 public
drwxr-xr-x 5 root root 4096 Oct 12 12:33 resources
drwxr-xr-x 2 root root 4096 Oct 12 12:33 routes
drwxr-xr-x 5 root root 4096 Oct 12 12:33 storage
-rw-r--r-- 1 root root 576 Oct 12 12:33 tailwind.config.js
drwxr-xr-x 4 root root 4096 Oct 12 12:33 tests
-rw-r--r-- 1 root root 437 Oct 12 12:33 vite.config.js
ただ、これだとよくない。deploy専用ユーザーを作成するとよい。ここではdeployerとかいう名前で作っている。appとかwebappとか何でもいい
# chown deployer:deployer . -R
# ls -l
total 604
-rw-r--r-- 1 deployer deployer 500 Oct 12 12:33 README.md
drwxr-xr-x 10 deployer deployer 4096 Oct 12 12:33 app
-rwxr-xr-x 1 deployer deployer 1686 Oct 12 12:33 artisan
drwxr-xr-x 3 deployer deployer 4096 Oct 12 12:33 bootstrap
-rw-r--r-- 1 deployer deployer 2230 Oct 12 12:33 composer.json
-rw-r--r-- 1 deployer deployer 342981 Oct 12 12:33 composer.lock
drwxr-xr-x 2 deployer deployer 4096 Oct 12 12:33 config
drwxr-xr-x 5 deployer deployer 4096 Oct 12 12:33 database
-rw-r--r-- 1 deployer deployer 1989 Oct 12 12:33 docker-compose.yml
-rw-r--r-- 1 deployer deployer 169 Oct 12 12:33 jsconfig.json
drwxr-xr-x 4 deployer deployer 4096 Oct 12 12:33 lang
-rw-r--r-- 1 deployer deployer 190066 Oct 12 12:33 package-lock.json
-rw-r--r-- 1 deployer deployer 1107 Oct 12 12:33 package.json
-rw-r--r-- 1 deployer deployer 1014 Oct 12 12:33 phpunit.xml
-rw-r--r-- 1 deployer deployer 93 Oct 12 12:33 postcss.config.js
drwxr-xr-x 2 deployer deployer 4096 Oct 12 12:33 public
drwxr-xr-x 5 deployer deployer 4096 Oct 12 12:33 resources
drwxr-xr-x 2 deployer deployer 4096 Oct 12 12:33 routes
drwxr-xr-x 5 deployer deployer 4096 Oct 12 12:33 storage
-rw-r--r-- 1 deployer deployer 576 Oct 12 12:33 tailwind.config.js
drwxr-xr-x 4 deployer deployer 4096 Oct 12 12:33 tests
-rw-r--r-- 1 deployer deployer 437 Oct 12 12:33 vite.config.js
当該ユーザーにswitchしてもろもろinstall
まあここではdeployerである。switchしてcomposer
# su - deployer
$ composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 127 installs, 0 updates, 0 removals
- Downloading symfony/var-dumper (v6.3.5)
- Downloading symfony/routing (v6.3.5)
- Downloading symfony/mime (v6.3.5)
- Downloading egulias/email-validator (4.0.2)
npm install
$ npm install
[#########.........] \ reify:ansi-regex: timing reifyNode:node_
key:gen
$ cp .env.example .env
$ php artisan key:generate
INFO Application key set successfully.
ログとかはwww-dataが書けないといけない
以下はdelpoyerがwww-dataグループに入ってる想定だが、まあまあ緩い。厳密にやるにはlinux aclを使ってください
# chown www-data storage/ bootstrap/cache/ -R
# chmod g+rxws storage/ -R
DB設定を.envに書いて接続する。mysqlのDB作成は調べて!
$ php artisan migrate --seed
フロントエンド
>Vite manifest not found
など言われてくるので
$ npm run build
この記事が気に入ったらサポートをしてみませんか?