⬆️ ⬇️

Automating the development of web projects in UNIX

From which side do not look, and the process of automation is always important. For companies, it helps to save a lot of time and money, administrators get rid of the routine, and people who are not dedicated to the details of someone else's work from a headache.

I want to share my decision on the task of partial optimization and reduction of production costs. I had to write this bash script for the reasons mentioned above. There is another reason

I want to immediately warn the uninitiated that the configuration of Apache , MySQL may differ from the one given below (and most likely it will be). Be careful in adjusting the paths when you decide to adapt this script to your goals.







Here are some comments on this script:

')

6.7 are responsible for creating the project folder

8.9 expose the rights to the group (I have several people working on the project)

Line 13 links these folders with entries in Apache configs.

15 create a database for a new project

16 Apache restart itself



#!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  1. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  2. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  3. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  4. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  5. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  6. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  7. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  8. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  9. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  10. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  11. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  12. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  13. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  14. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  15. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
  16. #!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .
#!/bin/bash if [ $UID -eq 0 ] then echo "Enter project name:" read NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT mkdir /usr/www/$NAME_OF_PROJECT/htdocs/ chown -R :www_anygroup /usr/www/$NAME_OF_PROJECT/htdocs/ chmod -R g+wrx /usr/www/$NAME_OF_PROJECT/htdocs/ add_to_apache_conf= " <VirtualHost 111.111.111.111:80> ServerAdmin admin@somedomain.com DocumentRoot \"/usr/www/${NAME_OF_PROJECT}/htdocs\" ServerName ${NAME_OF_PROJECT}.somedomain.com</VirtualHost>" echo "$add_to_apache_conf" >> /usr/apache/conf/extra/httpd-vhosts.conf /usr/local/mysql/bin/mysql -uroot -p --execute= "create database db_${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON db_${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'anypassword'" /usr/apache/bin/apachectl restart else echo "You should be logged by root" fi * This source code was highlighted with Source Code Highlighter .

Source: https://habr.com/ru/post/41039/



All Articles