プロジェクト

全般

プロフィール

Wiki » 履歴 » リビジョン 2

リビジョン 1 (廣瀬 僚一, 2024/01/30 19:05) → リビジョン 2/3 (廣瀬 僚一, 2024/09/12 11:04)

# サーバー情報 
 - [[サーバー情報]]  
 ホスティング会社:xserver vps 
 - IP:162.43.32.188 
 - OS:Rocky Linux 9.2 
 - ログイン:root / clear!3831# 

 初期設定の段階で2GBのスワップ領域あり(xserver vpsの仕様?) 

 # 構築手順 

 ## アップデート 
 ```bash 
 yum update -y 
 ``` 

 ## ユーザー作成 
 ```bash 
 useradd webadmin 
 passwd webadmin 
 cld3831# 
 ``` 

 ## 全体設定 
 SELinuxの無効化 
 ```bash 
 vi /etc/selinux/config 
 ``` 
 ```conf:config 
 #SELINUX=enforcing 
 ``` 

 ## NGINX設定 
 ### NGINXインストール 
 ```bash 
 dnf install nginx -y 
 systemctl start nginx && systemctl enable nginx 
 ``` 
 ### confファイル 
 公式を参考に記載 
 ```conf:80.conf 
 server { 
     listen 80; 
     listen [::]:80; 
     server_name sys.globalgenetics.jp; 
     root /var/www/hmtl/sys.globalgenetics.jp/public; 
 
     add_header X-Frame-Options "SAMEORIGIN"; 
     add_header X-Content-Type-Options "nosniff"; 
 
     index index.php; 
 
     charset utf-8; 
 
     location / { 
         try_files $uri $uri/ /index.php?$query_string; 
     } 
 
     location = /favicon.ico { access_log off; log_not_found off; } 
     location = /robots.txt    { access_log off; log_not_found off; } 
 
     error_page 404 /index.php; 
 
     location ~ \.php$ { 
         fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; 
         fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
         include fastcgi_params; 
     } 
 
     location ~ /\.(?!well-known).* { 
         deny all; 
     } 
 } 
 ``` 

 ## PHP設定 
 インストールできるphpを確認   
 php8.1などをインストールする 
 ```bash 
 dnf module list php #利用できるphpを検索 
 dnf module install php -y 
 dnf install php-bcmath php-pdo php-mysql php-gd -y 
 ``` 
 ### confファイル 
 ```bash:www.conf 
 user=nginx 
 group=nginx 

 pm = static 
 pm.max_children = 3 
 pm.max_requests = 1000 
 ``` 

 ## php.ini設定 
 ```bash:php.ini 
 max_execution_time = 300 
 memory_limit = 256M 
 upload_max_filesize = 20M 
 post_max_size = 128M 
 ``` 

 ## データベース設定 
 ### mysqlインストール 
 ```bash 
 dnf install mysql -y 
 dnf install mysql-server -y 
 ``` 
 データベース名:globalgenetics 
 | User       | Pass         | 
 | -------- | ---------- | 
 | root       | Clear.3831 | 
 | db_admin | Cld3831#     | 

 ```bash 
 mysql -u root -p{DB_ROOT_PASS} -h ${DB_HOST} 
 ``` 
 ```sql 
 CREATE DATABASE [DB_NAME] DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 
 CREATE USER '[DB_USER]'@'[DB_HOST]' identified by '[DB_PASS]'; 
 GRANT ALL ON [DB_NAME].*TO '[DB_USER]'@'[DB_HOST]'; 
 FLUSH PRIVILEGES; 
 ``` 

 ## composerインストール 
 ```bash 
 cd ~ 
 php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 
 php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" 
 php composer-setup.php 
 php -r "unlink('composer-setup.php');" 
 mv composer.phar /usr/local/bin/composer 
 composer -V 
 ``` 

 ## Node.jsインストール 
 バージョン指定してインストール(16.x) 
 ```bash 
 yum install https://rpm.nodesource.com/pub_16.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y 
 yum install nodejs -y --setopt=nodesource-nodejs.module_hotfixes=1 

 node -v 
 npm -v 
 ``` 

 ## サイトデータ配置 
 ディレクトリを作成 
 ```bash 
 mkdir -p /var/www/html/sys.globalgenetics.jp/ 

 cd /var/www/html/sys.globalgenetics.jp/ 
 chmod -R 777 ./storage 
 ``` 
 envファイルの書き換え 
 - APP_URL 
 - DB_HOST 
 - DB_USERNAME 
 - DB_PASSWORD 

 ```bash 
 chown -R nginx:nginx /var/www/html/sys.globalgenetics.jp/storage/app/public/uploads/ 
 ``` 

 HTTPでアクセスして、アクセスできることを確認 

 ## SSL設定 
 ### epelリポジトリインストール 
 ```bash 
 yum install epel-release.noarch -y 
 ``` 
 ### certbotインストールとSSL化 
 ```bash 
 dnf install certbot -y 
 certbot certonly --webroot -w /var/www/html/sys.globalgenetics.jp/public -d sys.globalgenetics.jp --email wp@clear-design.jp --debug 
 ``` 
 ### nginx confファイルの作成と書き換え 
 ```bash 
 vi /etc/nginx/conf.d/80.conf 
 ``` 
 ```conf:80.conf 
 server { 
     listen 80; 
     listen [::]:80; 
     server_name sys.globalgenetics.jp; 

     return 301 https://$host$request_uri;     
 } 
 ``` 

 ```bash 
 vi /etc/nginx/conf.d/sys_global.conf 
 ``` 
 ```conf:sys_global.conf 
 server { 
     listen 443 ssl http2; 
     listen [::]:443 ssl http2; 
     server_name sys.globalgenetics.jp; 
     root /var/www/html/sys.globalgenetics.jp/public; 
 
     add_header X-Frame-Options "SAMEORIGIN"; 
     add_header X-Content-Type-Options "nosniff"; 
 
     ssl_certificate /etc/letsencrypt/live/sys.globalgenetics.jp/fullchain.pem; 
     ssl_certificate_key /etc/letsencrypt/live/sys.globalgenetics.jp/privkey.pem; 

     index index.php; 
 
     charset utf-8; 
 
     location / { 
         try_files $uri $uri/ /index.php?$query_string; 
     } 
 
     location = /favicon.ico { access_log off; log_not_found off; } 
     location = /robots.txt    { access_log off; log_not_found off; } 
 
     error_page 404 /index.php; 
 
     location ~ \.php$ { 
         fastcgi_pass unix:/var/run/php-fpm/www.sock; 
         fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
         include fastcgi_params; 
     } 
 
 #      location ~ /\.(?!well-known).* { 
 #          deny all; 
 #      } 
 } 
 ``` 

 ## メール設定 
 XSERVERにリレーし、メールを配信する 

 ### メールアドレスの作成 
 XSERVER(cld01)で、グローバルジェネティクスドメインでメールアドレスを作成する。   
 noreply@globalgenetics.jp   
 パスワードも設定する 

 ### postfixインストール 
 ```bash 
 dnf install postfix -y 
 systemctl start postfix.service && systemctl enable postfix.service 
 ``` 
 その他、必要なものをインストール 
 ```bash 
 dnf install cyrus-sasl-plain cyrus-sasl-lib cyrus-sasl-md5 
 ``` 

 ### postfix設定(補足) 
 ```bash 
 vi /etc/postfix/main.cf 
 ``` 
 以下を書き換え 
 ```bash:main.cf 
 myhostname = globalgenetics.jp 
 mydomain = globalgenetics.jp 
 ``` 
 以下を末尾に追記 
 ```bash:main.cf 
 milter_default_action = accept 
 non_smtpd_milters = $smtpd_milters 
 smtpd_milters = inet:127.0.0.1:8891 

 relayhost = [sv1116.xserver.jp]:587 
 smtp_sasl_auth_enable = yes 
 smtp_sasl_security_options = noanonymous 
 smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
 smtp_use_tls = yes 
 smtp_tls_note_starttls_offer = yes 
 ``` 
 ```bash 
 vi /etc/postfix/sasl_passwd #メール認証情報の記載 
 ``` 
 ```bash:sasl_passwd 
 [sv1116.xserver.jp]:587 作成したメールアドレス:パスワード 
 ``` 
 ```bash 
 chmod 600 /etc/postfix/sasl_passwd 
 postmap /etc/postfix/sasl_passwd #認証情報のハッシュ化・登録 
 systemctl restart postfix.service 
 ``` 
 下記コマンドでテストメールの送信   
 迷惑メールに入らずに受信できていれば完了 
 ```bash 
 sendmail -t << EOL 
 From: 送信元メールアドレス 
 To: 送信先メールアドレス 
 Subject: メールタイトル 
 本文 
 EOL 
 ``` 

 ## rootログイン禁止 
 ```bash 
 PermitRootLogin no 
 ``` 

 --- 
 ## zabbix-agentインストール 
 ```bash 
 dnf install zabbix-agent.x86_64 -y 
 ``` 

 ## PHPキャッシュ 
 ```bash 
 dnf install php-opcache php-pecl-apcu -y 
 ``` 
 負荷テスト 
 ```bash 
 ab -n 100 -c 100 https://sys.globalgenetics.jp/ 
 ``` 
 結果   
 before 
 ``` 
 Total transferred:        162500 bytes 
 HTML transferred:         38600 bytes 
 Requests per second:      27.75 [#/sec] (mean) 
 Time per request:         3603.657 [ms] (mean) 
 Time per request:         36.037 [ms] (mean, across all concurrent requests) 
 Transfer rate:            44.04 [Kbytes/sec] received 
 ``` 
 after 
 ``` 
 Total transferred:        162500 bytes 
 HTML transferred:         38600 bytes 
 Requests per second:      128.77 [#/sec] (mean) 
 Time per request:         776.571 [ms] (mean) 
 Time per request:         7.766 [ms] (mean, across all concurrent requests) 
 Transfer rate:            204.35 [Kbytes/sec] received 
 ```