古典的な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


この記事が気に入ったらサポートをしてみませんか?