Nextcloudのインストール編
CentOSのインストールは省いてます
環境 構成
Nextcloudへのアクセス構成は
クライアント →https→ リバースプロキシー(CnetOS 6.9 Nginx)→http→ Nextcloud 16(CentOS 7.7 Apache 2.4.6)
リバースプロキシーの理由は単純にグローバルアドレスが不足しているからです(笑)
ただ、プロキシキーのキャッシュが利用できて有利かもしれません。
Nextcloudのインストール(CentOS 7.7)
サーバー環境設定
CentOS 7.7のパッケージを最新の状態に
[root@nextsv ~]# yum update
Nextcloud のインストールに必要なパッケージをインストール
[root@nextsv ~]# yum install -y epel-release yum-utils unzip curl wget git bash-completion policycoreutils-python
Apacheのインストール
[root@nextsv ~]# yum install -y httpd
PHP 7.2のインストール(失敗)
[root@nextsv ~]# yum install -y rh-php72 rh-php72-php rh-php72-php-gd rh-php72-php-mbstring rh-php72-php-intl rh-php72-php-pecl-apcu rh-php72-php-mysqlnd rh-php72-php-pecl-redis rh-php72-php-opcache rh-php72-php-imagick
このパッケージは利用できません。
リポジトリにphp72があるか確認
[root@nextsv ~]# yum list available | grep php72
何も返らないのでないものと思われる。
以前の私の下記投稿記事のphp7.1のインストールを参考に7.1を7.2に変更してインストールしてみた
[root@nextsv ~]# yum install epel-release
[root@nextsv ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[root@nextsv ~]# yum install --enablerepo=remi,remi-php72 php php-gd php-json php-mysql php-curl php-mbstring
[root@nextsv ~]# yum install --enablerepo=remi,remi-php72 php-intl php-mcrypt php-imagick php-xml php-zip php-process php-apcu
[root@nextsv ~]# php --version
PHP 7.2.23 (cli) (built: Sep 25 2019 07:38:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
シンボリックリンクを張る
[root@nextsv conf.d]# ln -s /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php72-php.conf /etc/httpd/conf.d/
[root@nextsv opt]# ln -s /opt/rh/httpd24/root/etc/httpd/conf.modules.d/15-rh-php72-php.conf /etc/httpd/conf.modules.d/
[root@nextsv opt]# ln -s /opt/rh/httpd24/root/etc/httpd/modules/librh-php72-php7.so /etc/httpd/modules/
[root@nextsv opt]# ln -s /opt/rh/rh-php72/root/bin/php /usr/bin/php
ln: シンボリックリンク `/usr/bin/php' の作成に失敗しました: ファイルが存在します
とりあえず php 7.2 のインストールは中断して先に進む。後でphp 7.2をインストール
MariaDB のインストール・設定
[root@nextsv opt]# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo.
[info] Adding trusted package signing keys...
[info] Successfully added trusted package signing keys.
[root@nextsv opt]# yum install -y mariadb mariadb-server
MariaDBの設定
[root@nextsv opt]# vi /etc/my.cnf.d/server.cnf
[mysqld] の所に下記を追加した
character-set-server = utf8
innodb_buffer_pool_size=1G
innodb_io_capacity=4000
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1
MariaDB を起動
# systemctl start mariadb
自動起動設定を追加
# systemctl enable mariadb
MariaDBの初期設定
※インストーラの指示に従ってmysqlのrootパスワード等を設定
パスワード password
[root@nextsv opt]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n]
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
MariaDB にログイン
# mysql -u root -p
※パスワードの入力を求められるので先ほど設定したmysqlのrootパスワードを入力
ログインできるとプロンプトが表示されます。
MariaDB [(none)]>
データベースを作成
[root@nextsv opt]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.4.8-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE nextcloud;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> GRANT ALL ON nextcloud.* to nextcloud@'localhost' identified by 'password';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> exit
Bye
以下の情報でデータベースを作成
データベース名 nextcloud
データベースユーザー名 nextcloud
データベースパスワード password
※安全なパスワードを設定
Nextcloud のインストール
Nextcloudの最新パッケージのダウンロードURLを確認
Nextcloud Download Page
https://nextcloud.com/install/
◇Download for server > Archive file > Download Nextcloud
確認したURLでサーバーにNextcloudをインストール
バージョン16.0.5を /var/www/html/nextcloudにインストール
[root@nextsv ~]# wget https://download.nextcloud.com/server/releases/nextcloud-16.0.5.zip
[root@nextsv ~]# unzip nextcloud-16.0.5.zip -d /var/www/html
データドライブがOS領域では小さいので別に作る
[root@nextsv home]# mkdir /home/nextcloud
[root@nextsv home]# mkdir /home/nextcloud/data
[root@nextsv home]# chown -fR apache:apache /home/nextcloud
[root@nextsv nextcloud]# chown -R apache:apache /var/www/html/nextcloud
Apache の設定ファイルを追加します。
[root@nextsv nextcloud]# vi /etc/httpd/conf.d/nextcloud.conf
[root@nextsv conf.d]# cat nextcloud.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/nextcloud/
ServerName mydomain.xxx
<Directory "/var/www/html/nextcloud/">
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
<Directory "/home/nextcloud/data/">
Require all denied
</Directory>
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
Redirect 301 /.well-known/webfinger /nextcloud/public.php?service=webfinger
SELINUXの無効化
vi /etc/selinux/config
SELINUX=enforcing → disabled に変更
Apache を起動します。
[root@nextsv ~]# systemctl start httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
エラー発生 Apache起動失敗
[root@nextsv ~]# systemctl status httpd -l
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 木 2019-10-10 14:46:17 JST; 3min 7s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 9498 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 9497 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 9497 (code=exited, status=1/FAILURE)
10月 10 14:46:16 nextsv systemd[1]: Starting The Apache HTTP Server...
10月 10 14:46:17 nextsv httpd[9497]: httpd: Syntax error on line 56 of /etc/httpd/conf/httpd.conf: Could not open configuration file /etc/httpd/conf.modules.d/15-rh-php72-php.conf: No such file or directory
httpd 起動に失敗するのでPHP 7.2の再インストール
まずSCLリポジトリのインストール
yum install centos-release-scl
PHP 7.2とモジュールのインストール
yum install rh-php72 rh-php72-php rh-php72-php-gd rh-php72-php-mbstring rh-php72-php-intl rh-php72-php-pecl-apcu
MySQL/MariaDB用 PHP 7.2 モジュールのインストール
yum install rh-php72-php-mysqlnd
古いバージョンの PHP Apacheモジュールを利用できないようにファイル名変更
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php54.off
実体へシンボリックリンクを張ります
ln -s /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php72-php.conf /etc/httpd/conf.d/
ln -s /opt/rh/httpd24/root/etc/httpd/conf.modules.d/15-rh-php72-php.conf /etc/httpd/conf.modules.d/
ln -s /opt/rh/httpd24/root/etc/httpd/modules/librh-php72-php7.so /etc/httpd/modules/
Apacheの再起動 ファイアウォールの確認
systemctl restart httpd.service
ブラウザから http://IPアドレス/
このページは動作していませんnextsvのIP からデータが送信されませんでした。 ERR_EMPTY_RESPONSE
ファイアウォールか? telnet で確認しようとしたが使えないのでインストール
[root@nextsv log]# yum install telnet
telnet 80 でアクセスしてみたら OKっぽい。
[root@nextsv modules]# telnet nextsvのIP 80
Trying nextsvのIP...
Connected to nextsvのIP.
ファイアウォールか? ポート80の記述が見当たらないので問題なさそう?
[root@nextsv httpd]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: ← 80が無いので問題ないはず
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
だが /var/log/messagesを確認すると FINAL_REJECT DPT=80 で80は拒否されている
[root@nextsv log]# grep NextcloudクライアントIP messages
Oct 11 11:15:59 nextsv kernel: FINAL_REJECT: IN=eth0 OUT= MAC=00:15:5d:01:0d:3a:70:4c:a5:89:9c:fb:08:00 SRC=NextcloudクライアントIP DST=nextsvのIP LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=49836 DF PROTO=TCP SPT=50719 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0
O
試しにファイアウォールを停止してみる
[root@nextsv httpd]# systemctl stop firewalld
[root@nextsv httpd]# firewall-cmd --state
not running
Nextcloudの「管理者アカウントを作成してください」の画面がやっと出た!
やはり、ファイアウォールの設定に問題あり
ファイアウォールを起動して再確認確認
[root@nextsv httpd]# systemctl start firewalld
ログに何も残らないので原因究明困難なのでログに出力設定
[root@nextsv httpd]# firewall-cmd --set-log-denied all
success
ログ出力を停止
[root@nextsv log]# sysctl kernel.printk
kernel.printk = 4 4 1 7
[root@nextsv log]# sysctl -w kernel.printk="3 4 1 7"
kernel.printk = 3 4 1 7
これをやっても /var/log/messages にログが出力続ける。
下の様にして止めた。
[root@nextsv log]# firewall-cmd --set-log-denied=off
success
ポートは開いていてもサービスの許可も必要っぽい。firewall のサービスの確認
全て確認
[root@nextsv log]# firewall-cmd --list-all-zones
firewall のサービスの確認 httpが無い!
[root@nextsv log]# firewall-cmd --zone=public --list-services --permanent
dhcpv6-client ssh
ファイアウォールの設定でhttpサービスの追加
[root@nextsv log]# firewall-cmd --add-service=http --zone=public --permanent
success
httpサービスが追加されたことが確認できた
[root@nextsv ~]# firewall-cmd --zone=public --list-services --permanent
dhcpv6-client http ssh
内部のhttpサービスの確認 httpが無い
[root@nextsv log]# firewall-cmd --zone=internal --list-services --permanent
dhcpv6-client mdns samba-client ssh
内部internal にhttpサービスの追加(最終的に内部にはこの設定は不要だった)
[root@nextsv log]# firewall-cmd --add-service=http --zone=internal --permanent
success
内部のhttpサービスの確認 httpが追加された
[root@nextsv ~]# firewall-cmd --zone=internal --list-services --permanent
dhcpv6-client http mdns samba-client ssh
ファイアウォール再起動
[root@nextsv log]# firewall-cmd --reload
success
この状態で http://nextsvのIP/ で開いた
これでnextcloudの最初の画面が出た。
dnsサーバーの設定
nextcloud-server IN A xxx.xxx.xxx.xxx (リバースプロシキーのグローバルIP)
webserver1 IN A xxx.xxx.xxx.xxx (リバースプロシキーのグローバルIP)
webserver2 IN A xxx.xxx.xxx.xxx (リバースプロシキーのグローバルIP)
nginx(CentOS 6.9) リバースプロキシーとLet’s Encryptの設定
Pythonをインストール
Pyenvを使うために必要なライブラリなどをインストール(CentOSの場合)
[root@nginxsv ~]# yum install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel bzip2 sqlite zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel
Pyenvをインストール
[root@nginxsv ~]# git clone git://github.com/yyuu/pyenv.git
Pyenvにパスが通るように ~/.bashrc編集してパスを有効にする
[root@nginxsv ~]# cd /root/pyenv
[root@nginxsv pyenv]# vi ~/.bashrc
[root@nginxsv pyenv]# cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export PYENV_ROOT="/root/pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
[root@nginxsv pyenv]# source ~/.bashrc
[root@nginxsv pyenv]# pyenv
pyenv 1.2.13-19-gf3d008f
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using python-build
uninstall Uninstall a specific Python version
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
which Display the full path to an executable
whence List all Python versions that contain the given executable
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
エラーが出てなさそうなのでパスが通ったと思われる。
インストール可能なPythonのバージョンを調べる
[root@nginxsv pyenv]# pyenv install --list
今のバージョンは
[root@nginxsv pyenv]# python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Pyenvを使ってPythonをインストール
参考サイトに合わせて ここではPython2.7.13をインストールします
[root@nginxsv pyenv]# pyenv install 2.7.13
Downloading Python-2.7.13.tar.xz...
-> https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
Installing Python-2.7.13...
Installed Python-2.7.13 to /root/pyenv/versions/2.7.13
インストールしたPythonを使えるようにする
[root@nginxsv pyenv]# pyenv global 2.7.13
インストール結果を確認
[root@nginxsv conf.d]# python
Python 2.7.13 (default, Oct 15 2019, 14:42:03)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
エラーが出てないのでインストール完了の様です。
Let’s EncryptからSSL証明書を取得する
証明書の確認のための専用のパスを作成する
certbotを使って証明書を取得する際、サーバーが存在するか、チェックが行われます。
このチェックに対応するために専用のパスを作成する必要があります。
「Nginxのドキュメントルート以下」にディレクトリを作成する ← 「nginxのルートディレクトリ以下」の間違い?
ドキュメントルートは[nginxのルートディレクトリ]/conf.d/default.confで確認できます。
今回の場合は以下に記載されている内容です。
[root@nginxsv conf.d]# pwd
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf の内容
location / {
root /usr/share/nginx/html; ← ドキュメントルート
index index.html index.htm;
}
■nginxのルートディレクトリ /etc/nginx
■ドキュメントルート /usr/share/nginx/html
よって以下のようにドキュメントルートからパスを設定するために空のディレクトリを作成します。
nginxのルートディレクトリに移動
[root@nginxsv conf.d]# cd /etc/nginx
mkdir [nginxのルートディレクトリ]/html/.well-known
[root@nginxsv html]# mkdir /etc/nginx/html/.well-known
次に、作成したパスをnginx側で使えるようにするために、[nginxのルートディレクトリ]/nginx.confを編集します。
/etc/nginx/nginx.conf を編集
http{
...
server {
listen 80;
listen 443 ssl;
server_name mydomain.xxx;
ssl_certificate /etc/letsencrypt/live/mydomain.xxx/fullchain.pem; ← Let's Encrypt未インストールなのでエラー
ssl_certificate_key /etc/letsencrypt/live/mydomain.xxx/privkey.pem; ← Let's Encrypt未インストールなのでエラー
client_max_body_size 2048m;
location ^~ /.well-known/acme-challenge/ { ← これ
root /usr/share/nginx/html/.well-known; ← これ
}
location / {
proxy_set_header X-Real-IP $remote_addr;
index index.html index.htm;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://nextsvのIP/;
}
}
}
その後、nginxを再起動して、変更内容を適用
まだLet’s EncryptのSSL証明書が無いのでエラー
[root@nginxsv nginx]# service nginx restart
nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/mydomain.xxx/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/mydomain.xxx/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
certbotを(Gitを使って)インストールする
certbotとはLet’s Encrypt が提供しているツールであり、Let’s Encrypt と通信するエージェント(クライアント)です。
Gitを使わない方法もありますが今回はGitを使った方法でインストールします。
[root@nginxsv ~]# git clone https://github.com/certbot/certbot
Initialized empty Git repository in /root/certbot/.git/
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 69382 (delta 0), reused 2 (delta 0), pack-reused 69370
Receiving objects: 100% (69382/69382), 22.81 MiB | 3.84 MiB/s, done.
Resolving deltas: 100% (50869/50869), done.
certbotを使って証明書を取得(失敗)
[root@nginxsv ~]# cd
[root@nginxsv ~]# cd certbot/
[root@nginxsv certbot]# ./certbot-auto certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Error while running nginx -c /etc/nginx/nginx.conf -t.
nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/mydomain.xxx/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/mydomain.xxx/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
失敗した
/etc/nginx/nginx.conf でエラーになる次の2行をコメントアウトしてみた
# ssl_certificate /etc/letsencrypt/live/mydomain.xxx/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/mydomain.xxx/privkey.pem;
これで
[root@nginxsv nginx]# service nginx restart
nginx を停止中: [ OK ]
nginx を起動中: [ OK ]
これでnginxは一応起動できた。
再度 certbotを使って証明書を取得 各種設定
[root@nginxsv certbot]# pwd
/root/certbot
[root@nginxsv certbot]# ./certbot-auto certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Apache Web Server plugin (apache)
2: Nginx Web Server plugin (nginx)
3: Spin up a temporary webserver (standalone)
4: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-4] then [enter] (press 'c' to cancel): 4
Plugins selected: Authenticator webroot, Installer None
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel): mydomain.xxx
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mydomain.xxx
Input the webroot for mydomain.xxx: (Enter 'c' to cancel): /usr/share/nginx/html/.well-known
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mydomain.xxx/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mydomain.xxx/privkey.pem
Your cert will expire on 2020-01-13. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
うまくいった?確認
[root@nginxsv mydomain.xxx]# pwd
/etc/letsencrypt/live/mydomain.xxx
[root@nginxsv mydomain.xxx]# ls -l
合計 4
-rw-r--r-- 1 root root 692 10月 15 23:27 2019 README
lrwxrwxrwx 1 root root 39 10月 15 23:27 2019 cert.pem -> ../../archive/mydomain.xxx/cert1.pem
lrwxrwxrwx 1 root root 40 10月 15 23:27 2019 chain.pem -> ../../archive/mydomain.xxx/chain1.pem
lrwxrwxrwx 1 root root 44 10月 15 23:27 2019 fullchain.pem -> ../../archive/mydomain.xxx/fullchain1.pem
lrwxrwxrwx 1 root root 42 10月 15 23:27 2019 privkey.pem -> ../../archive/mydomain.xxx/privkey1.pem
証明書が出来ているので成功したのかも。
/etc/nginx/nginx.conf の先ほどコメントアウトした2行のコメントアウトをはずす
ssl_certificate /etc/letsencrypt/live/mydomain.xxx/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.xxx/privkey.pem;
nginxを再起動してリバースプロキシーに問題ないか確認
[root@nginxsv nginx]# service nginx restart
nginx を停止中: [ OK ]
nginx を起動中: [ OK ]
所感
- phpのインストールが大変 phpのバージョンを上げるとなると憂鬱 OSSってこういうものか
- リバースプロキシーを使っているのでその分インストールが複雑。情報も少ない。
- リバースプロシキー側にSSL証明書を入れるのかNextcloud側に入れるのか判らなかった。
- 当初Nextcloud側にSSL証明書を入れたがダメだった。
- Nextcloudの初期画面が出るまで大変だ。
コメント