 |
 |
今次我用 2 粒 CPU Core +16GB RAM +2TB HD,試試用 NextCloud 推薦嘅硬件,咁多 RAM,停電就更大鑊,要做好 backup 先得。😎 |
先整個 static IP,要 edit 隻
/etc/netplan/50-cloud-init.yaml |
 |
 |
未改之前 |
我就改成咁,你就根據自己需要嚟改啦。 |
安裝 apache2
#下載/安裝
sudo apt install apache2
#disable directory listing,你可以 manual 改隻 conf 檔案都得
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
#啟動隻 apache2
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
|
安裝 MariaDB
#下載/安裝
sudo apt install mariadb-server mariadb-client
#啟動隻 MariaDB
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
#secure 隻 MariaDB server
sudo mysql_secure_installation
|
Secure 過程中嘅問答
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
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): XXXXXXXXXX
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, 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] Y
... 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] n
... skipping.
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] Y
- 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] Y
... 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!
|
安裝 PHP 同埋一啲相關嘅 Modules
#下載/安裝
apt-get install php
#check 下你隻 PHP 係咩 version
php -v
#安裝常用嘅 php 7.2 modules:
apt install php-pear php-fpm php-dev php-zip php-curl php-xmlrpc php-gd php-mysql php-mbstring php-xml libapache2-mod-php
#安裝 nextcloud 要用嘅 moduels,目前係 PHP v7.2
apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-apcu php7.2-smbclient php7.2-ldap php7.2-redis php7.2-gd php7.2-xml php7.2-intl php7.2-json php7.2-imagick php7.2-mysql php7.2-cli php7.2-ldap php7.2-zip php7.2-curl
|
修改 PHP 嘅 default parameters:
#用 vi edit 隻 ini 檔案
sudo vi /etc/php/7.2/apache2/php.ini
#搵出以下幾行,改之
file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 2000M
display_errors = Off
date.timezone = Asia/Hong_Kong
|
建立 NextCloud database:
#登入 MariaDB
sudo mysql-u root -p
#登入之後,首先 create 隻 database
CREATE DATABASE nextcloud;
#Create 另一個 user,專門俾 NextCloud 用
CREATE USER 'nxstudio'@'localhost' IDENTIFIED BY 'XXXXXXXXXX';
#准哩個 user remote 登入,我諗住可以有備無患啫
GRANT USAGE ON *.* TO 'nxstudio'@'%' IDENTIFIED BY 'XXXXXXXXXX';
#准埋 root user remote 登入
GRANT USAGE ON *.* TO 'root'@'%' IDENTIFIED BY 'XXXXXXXXXX';
#准 user nxstudio 用 database 'nextcloud'
GRANT ALL ON nextcloud.* TO 'nxstudio'@'%' IDENTIFIED BY 'XXXXXXXXXX' WITH GRANT OPTION;
#搞掂,收工
FLUSH PRIVILEGES;
EXIT;
|
 |
 |
初步測試,DBeaver 用 root 登入成功。 |
DBeaver 用 nxstudio 登入成功,要指明用 nextcloud 哦,因為 nxstudio 衹可以用預設嘅 database,而 root 就冇限制。 |
安裝 NextCloud:
#下載最新 NextCloud,目前係 v13.06
cd /tmp && wget https://download.nextcloud.com/server/releases/latest-13.zip
#解壓
unzip latest-13.zip
#抄去 web server directory,我唔選 under /var/www/html,個人習慣,:)
sudo mv nextcloud /var/www/nextcloud/
#更改 owner
sudo chown -R www-data:www-data /var/www/nextcloud/
#更改 permission
sudo chmod -R 755 /var/www/nextcloud/
|
執正 NextCloud 喺 apache2 嘅 conf 檔案(1):
#Edit conf 檔案 - nextcloud.conf
sudo vi /etc/apache2/sites-available/nextcloud.conf
#我用嘅 conf 檔案,俾內聯網用嘅(http://192.168.12.148/nextcloud/):
Alias /nextcloud "/var/www/nextcloud/"
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
|
執正 NextCloud 喺 apache2 嘅 conf 檔案(2):
#Edit conf 檔案 - nc.domain.conf
sudo vi /etc/apache2/sites-available/nc.domain.conf
#我用嘅 conf 檔案,俾 domain name 用嘅(http://nc.domain.com/):
# Ensure that Apache listens on port 80
#Listen 80
DocumentRoot "/var/www/nextcloud/"
ServerName nc.domain.com
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any
|
啟動:
#Activate 兩隻 conf 檔案
sudo a2ensite nextcloud.conf
sudo a2ensite nc.domain.conf
#apache2 hardening
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
#restart apache2
sudo systemctl restart apache2.srvice
|
 |
第一次 access 你隻 NextCloud 要輸入嘅資料,填錯就關人囉!我用(順序):
nxstudio
XXXXXXXXXX
/var/www/nextcloud/data
nxstudio
XXXXXXXXXX
nextcloud
localhost
到此,你隻 NextCloud 已經可以用得!🤓 以下係 NextCloud Tuning。
|
Enable PHP OpCache:
#修改 PHP 隻 ini 檔案
#PHP 用 memory caches,前題係你有安裝 PHP-FPM 又叫(FastCGI),我哋有 :)
sudo vi /etc/php/7.2/fpm/conf.d/10-opcache.ini
#加下面幾行
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
|
Enable Redis memory cache/ file locking:
#下載/安裝 Redis
sudo apt install redis-server php-redis -y
#修改 /var/www/nextcloud/config/config.php 如果你打算淨係用 Redis 做哂 cache + locking
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
|
Enable PHP APCu memory cache:
#下載/安裝 PHP APCu
sudo apt install php-apcu -y
#修改 /var/www/nextcloud/config/config.php 如果你打算用 Redis 做 locaking 同時用 PHP ACPu 做 cache
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
如果你部機 RAM 得 2GB 或以下,建議淨係用 Redis,唔好同時用 PHP APCu,我有 16GB 當然可以了。😇 |