WordPress へようこそ。こちらは最初の投稿です。編集または削除し、コンテンツ作成を始めてください。
Blog
-
Setup Neovim on Manjaro Linux
Install Neovim
First of all, install neovim
$ sudo pacman -S neovimInstall Languages Providers
Install Programing Languages
$ sudo pacman -S ruby nodejs perlInstall Python provider
$ sudo pacman -S python-pynvimInstall Ruby provider
$ yay -S ruby-neovimEdit .profile in home directory and add a gem path.
$ vim ~/.profile# Add Ruby Gem Path export PATH=$PATH:$HOME/.local/share/gem/3.0.0/binReload .profile file.
$ source ~/.profileInstall Node.js provider
$ yay -S nodejs-neovimEdit Environment Variables for Perl provider
Edit .profile on your home directory.
$ vim ~/.profile# Add Perl Environment Variables export PERL_MB_OPT="--install_base $HOME/perl5" export PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" export PERL_LOCAL_LIB_ROOT=$HOME/perl5 export PERL5LIB="$$PERL5LIB:$HOME/perl5/lib/perl5" export PATH="$PATH:$HOME/perl5/bin"Reload .profile file.
$ source ~/.profileInstall Perl provider
$ sudo pacman -S cpanminus $ sudo pacman -S perl-local-lib $ cpanm -n Neovim::ExtInstall Clipboard
$ sudo pacman -S xclipEnable Clipboard
Edit ~/.config/nvim/init.vim
set clipboard+=unnamed,unnamedplusChack health
Open neovim and type following command.
:checkhealthNote:
If you have installed Perl host provider(Neovim::Ext) and still checkhealth warning appears, delete ~/perl5 directory, and reinstall Neovim::Ext.
$ rm -rf ~/perl5 $ cpanm -n Neovim::Ext -
Setup In-memory Cache on Nextcloud
Setup In-memory cache on Nextcloud
You shoud setup memory cache on Nextcloud for performance. Now I choosed APCu for local memory cache, Redis for distributed and locking memory cache.
Enable memory cache on Nextcloud
Edit nextcloud config.php file.
$ sudo vi /misc/extHDD/nc.lama-lab.mydns.jp/config/config.php... 'memcache.local'=>'\OC\Memcache\APCu', 'memcache.distributed'=>'\OC\Memcache\Redis', 'memcache.locking'=>'\OC\Memcache\Redis', 'redis' => array ( 'host'=>'/run/redis/redis.sock', 'port'=>0, 'dbindex'=>0, 'password'=>'', 'timeout'=>1.5, ), ...Restart Nginx
$ sudo systemctl restart nginx -
Install Memory Cache
To enhance performance of Nextcloud, Install memory cache. Redis is a key-value memory cache.
Install Redis
$ sudo pacman -S redisConfigure Redis
Enable socket communications to Redis for perfomance.
$ sudo vi /etc/redis/redis.conf... port 0 unixsocket /run/redis/redis.sock unixsocketperm 700 ...$ sudo systemctl start redis $sudo systemctl enable redisCheck socket communications
$ sudo redis-cli -s /run/redis/redis.sock > monitorIf this command returns OK, the socket communication is established properly.
Restart and Enable Redis
$ sudo systemctl restart redis $ sudo systemctl enable redis -
Tune up php.ini file
For performance, tune up php.ini file.
Edit php.ini
$ sudo vi /etc/php/php.ini... memory_limit=512M upload_max_filesize=5G post_max_size=5G cgi.fix_pathinfo=0 zend_extenson=opcache [opcache] opcache.enable=1 opcache.intend_string_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=2 ...Restart PHP-FPM
$ sudo systemctl restart php-fpm -
HTTP/2
Enable HTTP/2
To enable HTTP/2 connections, edit nginx site speciffic files.
$ sudo vi /etc/nginx/sites-available/www.lama-lab.mydns.jp.confAdd “http2” word at the end of listen sentence.
... listen 443 ssl http2 listen [::]:443 ssl http2 ...Then restart Nginx.
$ sudo systemctl restart nginx -
SSL
Install Certbot
You can use free SSL certification by Let’s Encrypt. First, you should install certbot to use Let’s Encrypt.
$ sudo pacman -S certbot certbot-nginxCertificate sites
To certificate domain www.lama-lab.mydns.jp/ and nc.lama-lab.mydns.jp, type
$ sudo certbot --nginx --agree-tos --domain www.lama-lab.mydns.jp/ --domain nc.lama-lab.mydns.jp --email 'msguardian06@gmail.com' --no-eff-emailConfigure Firewall
$ sudo ufw allow https $ sudo ufw reloadScheduling Certification renew
The certification will be expired every 3 months. So you should renew the certification automatically.
$ sudo vi /etc/cron.daily/certbot-renew#!/bin/sh certbot renew --post-hook "systemctl reload nginx"Change the permission of the script.
$sudo chmod 755 /etc/cron.daily/certbot-renewNote: How to delete a certification
To delete a certification, type
$ sudo certbot delete --cert-name www.lama-lab.mydns.jp/ -
Setup Nextcloud
Download and extract Nextcloud
$ wget https://download.nextcloud.com/server/releases/latest.tar.bz2 $ sudo mv latest.tar.bz2 /misc/extHDD/ $ sudo tar xvjf latest.tar.bz2 $ sudo mv /misc/extHDD/nextcloud /misc/extHDD/nc.lama-lab.mydns.jp $ sudo chown http:http /misc/extHDD/nc.lama-lab.mydns.jpAccomplish Setup
Visit
http://nc.lama-lab.mydns.jpAnd input all database infomation. Then all is done!!
-
Configure Nginx for Nextcloud
Deploy config files
Nextcloud config file
$ sudo vi /etc/nginx/global/nextcloud.conf# Prevent nginx HTTP Server Detection server_tokens off; # set max upload size and increase upload timeout: client_max_body_size 5G; client_body_buffer_size 512M; client_body_timeout 1800s; fastcgi_read_timeout 1800s; fastcgi_buffers 64 8K; # HTTP response headers borrowed from Nextcloud `.htaccess` add_header Referrer-Policy "no-referrer" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Download-Options "noopen" always; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Permitted-Cross-Domain-Policies "none" always; add_header X-Robots-Tag "none" always; add_header X-XSS-Protection "1; mode=block" always; # Remove X-Powered-By, which is an information leak fastcgi_hide_header X-Powered-By; # Specify how to handle directories -- specifying `/index.php$request_uri` # here as the fallback means that Nginx always exhibits the desired behaviour # when a client requests a path that corresponds to a directory that exists # on the server. In particular, if that directory contains an index.php file, # that file is correctly served; if it doesn't, then the request is passed to # the front-end controller. This consistent behaviour means that we don't need # to specify custom rules for certain paths (e.g. images and other assets, # `/updater`, `/ocm-provider`, `/ocs-provider`), and thus # `try_files $uri $uri/ /index.php$request_uri` # always provides the desired behaviour. index index.php index.html /index.php$request_uri; # Rule borrowed from `.htaccess` to handle Microsoft DAV clients location = / { if ( $http_user_agent ~ ^DavClnt ) { return 302 /remote.php/webdav/$is_args$args; } } # Make a regex exception for `/.well-known` so that clients can still # access it despite the existence of the regex rule # `location ~ /(\.|autotest|...)` which would otherwise handle requests # for `/.well-known`. location ^~ /.well-known { # The rules in this block are an adaptation of the rules # in `.htaccess` that concern `/.well-known`. location = /.well-known/carddav { return 301 /remote.php/dav/; } location = /.well-known/caldav { return 301 /remote.php/dav/; } location /.well-known/acme-challenge { try_files $uri $uri/ =404; } location /.well-known/pki-validation { try_files $uri $uri/ =404; } # Let Nextcloud's API for `/.well-known` URIs handle all other # requests by passing them to the front-end controller. return 301 /index.php$request_uri; } # Rules borrowed from `.htaccess` to hide certain paths from clients location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } # Ensure this block, which passes PHP files to the PHP process, is above the blocks # which handle static assets (as seen below). If this block is not declared first, # then Nginx will encounter an infinite rewriting loop when it prepends `/index.php` # to the URI, resulting in a HTTP 500 error response. location ~ \.php(?:$|/) { # Required for legacy support rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri; fastcgi_split_path_info ^(.+?\.php)(/.*)$; set $path_info $fastcgi_path_info; try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice fastcgi_param front_controller_active true; # Enable pretty urls fastcgi_pass php-handler; fastcgi_intercept_errors on; fastcgi_request_buffering off; fastcgi_max_temp_file_size 0; fastcgi_connect_timeout 1800s; fastcgi_read_timeout 1800s; } location ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ { try_files $uri /index.php$request_uri; add_header Cache-Control "public, max-age=15778463, $asset_immutable"; access_log off; # Optional: Don't log access to assets location ~ \.wasm$ { default_type application/wasm; } } location ~ \.woff2?$ { try_files $uri /index.php$request_uri; expires 7d; # Cache-Control policy borrowed from `.htaccess` access_log off; # Optional: Don't log access to assets } # Rule borrowed from `.htaccess` location /remote { return 301 /remote.php$request_uri; } location / { try_files $uri $uri/ /index.php$request_uri; }Site specific config file
$ sudo vi /etc/nginx/sites-available/nc.lama-lab.mydns.jp# Set the `immutable` cache control options only for assets with a cache busting `v` argument map $arg_v $asset_immutable { "" ""; default "immutable"; } # Redirect everything to the main site. We use a separate server statement and > #server { # server_name _; # return 302 $scheme://nc.lama-lab.mydns.jp$request_uri; #} server { server_name nc.lama-lab.mydns.jp; root /misc/extHDD/nc.lama-lab.mydns.jp; access_log /var/log/nginx/nc.lama-lab.mydns.jp.access.log; error_log /var/log/nginx/nc.lama-lab.mydns.jp.error.log; index index.php; include global/restrictions.conf; # Additional rules go here. # Only include one of the files below. include global/nextcloud.conf; # include global/nextcloud-ms-subdir.conf; # include global/nextcloud-ms-subdomain.conf; listen [::]:80; listen 80; }Enable the Web site
$ sudo ln -s /etc/nginx/sites-available/nc.lama-lab.mydns.jp.conf /etc/nginx/sites-enabled/nc.lama-lab.mydns.jp.conf$ sudo systemctl restart nginx $ sudo systemctl restart php-fpm -
Create Database for Nextcloud
Database Infomation
- Database name : nextcloud_db
- User name : nextcloud_user
- Character set : utf8mb4
- Password : XXXXXXXX
Create Database
$ sudo mysql -u root -p> CREATE DATABASE nextcloud_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; > GRANT ALL PRIVILLEGES ON nextcloud_db.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'XXXXXXXX'; > FLUSH PRIVILLEGES; > EXIT;