Last active
January 4, 2019 03:15
-
-
Save bohanyang/024edb232a175b2697398442ed78fc16 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Optional: php7.3-imap php7.3-ldap php7.3-pgsql php-memcached php-smbclient | |
sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.xyz/php/apt.gpg; \ | |
echo "deb https://packages.sury.xyz/php $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list; \ | |
sudo apt update; \ | |
sudo apt upgrade -y; \ | |
sudo apt install -y php7.3-fpm php7.3-bcmath php7.3-bz2 php7.3-curl php7.3-gd php7.3-gmp php7.3-intl php7.3-json php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-readline php7.3-sqlite3 php7.3-xml php7.3-zip php-apcu php-redis php-imagick redis-server mariadb-server nginx; \ | |
echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost' AND plugin = 'unix_socket';" | sudo mysql; \ | |
sudo mysql_secure_installation; \ | |
sudo cp /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf.backup; \ | |
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf | |
transaction_isolation = READ-COMMITTED | |
binlog_format = ROW | |
innodb_large_prefix=on | |
innodb_file_format=barracuda | |
innodb_file_per_table=1 | |
# SELECT User, Host, plugin FROM mysql.user; | |
# CREATE USER 'www-data'@'localhost' IDENTIFIED WITH 'unix_socket'; | |
# GRANT ALL PRIVILEGES ON *.* TO 'www-data'@'localhost'; | |
# FLUSH PRIVILEGES; | |
sudo systemctl restart mariadb; \ | |
echo "CREATE USER 'nextcloud'@'localhost' IDENTIFIED WITH 'mysql_native_password'; SET PASSWORD FOR 'nextcloud'@'localhost' = PASSWORD('{{dbsecret}}'); CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';" | sudo mysql -p; \ | |
printf "\napc.enable_cli=1\n" | sudo tee -a /etc/php/7.3/mods-available/apcu.ini; \ | |
sudo cp /etc/php/7.3/fpm/php.ini /etc/php/7.3/fpm/php.ini.backup; \ | |
sudo sed -i 's/^;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.3/fpm/php.ini; \ | |
sudo sed -i 's/^;opcache.enable=1/opcache.enable=1/' /etc/php/7.3/fpm/php.ini; \ | |
sudo sed -i 's/^;opcache.enable_cli=0/opcache.enable_cli=1/' /etc/php/7.3/fpm/php.ini; \ | |
sudo sed -i 's/^;opcache.memory_consumption=128/opcache.memory_consumption=128/' /etc/php/7.3/fpm/php.ini; \ | |
sudo sed -i 's/^;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=8/' /etc/php/7.3/fpm/php.ini; \ | |
sudo sed -i 's/^;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/' /etc/php/7.3/fpm/php.ini; \ | |
sudo sed -i 's/^;opcache.revalidate_freq=2/opcache.revalidate_freq=1/' /etc/php/7.3/fpm/php.ini; \ | |
sudo sed -i 's/^;opcache.save_comments=1/opcache.save_comments=1/' /etc/php/7.3/fpm/php.ini; \ | |
sudo cp /etc/php/7.3/fpm/pool.d/www.conf /etc/php/7.3/fpm/pool.d/www.conf.backup; \ | |
sudo sed -i 's/^;clear_env = no/clear_env = no/' /etc/php/7.3/fpm/pool.d/www.conf; \ | |
sudo systemctl restart php7.3-fpm; \ | |
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.backup; \ | |
sudo sed -i 's,^# unixsocket /var/run/redis/redis.sock,unixsocket /var/run/redis/redis.sock,' /etc/redis/redis.conf; \ | |
sudo sed -i 's,^# unixsocketperm 700,unixsocketperm 666,' /etc/redis/redis.conf; \ | |
sudo sed -i 's,^# requirepass foobared,requirepass {{rdsecret}},' /etc/redis/redis.conf; \ | |
sudo systemctl restart redis-server; \ | |
git clone git@github.com:brentybh/nextcloud-nginx-config.git; \ | |
wget https://github.com/nginx/nginx/archive/release-1.10.3.tar.gz; \ | |
mkdir nginx-source; \ | |
tar --extract --file=release-1.10.3.tar.gz --strip-components=1 --directory=nginx-source; \ | |
rm release-1.10.3.tar.gz; \ | |
cp -R /etc/nginx nginx-config; \ | |
sudo rm -r /etc/nginx; \ | |
sudo mkdir /etc/nginx; \ | |
sudo cp -R nginx-source/conf/. /etc/nginx; \ | |
sudo cp -R nextcloud-nginx-config/* /etc/nginx; \ | |
sudo nginx -t; \ | |
sudo systemctl reload nginx; \ | |
sudo mkdir -p /var/data/nextcloud /var/www/nextcloud; \ | |
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.0.tar.bz2; \ | |
sudo tar --extract --file=nextcloud-15.0.0.tar.bz2 --strip-components=1 --directory=/var/www/nextcloud; \ | |
rm nextcloud-15.0.0.tar.bz2; \ | |
sudo chown -R www-data:www-data /var/data/nextcloud /var/www/nextcloud | |
alias occ='sudo -u www-data -g www-data php /var/www/nextcloud/occ' | |
occ maintenance:install --database mysql --database-name nextcloud --database-user nextcloud --database-pass '{{dbsecret}}' --database-table-prefix '' --admin-user '{{username}}' --admin-pass '{{ocsecret}}' --admin-email '{{useremail}}' --data-dir /var/data/nextcloud; \ | |
occ db:convert-filecache-bigint; \ | |
occ config:system:set overwrite.cli.url --value='https://nextcloud.bohan.co'; \ | |
occ config:system:set trusted_domains 0 --value=nextcloud.bohan.co; \ | |
occ config:system:set memcache.local --value='\OC\Memcache\APCu'; \ | |
occ config:system:set redis host --value=/var/run/redis/redis.sock; \ | |
occ config:system:set redis port --type=integer --value=0; \ | |
occ config:system:set redis dbindex --type=integer --value=1; \ | |
occ config:system:set redis password --value='{{rdsecret}}'; \ | |
occ config:system:set redis timeout --type=float --value=1.5; \ | |
occ config:system:set memcache.locking --value='\OC\Memcache\Redis'; \ | |
occ config:system:set mail_smtpmode --value='smtp'; \ | |
occ config:system:set mail_smtphost --value='{{smtphost}}'; \ | |
occ config:system:set mail_sendmailmode --value='smtp'; \ | |
occ config:system:set mail_smtpauth --type=boolean --value='true'; \ | |
occ config:system:set mail_smtpport --type=integer --value={{smtpport}}; \ | |
occ config:system:set mail_smtpauthtype --value='LOGIN'; \ | |
occ config:system:set mail_from_address --value='{{smtppreat}}'; \ | |
occ config:system:set mail_domain --value='{{smtppostat}}'; \ | |
occ config:system:set mail_smtpsecure --value='{{smtpsecure}}'; \ | |
occ config:system:set mail_smtpname --value='{{smtpusername}}'; \ | |
occ config:system:set mail_smtppassword --value='{{smtpsecret}}' | |
sudo tee /etc/systemd/system/nextcloud-cron.service << EOF | |
[Unit] | |
Description=Nextcloud Cron Job | |
[Service] | |
User=www-data | |
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php | |
[Install] | |
WantedBy=basic.target | |
EOF | |
sudo tee /etc/systemd/system/nextcloud-cron.timer << EOF | |
[Unit] | |
Description=Run Nextcloud Cron Job Every 15 Minutes | |
[Timer] | |
OnBootSec=5min | |
OnUnitActiveSec=15min | |
Unit=nextcloud-cron.service | |
[Install] | |
WantedBy=timers.target | |
EOF | |
sudo systemctl start nextcloud-cron.timer; \ | |
sudo systemctl enable nextcloud-cron.timer | |
printf "\n" >> .zshrc; \ | |
echo "alias occ='sudo -u www-data -g www-data php /var/www/nextcloud/occ'" >> .zshrc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment