#!/bin/bash source _common.sh source /usr/share/yunohost/helpers #================================================= # CREATE A MYSQL SUPERUSER #================================================= # Setup a privileged user for phpmyadmin (to prevent using MySQL root user) db_admin_user="${app}_root" ynh_app_setting_set --key=db_admin_user --value=$db_admin_user db_admin_pwd="$(ynh_string_random)" ynh_app_setting_set --key=db_admin_pwd --value=$db_admin_pwd if ! ynh_mysql_user_exists --user=$db_admin_user then ynh_mysql_create_user $db_admin_user "$db_admin_pwd" ynh_mysql_db_shell <<< "GRANT ALL PRIVILEGES ON *.* TO '$db_admin_user'@'localhost' IDENTIFIED BY '$db_admin_pwd' WITH GRANT OPTION; FLUSH PRIVILEGES;" --database=mysql fi #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= ynh_script_progression "Setting up source files..." # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" #REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 750 "$install_dir" #REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod -R o-rwx "$install_dir" #REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown -R $app:www-data "$install_dir" #================================================= # SYSTEM CONFIGURATION #================================================= ynh_script_progression "Adding system configurations related to $app..." # Create a dedicated NGINX config ynh_config_add_nginx # Create a dedicated PHP-FPM config ynh_config_add_phpfpm #================================================= # SPECIFIC SETUP #================================================= # POPULATE THE DATABASE #================================================= ynh_script_progression "Filling database..." ynh_replace --match="phpmyadmin" --replace="$db_name" --file=$install_dir/sql/create_tables.sql ynh_mysql_db_shell \ < $install_dir/sql/create_tables.sql #================================================= # CONFIGURE PHPMYADMIN #================================================= ynh_script_progression "Configuring $app..." ynh_config_add --template="config.inc.php" --destination="$install_dir/config.inc.php" # config.inc.php contains sensitive data, restrict its access #REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown $app: $install_dir/config.inc.php #REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 640 $install_dir/config.inc.php #================================================= # SECURE FILES AND DIRECTORIES #================================================= # Setup phpMyAdmin temporary folder mkdir -p $install_dir/tmp chown $app: $install_dir/tmp #================================================= # END OF SCRIPT #================================================= ynh_script_progression "Installation of $app completed"