diff --git a/bin/wsl-init b/bin/wsl-init index 74574ebdf..03ecccf78 100644 --- a/bin/wsl-init +++ b/bin/wsl-init @@ -35,19 +35,6 @@ END wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - -## Install RabbitMQ signing key -curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add - - -#tee /etc/apt/sources.list.d/bintray.rabbitmq.list <> /etc/php/8.0/mods-available/xdebug.ini -echo "xdebug.discover_client_host = true" >> /etc/php/8.0/mods-available/xdebug.ini -echo "xdebug.client_port = 9003" >> /etc/php/8.0/mods-available/xdebug.ini -echo "xdebug.max_nesting_level = 512" >> /etc/php/8.0/mods-available/xdebug.ini -echo "opcache.revalidate_freq = 0" >> /etc/php/8.0/mods-available/opcache.ini - -sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/8.0/fpm/php.ini -sed -i "s/display_errors = .*/display_errors = On/" /etc/php/8.0/fpm/php.ini -sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/8.0/fpm/php.ini -sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/8.0/fpm/php.ini -sed -i "s/upload_max_filesize = .*/upload_max_filesize = 100M/" /etc/php/8.0/fpm/php.ini -sed -i "s/post_max_size = .*/post_max_size = 100M/" /etc/php/8.0/fpm/php.ini -sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/8.0/fpm/php.ini - -printf "[openssl]\n" | tee -a /etc/php/8.0/fpm/php.ini -printf "openssl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.0/fpm/php.ini - -printf "[curl]\n" | tee -a /etc/php/8.0/fpm/php.ini -printf "curl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.0/fpm/php.ini +sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/8.2/fpm/php.ini +sed -i "s/display_errors = .*/display_errors = On/" /etc/php/8.2/fpm/php.ini +sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/8.2/fpm/php.ini +sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/8.2/fpm/php.ini +sed -i "s/upload_max_filesize = .*/upload_max_filesize = 100M/" /etc/php/8.2/fpm/php.ini +sed -i "s/post_max_size = .*/post_max_size = 100M/" /etc/php/8.2/fpm/php.ini +sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/8.2/fpm/php.ini + +printf "[openssl]\n" | tee -a /etc/php/8.2/fpm/php.ini +printf "openssl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.2/fpm/php.ini + +printf "[curl]\n" | tee -a /etc/php/8.2/fpm/php.ini +printf "curl.cainfo = /etc/ssl/certs/ca-certificates.crt\n" | tee -a /etc/php/8.2/fpm/php.ini # Disable XDebug On The CLI sudo phpdismod -s cli xdebug @@ -166,12 +114,12 @@ sudo phpdismod -s cli xdebug sed -i "s/user www-data;/user $WSL_USER_NAME;/" /etc/nginx/nginx.conf sed -i "s/# server_names_hash_bucket_size.*/server_names_hash_bucket_size 64;/" /etc/nginx/nginx.conf -sed -i "s/user = www-data/user = $WSL_USER_NAME/" /etc/php/8.0/fpm/pool.d/www.conf -sed -i "s/group = www-data/group = $WSL_USER_NAME/" /etc/php/8.0/fpm/pool.d/www.conf +sed -i "s/user = www-data/user = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf +sed -i "s/group = www-data/group = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf -sed -i "s/listen\.owner.*/listen.owner = $WSL_USER_NAME/" /etc/php/8.0/fpm/pool.d/www.conf -sed -i "s/listen\.group.*/listen.group = $WSL_USER_NAME/" /etc/php/8.0/fpm/pool.d/www.conf -sed -i "s/;listen\.mode.*/listen.mode = 0666/" /etc/php/8.0/fpm/pool.d/www.conf +sed -i "s/listen\.owner.*/listen.owner = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf +sed -i "s/listen\.group.*/listen.group = $WSL_USER_NAME/" /etc/php/8.2/fpm/pool.d/www.conf +sed -i "s/;listen\.mode.*/listen.mode = 0666/" /etc/php/8.2/fpm/pool.d/www.conf service nginx restart service php8.0-fpm restart @@ -184,181 +132,83 @@ groups $WSL_USER_GROUP # Install Node apt-get install -y nodejs /usr/bin/npm install -g npm -#/usr/bin/npm install -g gulp-cli -#/usr/bin/npm install -g bower -#/usr/bin/npm install -g grunt-cli - -## Install rabbitmq-server and its dependencies -#apt-get install rabbitmq-server -y --fix-missing # Install SQLite apt-get install -y sqlite3 libsqlite3-dev -# Install MySQL -echo "mysql-server mysql-server/root_password password secret" | debconf-set-selections -echo "mysql-server mysql-server/root_password_again password secret" | debconf-set-selections -apt-get install -y mysql-server +# Disable Apparmor +# See https://github.com/laravel/homestead/issues/629#issue-247524528 +service apparmor stop +update-rc.d -f apparmor remove + +# Remove MySQL +apt-get remove -y --purge mysql-server mysql-client mysql-common +apt-get autoremove -y +apt-get autoclean + +rm -rf /var/lib/mysql/* +rm -rf /var/log/mysql +rm -rf /etc/mysql -# Configure MySQL 8 Remote Access and Native Pluggable Authentication -cat > /etc/mysql/conf.d/mysqld.cnf << EOF +# Add Maria PPA +curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash + +echo "mariadb-server mysql-server/data-dir select ''" | debconf-set-selections +echo "mariadb-server mysql-server/root_password password secret" | debconf-set-selections +echo "mariadb-server mysql-server/root_password_again password secret" | debconf-set-selections + +mkdir /etc/mysql +touch /etc/mysql/debian.cnf + +# Install MariaDB +apt-get install -y mariadb-server mariadb-client + +# Configure Maria Remote Access and ignore db dirs +sed -i "s/bind-address = 127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/mariadb.conf.d/50-server.cnf +cat > /etc/mysql/mariadb.conf.d/50-server.cnf << EOF [mysqld] bind-address = 0.0.0.0 -default_authentication_plugin = mysql_native_password +ignore-db-dir = lost+found +#general_log +#general_log_file=/var/log/mysql/mariadb.log EOF -## Install LMM for database snapshots -#apt-get install -y thin-provisioning-tools bc -#git clone https://github.com/Lullabot/lmm.git /opt/lmm -#sed -e 's/mysql/homestead-vg/' -i /opt/lmm/config.sh -#ln -s /opt/lmm/lmm /usr/local/sbin/lmm - -# Create a thinly provisioned volume to move the database to. We use 64G as the -# size leaving ~5GB free for other volumes. -#mkdir -p /homestead-vg/master -#sudo lvs -#lvcreate -L 64G -T homestead-vg/thinpool - -# Create a 64GB volume for the database. If needed, it can be expanded with -# lvextend. -#lvcreate -V64G -T homestead-vg/thinpool -n mysql-master -#mkfs.ext4 /dev/homestead-vg/mysql-master -#echo "/dev/homestead-vg/mysql-master\t/homestead-vg/master\text4\terrors=remount-ro\t0\t1" >> /etc/fstab -#mount -a -#chown mysql:mysql /homestead-vg/master - -## Move the data directory and symlink it in. -#systemctl stop mysql -#mv /var/lib/mysql/* /homestead-vg/master -#rm -rf /var/lib/mysql -#ln -s /homestead-vg/master /var/lib/mysql -# -## Allow mysqld to access the new data directories. -#echo '/homestead-vg/ r,' >> /etc/apparmor.d/local/usr.sbin.mysqld -#echo '/homestead-vg/** rwk,' >> /etc/apparmor.d/local/usr.sbin.mysqld -#systemctl restart apparmor -#systemctl start mysql - -# Configure MySQL Password Lifetime -echo "default_password_lifetime = 0" >> /etc/mysql/mysql.conf.d/mysqld.cnf - -# Configure MySQL Remote Access -sed -i '/^bind-address/s/bind-address.*=.*/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf -service mysql restart - export MYSQL_PWD=secret -mysql --user="root" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'secret';" -mysql --user="root" -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;" -mysql --user="root" -e "CREATE USER 'homestead'@'0.0.0.0' IDENTIFIED BY 'secret';" -mysql --user="root" -e "CREATE USER 'homestead'@'%' IDENTIFIED BY 'secret';" -mysql --user="root" -e "GRANT ALL PRIVILEGES ON *.* TO 'homestead'@'0.0.0.0' WITH GRANT OPTION;" -mysql --user="root" -e "GRANT ALL PRIVILEGES ON *.* TO 'homestead'@'%' WITH GRANT OPTION;" -mysql --user="root" -e "FLUSH PRIVILEGES;" -mysql --user="root" -e "CREATE DATABASE homestead character set UTF8mb4 collate utf8mb4_bin;" +mysql --user="root" -e "GRANT ALL ON *.* TO root@'0.0.0.0' IDENTIFIED BY 'secret' WITH GRANT OPTION;" +service mysql restart -sudo tee /home/$WSL_USER_NAME/.my.cnf < /dev/null 2>&1 & -# -#[Install] -#WantedBy=multi-user.target -#EOL -# -#systemctl daemon-reload -#systemctl enable mailhog -# -## Configure Supervisor -#systemctl enable supervisor.service -#service supervisor start -# -## Install Heroku CLI -#curl https://cli-assets.heroku.com/install-ubuntu.sh | sh -# -## Install ngrok -#wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip -#unzip ngrok-stable-linux-amd64.zip -d /usr/local/bin -#rm -rf ngrok-stable-linux-amd64.zip -# -## Install Flyway -#wget https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/4.2.0/flyway-commandline-4.2.0-linux-x64.tar.gz -#tar -zxvf flyway-commandline-4.2.0-linux-x64.tar.gz -C /usr/local -#chmod +x /usr/local/flyway-4.2.0/flyway -#ln -s /usr/local/flyway-4.2.0/flyway /usr/local/bin/flyway -#rm -rf flyway-commandline-4.2.0-linux-x64.tar.gz -# -## Install wp-cli -#curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -#chmod +x wp-cli.phar -#mv wp-cli.phar /usr/local/bin/wp -# -## Install Drush Launcher. -#curl --silent --location https://github.com/drush-ops/drush-launcher/releases/download/0.6.0/drush.phar --output drush.phar -#chmod +x drush.phar -#mv drush.phar /usr/local/bin/drush -#drush self-update -# -## Install Drupal Console Launcher. -#curl --silent --location https://drupalconsole.com/installer --output drupal.phar -#chmod +x drupal.phar -#mv drupal.phar /usr/local/bin/drupal - -# Install & Configure Postfix -echo "postfix postfix/mailname string homestead.test" | debconf-set-selections -echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections -apt-get install -y postfix -sed -i "s/relayhost =/relayhost = [localhost]:1025/g" /etc/postfix/main.cf -/etc/init.d/postfix reload - -## Update / Override motd -#echo "export ENABLED=1"| tee -a /etc/default/motd-news -#sed -i "s/motd.ubuntu.com/homestead.joeferguson.me/g" /etc/update-motd.d/50-motd-news -#rm -rf /etc/update-motd.d/10-help-text -#rm -rf /etc/update-motd.d/50-landscape-sysinfo -#rm -rf /etc/update-motd.d/99-bento -#service motd-news restart -#bash /etc/update-motd.d/50-motd-news --force - # One last upgrade check apt-get upgrade -y @@ -371,60 +221,13 @@ chown -R $WSL_USER_NAME:$WSL_USER_GROUP /usr/local/bin # Add Composer Global Bin To Path printf "\nPATH=\"$(sudo su - $WSL_USER_NAME -c 'composer config -g home 2>/dev/null')/vendor/bin:\$PATH\"\n" | tee -a /home/$WSL_USER_NAME/.profile -# Perform some cleanup from chef/bento packer_templates/ubuntu/scripts/cleanup.sh -# Delete Linux source -dpkg --list \ - | awk '{ print $2 }' \ - | grep linux-source \ - | xargs apt-get -y purge; - -# delete docs packages -dpkg --list \ - | awk '{ print $2 }' \ - | grep -- '-doc$' \ - | xargs apt-get -y purge; - - -# Exlude the files we don't need w/o uninstalling linux-firmware -echo "==> Setup dpkg excludes for linux-firmware" -cat <<_EOF_ | cat >> /etc/dpkg/dpkg.cfg.d/excludes -#BENTO-BEGIN -path-exclude=/lib/firmware/* -path-exclude=/usr/share/doc/linux-firmware/* -#BENTO-END -_EOF_ - -# Delete the massive firmware packages -rm -rf /lib/firmware/* -rm -rf /usr/share/doc/linux-firmware/* - -# Disable services to lower initial overhead - - apt-get -y autoremove; apt-get -y clean; -## Remove docs -#rm -rf /usr/share/doc/* -# -## Remove caches -#find /var/cache -type f -exec rm -rf {} \; -# -## delete any logs that have built up during the install -#find /var/log/ -name *.log -exec rm -f {} \; - # What are you doing Ubuntu? # https://askubuntu.com/questions/1250974/user-root-cant-write-to-file-in-tmp-owned-by-someone-else-in-20-04-but-can-in sysctl fs.protected_regular=0 -# Blank netplan machine-id (DUID) so machines get unique ID generated on boot. -#truncate -s 0 /etc/machine-id - -# Enable Swap Memory -#/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 -#/sbin/mkswap /var/swap.1 -#/sbin/swapon /var/swap.1 - # Setup Homestead repo su $WSL_USER_NAME -c 'composer install' su $WSL_USER_NAME -c 'bash init.sh'