VPSでホームページを公開する
Laravelなどのフレームワークなどを使用してホームページを公開したいときにはVPSと契約する必要があります。
当サイトはよく聞く名前で安心なのと料金が安いという理由でさくらのVPSを使用しています。
さくらのVPSを使用する場合は当サイトはOSをUbuntu、SSHキーを「GitHub.comから取得してインストールする」にして使用しています。
GitHubでのSSHキーの追加方法がわからない方はこちらを参考にしてください。
※さくらサーバーのSSH接続時のユーザー名は選択したOS名になるので忘れないようにしてください。
例)Ubuntuで契約時はubuntuとなります
その後、契約している会社のサーバーのページに行き、サーバーの電源を入れます。
その時にサーバーのIPアドレスも確認してください。
の形式で入力することでサーバーに接続することができます。
接続中のインストールなどは自分のPCではなく接続しているサーバーにインストールされます。
下の例ではPHP8.2をインストールしています。
VPSと契約する
当サイトはよく聞く名前で安心なのと料金が安いという理由でさくらのVPSを使用しています。
さくらのVPSを使用する場合は当サイトはOSをUbuntu、SSHキーを「GitHub.comから取得してインストールする」にして使用しています。
GitHubでのSSHキーの追加方法がわからない方はこちらを参考にしてください。
※さくらサーバーのSSH接続時のユーザー名は選択したOS名になるので忘れないようにしてください。
例)Ubuntuで契約時はubuntuとなります
その後、契約している会社のサーバーのページに行き、サーバーの電源を入れます。
その時にサーバーのIPアドレスも確認してください。
ssh接続
ssh -l ユーザー名 IPアドレス
の形式で入力することでサーバーに接続することができます。
接続中のインストールなどは自分のPCではなく接続しているサーバーにインストールされます。
アップデートと必要なパッケージのインストール
sudo apt update
sudo apt upgrade -y
sudo apt install git curl unzip software-properties-common -y
sudo apt upgrade -y
sudo apt install git curl unzip software-properties-common -y
Ondrejのリポジトリを追加
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt update
PHPのインストール
下の例ではPHP8.2をインストールしています。
sudo apt install php8.2 php8.2-cli php8.2-common php8.2-mbstring php8.2-gd php8.2-mysql php8.2-xml php8.2-curl php8.2-zip -y
sudo apt install php8.2-fpm
sudo apt install php8.2-fpm
Composerのインストール
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
スワップファイルの作成
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
MySQLのインストール
sudo apt install mysql-server -y
mysqlのユーザー、データベースの作成
sudo mysql -u root -p
CREATE DATABASE データベース名;
CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
CREATE DATABASE データベース名;
CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Nginxのインストール
sudo apt install nginx -y
Nginxの設定ファイルを編集
sudo rm /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
開かれたファイルに以下のように書き込み、ctrl+O、Enter、ctrl+Xと順に押し、保存してファイルを閉じてください。
server {
listen 80;
server_name IPアドレスもしくはドメイン名;
root /var/www/アプリケーション名/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # PHPのバージョンに応じて修正
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
listen 80;
server_name IPアドレスもしくはドメイン名;
root /var/www/アプリケーション名/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # PHPのバージョンに応じて修正
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
以下コマンドを入力し、nginxに設定を適用させてください。
sudo systemctl stop apache2
sudo systemctl restart nginx
sudo systemctl start nginx
sudo systemctl reload nginx
sudo systemctl restart nginx
sudo systemctl start nginx
sudo systemctl reload nginx
GitHubのリポジトリをサーバーにコピーする
cd /var/www
sudo mkdir アプリケーション名
cd アプリケーション名
sudo git init
sudo git config --global --add safe.directory /var/www/アプリケーション名
sudo git remote add origin https://github.com/GitHubのユーザー名/GitHubのリポジトリ名.git
sudo git pull origin main
sudo mkdir アプリケーション名
cd アプリケーション名
sudo git init
sudo git config --global --add safe.directory /var/www/アプリケーション名
sudo git remote add origin https://github.com/GitHubのユーザー名/GitHubのリポジトリ名.git
sudo git pull origin main
Laravelプロジェクトのディレクトリの所有者をユーザー名に変更
sudo adduser ユーザー名
sudo visudo
sudo visudo
root ALL=(ALL:ALL) ALL
の場所を探して
ユーザー名 ALL=(ALL:ALL) ALL
に書き換え管理者権限を作成したユーザーに変更してください。
sudo su - ユーザー名
Laravelのenvファイルの作成と設定
sudo chown ユーザー名:ユーザー名 /var/www/アプリケーション名/.env
sudo cp /var/www/example-app/.env.example /var/www/アプリケーション名/.env
nano /var/www/アプリケーション名/.env
sudo cp /var/www/example-app/.env.example /var/www/アプリケーション名/.env
nano /var/www/アプリケーション名/.env
データベースの設定を探し、以下のように書き換えてください
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=mysqlのユーザー名
DB_PASSWORD=mysqlのパスワード
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=mysqlのユーザー名
DB_PASSWORD=mysqlのパスワード
アプリケーションにcomposerのインストール
cd /var/www/アプリケーション名
sudo chown -R ユーザー名:ユーザー名 /var/www/example-app
composer install
sudo chown -R ユーザー名:ユーザー名 /var/www/example-app
composer install
Laravelのキー生成
cd /var/www/example-app
php artisan key:generate
php artisan key:generate
データベースのマイグレーション(テーブル作成)
php artisan migrate
アプリケーションのキャッシュクリア、権限の設定
mkdir -p /var/www/アプリケーション名/storage/logs
mkdir -p /var/www/アプリケーション名/bootstrap/cache
sudo chown -R ユーザー名:ユーザー名 /var/www/アプリケーション名/storage /var/www/example-app/bootstrap/cache
sudo chmod -R 775 /var/www/アプリケーション名/storage /var/www/アプリケーション名/bootstrap/cache
php artisan config:cache
php artisan route:cache
php artisan view:cache
mkdir -p /var/www/アプリケーション名/bootstrap/cache
sudo chown -R ユーザー名:ユーザー名 /var/www/アプリケーション名/storage /var/www/example-app/bootstrap/cache
sudo chmod -R 775 /var/www/アプリケーション名/storage /var/www/アプリケーション名/bootstrap/cache
php artisan config:cache
php artisan route:cache
php artisan view:cache
Node.js、npmのインストール
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y nodejs
Viteのインストール、ビルドを実行
cd /var/www/example-app
npm install vite
npm run build
npm install vite
npm run build