前回の記事はこちら。
>>CentOS 8の構築メモ 1
CentOS 8 構築 2
p2-php (rep2)
p2-phpのページ通りだが、dnfで以下を入れた。dnf install php-mbstring php-json php-pdo php-xml
2chproxy.pl
バックアップしておいた2chproxy.plディレクトリを転送。以下で実行するもの起動せず。
/usr/local/bin/2chproxy.pl/2chproxy.pl --config /usr/local/bin/2chproxy.pl/config.yml -daemon Can't locate HTTP/Daemon.pm in @INC (you may need to install the HTTP::Daemon module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/local/bin/2chproxy.pl/2chproxy.pl line 42. BEGIN failed--compilation aborted at /usr/local/bin/2chproxy.pl/2chproxy.pl line 42.
dnf install perl-HTTP-Daemon --enablerepo PowerTools ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリ サイズ ======================================================================================================================== Installing: perl-HTTP-Daemon noarch 6.01-23.el8 @commandline 26 k 依存関係をインストール中: perl-Compress-Raw-Bzip2 x86_64 2.081-1.el8 AppStream 40 k perl-Compress-Raw-Zlib x86_64 2.081-1.el8 AppStream 68 k perl-Encode-Locale noarch 1.05-9.el8 AppStream 21 k perl-HTTP-Date noarch 6.02-18.el8 AppStream 19 k perl-HTTP-Message noarch 6.18-1.el8 AppStream 100 k perl-IO-Compress noarch 2.081-1.el8 AppStream 258 k perl-IO-HTML noarch 1.001-10.el8 AppStream 28 k perl-LWP-MediaTypes noarch 6.02-14.el8 AppStream 29 k perl-TimeDate noarch 1:2.30-13.el8 AppStream 53 k
/usr/local/bin/2chproxy.pl/2chproxy.pl --config /usr/local/bin/2chproxy.pl/config.yml -daemon Can't locate LWP/UserAgent.pm in @INC (you may need to install the LWP::UserAgent module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/local/bin/2chproxy.pl/2chproxy.pl line 44. BEGIN failed--compilation aborted at /usr/local/bin/2chproxy.pl/2chproxy.pl line 44.
dnf install perl-libwww-perl ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリ サイズ ======================================================================================================================== Installing: perl-libwww-perl noarch 6.34-1.el8 AppStream 212 k 依存関係をインストール中: perl-Data-Dump noarch 1.23-7.el8 AppStream 36 k perl-Digest-HMAC noarch 1.03-17.el8 AppStream 20 k perl-Digest-SHA x86_64 1:6.02-1.el8 AppStream 66 k perl-File-Listing noarch 6.04-17.el8 AppStream 18 k perl-HTML-Parser x86_64 3.72-14.el8 AppStream 119 k perl-HTML-Tagset noarch 3.20-33.el8 AppStream 24 k perl-HTTP-Cookies noarch 6.04-2.el8 AppStream 39 k perl-HTTP-Negotiate noarch 6.01-19.el8 AppStream 22 k perl-NTLM noarch 1.09-17.el8 AppStream 24 k perl-Net-HTTP noarch 6.17-2.el8 AppStream 43 k perl-Try-Tiny noarch 0.30-2.el8 AppStream 44 k perl-WWW-RobotRules noarch 6.02-18.el8 AppStream 22 k
dnf install perl-YAML-Tiny --enablerepo PowerTools ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリ サイズ ======================================================================================================================== Installing: perl-YAML-Tiny noarch 1.73-2.el8 @commandline 50 k
/usr/local/bin/2chproxy.pl/2chproxy.pl --config /usr/local/bin/2chproxy.pl/config.yml -daemon Option d does not take an argument [0|1617] PROCESS: listen to http://[::1]:8082/こちらを参考にサービス化しました。
vi /etc/systemd/system/2chproxy.service
[Unit] Description = 2ch proxy daemon Wants=network-online.target After=network-online.target [Service] ExecStart = /usr/local/bin/2chproxy.pl/2chproxy.pl --config /usr/local/bin/2chproxy.pl/config.yml Restart = always Type = simple [Install] WantedBy = multi-user.target
systemctl start 2chproxy systemctl enable 2chproxy
Tiny Tiny RSS
バックアップしておいたmariaDBのdump入れる。mysql -u root -p Enter password: CREATE DATABASE ttrss; quit mysql -u root -p ttrss < ttrss.dump Enter password:
dnf install git dnf install php-intl php-processあとは、以下の記事の流れで実施。
【初めてのiPhone】Tiny Tiny RSSを使いやすくする
Feedのアップデートは、nginx + mysql用に以下に変更。
[Unit] Description=ttrss_backend After=network.target mysqld.service [Service] User=nginx ExecStart=/var/www/html/tt-rss/update_daemon2.php [Install] WantedBy=multi-user.target
Nextcloud
dnf install unzip php-gd php-pecl-zip php-opcache samba-client wget https://download.nextcloud.com/server/releases/nextcloud-16.0.5.zip unzip nextcloud-*.zip cp -R nextcloud/ /var/www/html/ mkdir /home/nextcloud chown -R nginx. /home/nextcloud/ chown -R nginx. /var/www/html/nextcloud/
ログインできないときの対処
chown -R nginx. /var/lib/php/session/
DB作成
mysql -u root -p Enter password: CREATE DATABASE nextcloud CHARACTER SET utf8mb4; quit
PHP OPcache設定
vi /etc/php.d/10-opcache.ini以下を追加。
opcache.max_accelerated_files=10000 opcache.revalidate_freq=1 opcache.save_comments=1
PHP-FPMチューニング
vi /etc/php-fpm.d/www.conf以下に変更。
pm.max_children = 120 pm.start_servers = 12 pm.min_spare_servers = 6 pm.max_spare_servers = 18 clear_env = no systemctl restart php-fpm
MySQLチューニング
vi /etc/my.cnf.d/mysql-server.cnf以下を追加。
innodb_buffer_pool_size=1G innodb_io_capacity=4000Nextcloudにアクセスし、ユーザ作成と、mysqlの指定を行う。
データフォルダは、/home/nextcloud/とする。
nginx追加設定
vi /etc/nginx/nginx.conf追加部分を記載。
http { server { listen 443 ssl http2 default_server; # For Nextcloud add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; add_header X-Frame-Options "SAMEORIGIN" always; fastcgi_hide_header X-Powered-By; location = /.well-known/carddav { return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav; } location /.well-known/acme-challenge { } location ^~ /nextcloud { client_max_body_size 512M; fastcgi_buffers 64 4K; gzip on; gzip_vary on; gzip_comp_level 4; gzip_min_length 256; gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; location /nextcloud { rewrite ^ /nextcloud/index.php$request_uri; } location ~ ^\/nextcloud\/(?:build|tests|config|lib|3rdparty|templates|data)\/ { deny all; } location ~ ^\/nextcloud\/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^\/nextcloud\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) { fastcgi_split_path_info ^(.+?\.php)(\/.*|)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; } location ~ ^\/nextcloud\/(?:updater|oc[ms]-provider)(?:$|\/) { try_files $uri/ =404; index index.php; } location ~ ^\/nextcloud\/.+[^\/]\.(?:css|js|woff2?|svg|gif|map)$ { try_files $uri /nextcloud/index.php$request_uri; add_header Cache-Control "public, max-age=15778463"; add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; add_header X-Frame-Options "SAMEORIGIN" always; # Optional: Don't log access to assets access_log off; } location ~ ^\/nextcloud\/.+[^\/]\.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ { try_files $uri /nextcloud/index.php$request_uri; access_log off; } } }
SAMBAアクセス設定
アプリからExternal Storageを追加し、SAMBAにアクセスする設定をする。(SAMBAインストール後に実施)\\サーバのIP\aaa\bbb\cccを指定する場合
フォルダ名:任意 外部ストレージ:SMB / CIFS ホスト:localhost 共有:/aaa リモートサブフォルダー:bbb/ccc ドメイン:(空欄) 隠しファイルを表示:チェックなし ユーザー名:そのフォルダにアクセスするユーザ名 パスワード:そのフォルダにアクセスするユーザ名のパスワード
cron登録
vi /etc/systemd/system/nextcloudcron.service
[Unit] Description=Nextcloud cron.php job [Service] User=nginx ExecStart=/usr/bin/php -f /var/www/html/nextcloud/cron.php [Install] WantedBy=basic.target
vi /etc/systemd/system/nextcloudcron.timer
[Unit] Description=Run Nextcloud cron.php every 5 minutes [Timer] OnBootSec=5min OnUnitActiveSec=5min Unit=nextcloudcron.service [Install] WantedBy=timers.target
systemctl enable --now nextcloudcron.timer
Samba
今回は、ADサーバは使用しない。dnf install sambaあとはこちらの通りでした。
ADをやめたからなのか、LVMをやめたからなのか分かりませんが、転送速度が向上しました。