#!/bin/bash # # Create new Drupal installation # + database # + database user # RED="\e[0;31m" GRN="\e[0;32m" BLU="\e[0;34m" WHT="\e[0;97m" BOLDRED="\e[1;31m" BOLDGRN="\e[1;32m" BOLDBLU="\e[1;34m" BOLDWHT="\e[1;97m" END="\e[00m" DBUSER="root" DBPASS="1234" NAME=$1 function ok() { echo -e "${BOLDGRN} [ OK ]${END}" } function fail() { echo -e "${BOLDRED} [FAIL]${END}" echo exit } echo echo -ne " 💧 Create new drupal in dir ${WHT}$NAME${END} ..." composer --no-interaction create-project drupal/recommended-project $NAME # composer --no-interaction create-project drupal/recommended-project:9.5.10 $NAME > /dev/null 2>&1 #CMD="composer --no-interaction create-project drupal/recommended-project:9 $NAME > /dev/null 2>&1" #CMD="composer create-project drupal/recommended-project:9 $NAME" #sudo su -l apache -s /bin/bash -c "cd $PWD; $CMD" if [ $? = 0 ]; then ok; else fail; fi echo -ne " 🐬 Create database ${WHT}$NAME${END} ..." mysql -uroot -p1234 -e "CREATE DATABASE $NAME" if [ $? = 0 ]; then ok; else fail; fi echo -ne " 🐬 Create database user ${WHT}$NAME${END} with password '1234' ..." mysql -uroot -p1234 -e "CREATE USER $NAME@localhost IDENTIFIED BY \"1234\"" if [ $? = 0 ]; then ok; else fail; fi echo -ne " 🐬 Grand user ${WHT}${NAME}${END} permissions to database ${WHT}${NAME}${END} ..." mysql -uroot -p1234 -e "GRANT ALL ON $NAME.* TO $NAME@localhost" if [ $? = 0 ]; then ok; else fail; fi echo -ne " 🐬 Flush privilages ..." mysql -uroot -p1234 -e "FLUSH PRIVILEGES" if [ $? = 0 ]; then ok; else fail; fi # echo -ne " 🍒 Drupal settings.php" # cd $NAME/web # cp sites/default/default.settings.php sites/default/settings.php # cat >> sites/default/settings.php < '$NAME', # 'username' => '$NAME', # 'password' => '1234', # 'prefix' => '', # 'host' => 'localhost', # 'port' => '3306', # 'namespace' => 'Drupal\\\\mysql\\\\Driver\\\\Database\\\\mysql', # 'driver' => 'mysql', # 'autoload' => 'core/modules/mysql/src/Driver/Database/mysql/', # ); # EOL # if [ $? = 0 ]; then ok; else fail; fi echo -ne " 🐷 Change files owner to user ${WHT}apache${END}" cd $NAME/web mkdir sites/default/files cd ../.. chown apache:apache $NAME -R find $NAME -type d -exec chmod 755 {} \; find $NAME -type f -exec chmod 644 {} \; if [ $? = 0 ]; then ok; else fail; fi #echo -ne " 🍒 link html to ${WHT}$NAME${END}" #unlink /var/www/html #ln -s /var/www/sites/$NAME/web /var/www/html #if [ $? = 0 ]; then ok; else fail; fi echo ls -l --color=auto /var/www/site[1234] echo # echo -ne " 🌈 Restart httpd " # systemctl restart httpd # if [ $? = 0 ]; then ok; else fail; fi # # echo -ne " 🌈 Restart php " # systemctl restart php-fpm # if [ $? = 0 ]; then ok; else fail; fi # # echo -ne " 🌈 Restart mysql " # systemctl restart mysql # if [ $? = 0 ]; then ok; else fail; fi echo echo -e "Finish the installation..." echo echo -e "Database: ${NAME}" echo -e "Username: ${NAME}" echo -e "Password: 1234" echo read -p "...and press [ENTER] to continue installing extra modules" echo exit echo -e "🍓" function rest() { drush en serialization drush en rest composer require 'drupal/restui:^1.21' drush en restui composer require 'drupal/rest_views:^2.0' drush en rest_views } echo -en "Enable module ${R}rest${E} (y/n): " read -n 1 answer [ $answer = "y" ] && rest echo function rest() { drush en jsonapi } echo -en "Enable module ${R}rest${E} (y/n): " read -n 1 answer [ $answer = "y" ] && jsonapi echo # composer require 'drupal/rpb:^1.0@beta' #composer require 'drupal/decoupled_rest_views:^1.0@alpha' #composer require 'drupal/entity_rest_extra:^2.1' #composer require 'drupal/rest_entity_recursive:^2.0@RC' # Devel composer require 'drupal/devel' rm -rf vendor/autoload.php vendor/autoload_runtime.php vendor/composer composer install drush cr drush en devel_generate