Laravel 7 ã䜿çšããŠããŒããã©ãªãªãäœæããããšã«ããŸãããã¡ã€ã³ ããŒãžãã©ã³ãã£ã³ã° ããŒãžãšããããã«ãããã¹ãŠã®æ å ±ã管çããã«ã䜿çšããŠå€æŽã§ããããã«ããŸãã èŠç¹ã§ã¯ãããŸããã å°å ¥ã«è³ããŸããã ããããåé¡ãæ±ããæ¬æ ŒçãªãµãŒããŒã§ãããè¡ãæ¹æ³ã«ã€ããŠãããã€ãã®åªãããã¥ãŒããªã¢ã«ãèŠã€ããŸããã ç§ã¯ãããã€ã¡ã³ããããŸãåŸæã§ã¯ãªããéåžžã¯ãã«ã¹ã¿ãã¯ãããããã³ãã«ããŸãã ãããŠããŸã PHP ã§æžããŠãã¹ãã§ããã®ã§ããã°ããµãŒããŒã管çããåãªã©ã«ã ç§ã¯ãŸã æé·ããŠããŸããã ããããç§ã¯ãããç解ããå¿ èŠããããŸããã
次ã«ãSSH çµç±ã®èµ·åããäœæ¥ãµã€ãã§çµãããŸã§ã®ãã¹ãŠã®æé ã説æããŸãã ç§ãã¡ã¯ããããèœãšãç©Žãé¿ããããåªããŸãã
åæ§ã®æé ããªã³ã©ã€ã³ã§èŠã€ããããšãã§ããå ŽåããããŸãã ãã£ã±ãããã£ãšèŠã€ããŸããã 確ãã«ãäžãæã§ã¯ãªããStackOverflow ã®å©ãããªããã°ããã·ã¢èªã§ã¯ãããŸããã èŠãã¿ãŸããã ã ããããç§ã¯ããªãã®ç掻ãç°¡çŽ åããããšã«ããŸããã
DigitalOcean äžã®ããããã¬ããã§ãã¹ãŠãå®è¡ããŸãã ãã¡ãããããã¯å¿
é ã§ã¯ãããŸãããä»»æã®ãã¹ãã£ã³ã°ãéžæããŠãã ããã Ubuntu ã§åäœãããµãŒããŒã«å°éããããæ»ã£ãŠããŸãã ããã§ã DigitalOcean ã§è¡ãããšã«æ±ºãã人ã®ããã«ããã¡ã€ã³ã®èšå®ã«é¢ãããã³ããããã«æäŸãããŸãã ãããŠ
DigitalOcean åºæã®ãã¹ãŠã®æé ã¯ã次ã®ãããªè泚ã«èšèŒãããŠããŸãã
å§ããŸãããã
TL;DR (åºæ¬ã³ãã³ãã®ã¿)
ãŠãŒã¶ãŒãäœæãã
ssh root@[IP-аЎÑÐµÑ Ð²Ð°ÑегП ÐŽÑПплеÑа]
adduser laravel
usermod -aG sudo laravel
su laravel
ããã«SSHãè¿œå ããŸã
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
- å ¬éããŒãæ¿å ¥ããŸã
chmod 600 ~/.ssh/authorized_keys
ãã¡ã€ã¢ãŠã©ãŒã«
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
nginx
sudo apt update
sudo apt install -y nginx
sudo ufw allow 'Nginx HTTP'
sudo ufw status
MySQL
sudo apt install -y mysql-server
sudo mysql_secure_installation
,NYNNY
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<ÐÐ°Ñ Ð¿Ð°ÑÐŸÐ»Ñ ÐŽÐ»Ñ MySQL>';
SELECT user,authentication_string,plugin,host FROM mysql.user;
FLUSH PRIVILEGES;
exit
PHP
-
sudo apt update
-
sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https
-
sudo apt-add-repository ppa:ondrej/php
-
sudo apt update
-
7.3ïŒ
sudo apt install -y php7.3-fpm php7.3-mysql
-
7.4ïŒ
sudo apt install -y php7.4-fpm php7.4-mysql
-
sudo vim /etc/nginx/sites-available/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>
åºæ¬çãªã»ããã¢ãã:
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ ОлО IP>;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
Laravel ã® HTTP ã»ããã¢ããã®ã¿:
server {
listen 80;
listen [::]:80;
root /var/www/html/<ÐÐŒÑ Ð¿ÑПекÑа>/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ ОлО IP>;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
Laravelã®HTTPSèšå®:
server {
listen 80;
listen [::]:80;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> www.<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> www.<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>;
root /var/www/html/<ÐÐŒÑ Ð¿ÑПекÑа>/public;
ssl_certificate /etc/letsencrypt/live/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>/privkey.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.php index.html index.htm index.nginx-debian.html;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
sudo ln -s /etc/nginx/sites-available/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx
ã©ã©ãã«
-
7.3ïŒ
sudo apt install -y php7.3-mbstring php7.3-xml composer unzip
-
7.4ïŒ
sudo apt install -y php7.4-mbstring php7.4-xml composer unzip
-
mysql -u root -p
-
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ÐÐ°Ñ Ð¿Ð°ÑÐŸÐ»Ñ ÐŸÑ MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
sudo mkdir -p <ÐÐŒÑ Ð¿ÑПекÑа>
-
sudo chown laravel:laravel <ÐÐŒÑ Ð¿ÑПекÑа>
-
cd ./<ÐÐŒÑ Ð¿ÑПекÑа>
-
git clone <ÑÑÑлка Ма пÑПекÑ> .
/git clone -b <ÐžÐŒÑ Ð²ÐµÑкО> --single-branch <ÑÑÑлка Ма пÑПекÑ> .
-
composer install
-
vim .env
APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=<ÐÐ°Ñ Ð¿Ð°ÑÐŸÐ»Ñ ÐŸÑ MySQL>
-
php artisan migrate
-
php artisan key:generate
-
sudo chown -R $USER:www-data storage
-
sudo chown -R $USER:www-data bootstrap/cache
-
chmod -R 775 storage
-
chmod -R 775 bootstrap/cache
HTTPS
-
sudo add-apt-repository ppa:certbot/certbot
-
sudo apt install -y python-certbot-nginx
-
sudo certbot certonly --webroot --webroot-path=/var/www/html/<ÐÐŒÑ Ð¿ÑПекÑа>/public -d <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> -d www.<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>
-
sudo nginx -t
-
sudo ufw allow 'Nginx HTTPS'
-
sudo ufw status
-
sudo systemctl reload nginx
DigitalOcean äžã§ããããã¬ãããäœæããæ°ãã SSH ããŒãç»é²ããŸã
DigitalOcean ãžã®ç»é²æ¹æ³ã¯ãã£ãšãèªèº«ã§ããããšæããŸãã æ€èšŒãªã©ãå€ããç°¡åã§ã¯ãããŸããã ããã¥ã¡ã³ãã䜿çšããŠæ€èšŒãããšãã«åžžã«ãããã¯ãŒã¯ ãšã©ãŒãçºçããå Žåã¯ããã¹ãŠã VPN çµç±ã§å®è¡ããŠã¿ãŠãã ããã解決ããã¯ãã§ãã
äžéšã®ã¡ãã¥ãŒã§ã åµé ãã->Dropletsã éžã¶ Ubuntu.
ç»é²ãããšããã«ãã¢ã«ãŠã³ãã« 100 ãã«ãä»äžãããŸãã ãããéšãããªãã§ãã ããã 䜿ããæé㯠60 æ¥ã ãã§ãã ãããŠãããã¯ãããããã§ãã ããªããç§ãšåãããã«ãããé«äŸ¡ãªãã©ã³ã䜿çšããŠãåŸã§å®éã®ãéãæµãå§ããããããå®äŸ¡ãªãã©ã³ã«åãæ¿ããããšæããããããŸããã ããã¯ããŸããããªããšããã«èšããŸãã å¢ããããšã¯ã§ããŸãããæžããããšã¯ã§ããŸããã ã ãããããªãã®ã§ãã ç§ã¯éžã¶ ã¹ã¿ã³ããŒã->$5.
æãè¿ãå°åãéžæããŸã ãã©ã³ã¯ãã«ã. VPC ãããã¯ãŒã¯->ããã©ã«ã-fra1
ããã« SSH çµç±ã§èªèšŒãå®è¡ããŸãã ã¯ãªã㯠æ°ãã SSH ããŒã SSH ããæã¡ã§ãªãå Žåã¯ãå³åŽã«éåžžã«ç°¡åãªæé ããããŸãã bash ã¿ãŒããã«ãéããŠè²Œãä»ããŸã
ssh-keygen
ã 次ã«ãå ¬éããŒãå«ããã¡ã€ã«ã«ç§»åããŸã/Users/<ÐаÑе ÐžÐŒÑ Ð¿ÐŸÐ»ÑзПваÑелÑ>/.ssh/id_rsa.pub
ïŒãŸãã¯åã«cat ~/.ssh/id_rsa.pub
) ã®å 容ãã³ããŒããå·ŠåŽã®ãŠã£ã³ããŠã«è²Œãä»ããŸãã ä»»æã®ååãããããã¬ããã®ãã¹ãåãèãåºããŸãã
ã¯ãªã㯠ããããã¬ããã®äœæ
æ°ãããŠãŒã¶ãŒãäœæãã
ssh root@[IP-аЎÑÐµÑ Ð²Ð°ÑегП ÐŽÑПплеÑа]
- æ¥ç¶ãç¶ããŠãããããã§ãã (ã¯ã/ããã/[æçŽ])?
yes
- SSH ãã¹ã¯ãŒããå ¥åããŠãã ãã
- ãŠãŒã¶ãŒãäœæãã laravel:
adduser laravel
- ãã¹ã¯ãŒããšãã®ä»ã®æ å ±ãå ¥åããŸãïŒãã«ããŒã ã®ã¿å ¥åããŸãïŒ
- ãŠãŒã¶ãŒã sudo ã°ã«ãŒãã«è¿œå ããŸãã
usermod -aG sudo laravel
æ°èŠãŠãŒã¶ãŒã® SSH
- æ°ãããŠãŒã¶ãŒã«åãæ¿ããŸãã
su laravel
ãã®èšäºã®æåŸãŸã§ãlaravel ãŠãŒã¶ãŒã«ä»£ãã£ãŠãã¹ãŠã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã ãããã£ãŠãçªç¶äžæãããå Žåã¯ãåãã°ã€ã³ããŠå
¥åããŠãã ãã su laravel
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
ãã¡ã€ã«ã Vim ã§éããŸããã ãŸã£ãã詳ãããªãå Žåã¯ãNano ã§äœæ¥ã§ããŸãã.
æãåºæ¬ç㪠Vim ã³ãã³ã
èšäºå šäœã§ Vim ãšãã£ã¿ãŒã䜿çšããã«ã¯ã次ã®ããšãç¥ã£ãŠããã ãã§æžã¿ãŸãã
- Vim ã«ã¯ããŸããŸãªã¢ãŒãããããŸããã³ãã³ããå ¥åããŠã¢ãŒããéžæããéåžžã¢ãŒããªã©ã§ãã
- ã¢ãŒããçµäºããŠéåžžã¢ãŒãã«æ»ãã«ã¯ã ãæŒãã ãã§ãã
Esc
- 移å: ç¢å°ã䜿çšããã ãã§ã
- ã»ãŒãããã«çµäºãã
<Normal mode>
::q!
- çµäºããŠä¿åãã
<Normal mode>
::wq
- ããã¹ãå
¥åã¢ãŒãã«åãæ¿ãã
<Normal mode>
:i
ïŒè±èªããã insert)
- å ¬éããŒãæ¿å ¥ããŸã (äžèšã§è¡ããŸãã)
- ç§ãã¡ã¯å€æŽããä¿è·ããŸã:
chmod 600 ~/.ssh/authorized_keys
ãã¡ã€ã¢ãŠã©ãŒã«ã®ã€ã³ã¹ããŒã«
- å©çšå¯èœãªèšå®ããã¹ãŠèŠãŠã¿ãŸãããã
sudo ufw app list
- OpenSSH ãèš±å¯ããŸã (ããã§ãªããšããã¯ãããŸã):
sudo ufw allow OpenSSH
- ãã¡ã€ã¢ãŠã©ãŒã«ãèµ·åããŸãããã
sudo ufw enable
,y
- ç§ãã¡ã¯ãã§ãã¯ããŸãïŒ
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
ãã¹ãŠãé 調ã§ãã
Nginxã®ã€ã³ã¹ããŒã«
ã€ã³ã¹ããŒã«äžã«ãããããã§ãã?ããšå°ããããããšããããŸãã çã y
ïŒãŸãã確ããªå Žåã«éããŸããïŒã
sudo apt update
sudo apt install nginx
ãã¡ã€ã¢ãŠã©ãŒã«èšå®ã«Nginxãè¿œå ãã
sudo ufw app list
sudo ufw allow 'Nginx HTTP'
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
IP ã«ç§»åããŸãã ãã¹ãŠãããŸãããã°ã次ã®ããã«è¡šç€ºãããã¯ãã§ãã
MySQLã®ã€ã³ã¹ããŒã«
sudo apt install mysql-server
- èªåä¿è·ã¹ã¯ãªããã®èµ·å
sudo mysql_secure_installation
質åã«çããŠãã ããã äœãçããã°ãããããããªãå Žåã¯ã次ã®ãããªéžæè¢ãèããããŸãã
-
ãã¹ã¯ãŒããã©ã°ã€ã³ãæ€èšŒãã -
N
-
å¿åãŠãŒã¶ãŒãåé€ããŸãã? â
Y
-
ãªã¢ãŒãããã® root ãã°ã€ã³ãçŠæ¢ããŸãã? â
N
-
ãã¹ã ããŒã¿ããŒã¹ãåé€ããŠã¢ã¯ã»ã¹ããŸãã? â
N
-
ç¹æš©ããŒãã«ãä»ãããªããŒãããŸãã? â
Y
-
MySQL ã«è¡ããŸããã:
sudo mysql
-
ã¢ã¯ã»ã¹æ¹æ³ãèŠãŠã¿ãŸãããã
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
root ã®ãã¹ã¯ãŒããèšå®ããŸãã
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<ÐÐ°Ñ Ð¿Ð°ÑÐŸÐ»Ñ ÐŽÐ»Ñ MySQL>';
-
ã¢ã¯ã»ã¹æ¹æ³ãããäžåºŠèŠãŠã¿ãŸãããã
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
å€æŽãé©çšã㊠MySQL ãçµäºããŸãã
FLUSH PRIVILEGES;
Оexit
-
ããã§ãMySQL ã«ãã°ã€ã³ããã«ã¯ã次ã䜿çšããå¿ èŠããããŸã
mysql -u root -p
ãããŠãã¹ã¯ãŒããå ¥åããŠãã ãã
PHPã®ã€ã³ã¹ããŒã«
ãããµãŒãããŒãã£ã®ãªããžããªã䜿çšããŸããã
sudo apt update
sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https
sudo apt-add-repository ppa:ondrej/php
sudo apt update
ãããéžãã§ã¿ãŸãããã Laravel 7 ã®å Žåã¯ãPHP 7.3 ãŸã㯠7.4 ãéžæã§ããŸãã å¯äžã®éãã¯çªå· 3 ãš 4 ã§ãã
- 7.3ïŒ
sudo apt install -y php7.3-fpm php7.3-mysql
- 7.4ïŒ
sudo apt install -y php7.4-fpm php7.4-mysql
PHP FastCGI Process Manager (fpm) ã¯ãPHP ãªã¯ãšã¹ããåŠçããŸãã mysql ã¯ããã¡ãã MySQL ãæäœããããã®ãã®ã§ãã
ä»åŸã¯ãã¹ãŠ 7.4 ã§å®è¡ããŸãã
Nginxã®ã»ããã¢ãã
sudo vim /etc/nginx/sites-available/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>
ã<ããªãã®ãã¡ã€ã³>ãã®ä»£ããã«ãã¡ã€ã³ãå
¥åããŸã (äŸ: mysite.ru
ïŒå°æ¥äœ¿çšããããã®ã ãŸã ãæã¡ã§ãªãå Žåã¯ãä»»æã®ãã¡ã€ã³ãäœæãããã¡ã€ã³ãéžæãããšãã«ãã®ç« ã®æé ãç¹°ãè¿ãã ãã§ãã
次ã®ããã«å ¥åããŸãïŒ
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ ОлО IP>;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
代ããã«ããŒãžã§ã³ 7.3 ãéžæããå Žå php7.4-fpm.sock
ã§æžããŸã php7.4-fpm.sock
.
ããŒã 80 ããªãã¹ã³ããŸã server_name
ã«ãŒããªã¯ãšã¹ãã«å°éãããšã /var/www/html
ã€ã³ããã¯ã¹ãã¡ã€ã«ãååŸããŸãã åŸãªã server_name
äœããããŸãããã®ãããªãã¡ã€ã«ãæ¢ããŠããŸãã èŠã€ãããªãå Žå㯠404 ãç Žæ£ããŸãã .php
ã é§ãæãã fpm
ã ããå Žå .ht
ãçŠæ¢ãã(403)ã
- ãããªã³ã¯ãäœæãã
sites-available
вsites-enabled
:sudo ln -s /etc/nginx/sites-available/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> /etc/nginx/sites-enabled/
- ãžã®ãªã³ã¯ãåé€ãã
default
:sudo unlink /etc/nginx/sites-enabled/default
- ãšã©ãŒããã§ãã¯ããŠããŸã:
sudo nginx -t
- ãªããŒãïŒ
sudo systemctl reload nginx
äœæ¥ã®ç¢ºèª:
sudo vim /var/www/html/info.php
- ç§ãã¡ã¯æžãïŒ
<?php phpinfo();
- ã«è¡ããŸããã
<ÐÐ°Ñ IP>/info.php
次ã®ãããªãã®ã衚瀺ãããã¯ãã§ãã
ããã§ããã®ãã¡ã€ã«ãåé€ã§ããããã«ãªããŸãã sudo rm /var/www/html/info.php
Laravelãã€ã³ã¹ããŒã«ãã
-
7.3ïŒ
sudo apt install php7.3-mbstring php7.3-xml composer unzip
-
7.4ïŒ
sudo apt install php7.4-mbstring php7.4-xml composer unzip
-
MySQL ã«è¡ããŸããã:
mysql -u root -p
-
ãšããååã®ããŒã¿ããŒã¹ãäœæããŸãã laravel:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
ã«ãŒãã¢ã¯ã»ã¹ãæäŸããŸã laravel:
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ÐÐ°Ñ Ð¿Ð°ÑÐŸÐ»Ñ ÐŸÑ MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
ãããžã§ã¯ãã®ãã©ã«ããŒãäœæããŸãã
sudo mkdir -p <ÐÐŒÑ Ð¿ÑПекÑа>
-
ç§ãã¡ããŠãŒã¶ãŒã«æäŸããã®ã¯ã laravel ãããžã§ã¯ãã«å¯Ÿããæš©å©:
sudo chown laravel:laravel <ÐÐŒÑ Ð¿ÑПекÑа>
次ã«ãããžã§ã¯ãã転éããå¿ èŠããããŸãã ããšãã°ãGithub ããã®ã¯ããŒã³äœæãªã©ã§ãã
cd ./<ÐÐŒÑ Ð¿ÑПекÑа>
git clone <ÑÑÑлка Ма пÑПекÑ> .
éçãã¡ã€ã«ãä¿åããªãã£ãå Žå (ããšãã°ã /public
) Github ã«ããå Žåãåœç¶ããããã¯ååšããŸããã ããšãã°ãããã解決ããããã«å¥ã®ã¹ã¬ãããäœæããŸãã deploy
ãç§ã¯ãã§ã«ã¯ããŒã³ãäœæããŸãã: git clone -b <ÐžÐŒÑ Ð²ÐµÑкО> --single-branch <ÑÑÑлка Ма пÑПекÑ> .
.
- äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«:
composer install
- .env ãäœæããŸãã
vim .env
ãã®åºæ¬ããŒãžã§ã³ã¯æ¬¡ã®ããã«ãªããŸãã
APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=<ÐÐ°Ñ Ð¿Ð°ÑÐŸÐ»Ñ ÐŸÑ MySQL>
.env ãã³ããŒããå Žåã¯ãAPP_ENV ãå®çšŒåç°å¢ã«çœ®ãæããAPP_DEBUG ã false ã«çœ®ãæããMySQL ã®æ£ããèšå®ãå ¥åããŸãã
- ããŒã¿ããŒã¹ã®ç§»è¡:
php artisan migrate
- ã³ãŒãã®çæ:
php artisan key:generate
æš©éã®å€æŽ:
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache
æåŸã«æ®ã£ãŠããã®ã¯ãLaravel çšã« Nginx ãåæ§æããããšã§ãã
sudo vim /etc/nginx/sites-available/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>
server {
listen 80;
listen [::]:80;
root /var/www/html/<ÐÐŒÑ Ð¿ÑПекÑа>/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ ОлО IP>;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
ååãšåæ§ã«ã代ããã«ããŒãžã§ã³ 7.3 ãéžæããå Žå php7.4-fpm.sock
ã§æžããŸã php7.4-fpm.sock
.
DigitalOcean ã§ãã¡ã€ã³ãèšå®ãã
å®éã«ã¯ãã¹ãŠãéåžžã«ã·ã³ãã«ã§ãã ãã¡ã€ã³ãïŒã©ãã§ãïŒè³Œå ¥ãã次ã®å Žæ㧠DigitalOcean ã«åãæ¿ããŸãã åµé ãã->ãã¡ã€ã³/DNSã ÐпПле ãã¡ã€ã³ãè¿œå ãã ãã®ãã¡ã€ã³ãå ¥åãããè¿œå ããã¯ãªãã¯ããŸãã 次ã«ããã¡ã€ã³èšå®ãšãã£ãŒã«ãã«ç§»åããŸãã ãã¹ãå å ¥å @ã ãããžã§ã¯ããéžæããŠã¯ãªãã¯ããŸã ã¬ã³ãŒããäœæãã.
次ã«ããã¡ã€ã³ãè³Œå ¥ãããµã€ãã«ç§»åããããã§ãDNS ãµãŒããŒãïŒãŸãã¯é¡äŒŒã®ãã®ïŒãèŠã€ããŠãDigitalOcean ãµãŒããŒïŒã€ãŸããns1.digitalocean.com
,ns2.digitalocean.com
,ns3.digitalocean.com
ïŒã ãããã®èšå®ãåãå ¥ãããããŸã§ãå°ã (ãŸãã¯ããªã) åŸ ã€å¿ èŠããããŸãã æºåãã§ããŠïŒ
å¯äžã®åé¡ã¯ããµã€ãã HTTP ãšããŠã®ã¿éãããããšã§ãã HTTPS ã䜿çšããã«ã¯ã次ã®éšåã«é²ãã§ãã ããã
HTTPSã®èšå®
certbot ãã€ã³ã¹ããŒã«ãããã¡ã€ã³å (åœ¢åŒ mysite.ru
) ãš www (www.mysite.ru
).
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-nginx
sudo certbot certonly --webroot --webroot-path=/var/www/html/<ÐÐŒÑ Ð¿ÑПекÑа>/public -d <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> -d www.<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>
次ã«ãNginx ãåæ§æããå¿ èŠããããŸã (å€ã眮ãæããããšãå¿ããªãã§ãã ãã)ã
server {
listen 80;
listen [::]:80;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> www.<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ> www.<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>;
root /var/www/html/<ÐÐŒÑ Ð¿ÑПекÑа>/public;
ssl_certificate /etc/letsencrypt/live/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<ÐÐ°Ñ ÐŽÐŸÐŒÐµÐœ>/privkey.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.php index.html index.htm index.nginx-debian.html;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
PHP 7.3 ã§äœãå€æŽããå¿ èŠããããã¯ãã§ã«ç解ããŠãããšæããŸãã
å®éãããã§ã¯ãã¹ãŠãã·ã³ãã«ã§ãã ãã¹ãŠã®ãªã¯ãšã¹ãã HTTP (ããŒã 80) ãã HTTPS (ããŒã 443) ã«ãªãã€ã¬ã¯ãããã ãã§ãã ããã§ã¯ãæå·åã䜿çšããŠã以åãšåãããã«ãã¹ãŠãå®è¡ããŸãã
æ®ã£ãŠããã®ã¯ããã¡ã€ã¢ãŠã©ãŒã«ã«ã¢ã¯ã»ã¹èš±å¯ãèšå®ããããšã ãã§ãã
sudo nginx -t
sudo ufw app list
sudo ufw allow 'Nginx HTTPS'
sudo ufw status
sudo systemctl reload nginx
ããã§ããã¹ãŠãæ£åžžã«æ©èœããã¯ãã§ãã
[äžçŽ] Node.js ã®ã€ã³ã¹ããŒã«
çªç¶ãµãŒããŒäžã§ npm ã³ãã³ããçŽæ¥å®è¡ããå¿ èŠãããå Žåã¯ãNode.js ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
sudo apt update
sudo apt install -y nodejs npm
nodejs -v
ãšããããšã§ããã®æ®µéã§ãããŠãããŸããã åºæ¬çã«ã¯çµæã«æºè¶³ããŠããŸãã ããããããã·ã¢ã«è¿ããŠå®ãã©ãã㧠DigitalOcean ããåãæ¿ããã§ãããã ããããç§ã¯ãã§ã«ãµã€ãäžã®ãã¹ãŠã®æ€èšŒã©ãŠã³ããééãããã¹ãŠãããã§è¡ã£ãŠããã®ã§ãäŸã瀺ããŠç€ºããŸããã ããã«ã100 ãã«ããã®ã¹ã¿ãŒãã¯ãã¬ãŒãã³ã°ã®åªããåºçºç¹ãšãªããŸãã
PS äœè
ã«æè¬ããŸã
PPS ããããªãã bash ã³ãã³ãã§èããããããšã³ãžãã¢ã ãšããŠããå³ããå€æããªãã§ãã ããã ãã®èšäºã¯ã¬ãã«ãäœããšæããããããããŸããããå¿ èŠãªãšãã«èŠã€ããŠããã ããã°å¹žãã§ãã æ¹åã®ããã®ææ¡ãããã°ã倧æè¿ã§ãã
åºæïŒ habr.com