Настройка LAMP (Linux+Apache+MariaDB+PHP) для CMS Drupal

Page 1

! !

" # $ % "#$%&# ! % ' % ( "%&('%(# " $ % & '

! "# # !"$ $


!"# $ % & ' "(") * + " ,- .



!"# $ % & ' "(") * + " ,- .

/)01 2 3 4. 5 6


! " # $ !% ! & $ ' ' ( $ ' # % % ) % * % ' $ ' + " % & ' ! # $, ( $ %

! % ! % %

" # % % # % % " # $ % ! %

! " " # # - $$$ . /" /"# 012 " 3 & ) * 4 - +) * ! 5 !& 6!7% 66898 & % % 0 ! : ! * & * - ; &'()*+ ), -*&') < 9=8> 3 & ) * 4 - +) " 1 ' " " & 9=8>


Аннот ация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Оба в т оре. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Предисловие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Ус т ановкаL AMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Ус т ановкаp hpMyAdmi n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Ус т ановка Webmi n. . . . . . аL AMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Наст ройк . . 10 Наст ройк аL AMP -н аст ройк а Apache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

!"#$% & ' () ' * +, . / 1 2%3245%6 #"#$%6 7%78#"#$% Наст ройк аL AMP -о т крыт ие Webmin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 . . . . . . . . . 14 Наст ройк ав еб с ервера Apache в Webmin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

!"#$% 9 / * +, , :

!"#$% / * + , !$!;< =74> ? Ус т ановкаин ас т ройка Dr upa l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 @ ' *9 A2BC$ A2B!"D E F A2BC$ G F A2B!"D G H

/ * +, , J;K A2B!"D L Наст ройк аL AMP -с оз даниес ет евыху з лов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 . . . . . . . . . 22 Наст ройк аL AMP для импорт авб а з уд анныхбольшихd ump-файлов. . . . . . . .

;<KMN .' *O , =B7! LL

PQP .' *O , =B7! LR S 9 !$!;< =74> 9+ +, L: S ) !$!;< =74> .' 9 +, L6 :GTU L: Импорт в MySQL большихd umpфайлов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ПрограммаS ypex Dumperдля импорт а большихбазд анных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26


! " "# F KB!%V AB7!%2 *

+ . LE

KB!%V AB7!%2 / * + , LG

KB!%V AB7!%2 LG

KB!%V AB7!%2 & ' . + LW KB!%V AB7!%2 +' .' LW Supex Dumperдля CMS Dr upa l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 . . . . . . . . . . . . . . . . . . . . . . . . 31 Сис т емаа н алит ики дляс айта Pi wi k. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Сценарийу с т ановкиLAMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Cценарий автомат ичес к ойу с т ановки Dr upa l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Приложение1 :Дополнительныеп опу лярные моду ли Dr upa l7 . . . . . . . . . . . . . . . . . Приложение2 :Дополнительныер ес урс ы дляр аботы сDr upa l . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 :Созданиех ос т инг ад ляр абот ып од выс ок ой н агру з к ой н ап римере Приложение3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 For bes . r u. . . . . . . . . . . . . . . . . . . . . . H' .+ , XW Y 9 Z , ? [ /] 9 ) , ? Спис окэ лект ронныхр ес урс о в ,и с польз ованныхп ри н аписании ману с крипт а. . . . . . . 63

$%% &'( ! " $ % ! & ! $ $ % $ ' ( $ ! )* * ! " ) " $ + , ! $ % $ - " $) ./01 234 5056 7 ! $ ! ! $ " ! ' ! ) $ + ) )' $ " $ 7 )8 9 ! + ) ) - " " ! ;<3=>?4;@A5B ;CDC 234 5056' - " " * - % )* )* <@C' - " * )* )* ! $ ! - " $ ! " ! E@5 FG 3=H $ % $ $ "' )$ ! $ + $$ " $ 7 * )* 5A34 F I34G8 J % L (


! " "# )$ )$ )$ $ $ FG 3=H8 9 % M ) ) 7 " ) FG 3=H8 9 % N ! ) % $ * + ) ) ! " + ! "8

)+ , .0 ' 0 , 1 2-, ' 3 $ ' + $$ ' ! " + ) $) ! $ FG 3=H' ' ! O % " ! $ , $ - POQRST8 9 7! ) + ) 9 $ * ! $ $' $ $ + UUUV' ! , ! - & V ! + * ! + $ W% O ! ! $ Q - $ R 8 9 YZ + ) MZ + ) )$ $ $8 9 MZZN + ! $ O , $ ./0' $ V $ U $ $' ! &[ $ U J + $$ \ )* - "' * ! $ & " * ! $ \ - " $) ./0 8 J ! , ! - & ! ! R ^ R , $ - )* _ * + " O ! 8 U " $ 7 ) a Gb= c4d <@ " 5056 5e f 28

4 - ' 0 ,'J % $ [ " $ * + R ' " W ! $ ! $ & 8 g ( + ! $ ! $ & % ) ! $ ! + $$ <@C P ;<3=>?4;@A5B ;CDCT' !% $ + ) ! ) $ + ) + $$) P3?3@A<fI ' 5 34 F I34G' fG h?' C i jT' + &[ $ 7 &[ " 8

5 % , J - " $ " 234 5056 <@C $ % ) & ) $ $ k<5aM 7 + $$ 9 <@C8 6 7-8 %'-9


! " "# ^ <3=>?4 234 5056 $ % ! $ " P ! $ ) ) & $ $) G22eTl # zypper install apache2 $ ! , + - <3=>?4 ! ! $ " % )' ! $ " + ! $)l # systemctl enable apache2.service $ ! <3=>?4 $ l # systemctl start apache2.service $ ) ! ' $ " % )' ! @A5B P@=G =FmTl # zypper in mariadb mariadb-tools # systemctl enable mysql.service # systemctl start mysql.service $ ! ' ! )" "7 $ " $ ! $ )*' )* @=G =Fm )l # mysqladmin -u root password NEWPASSWORD Q ) @A5B P@=G =FmT $ % - " + ! )* "! " @A5B P@=G =FmTl # mysql_secure_installation 9 + , ! $ % $ + ! @=G =Fm $ % ) c4dI 1 '% : 6 %'- 0( 0( - ,- ;< ;=> , ?!@A


! " "#

$ ! CDC $ $ " % )* E@F FG 3=Hl # zypper install php5 php5-mysql php5-APC php5-bcmath php5-ctype php5-dom php5-json php5-uploadprogress php5-xmlwriter php5-zip 6 7-8 %'-9 O 3?3n <CE 3?3n 3H2=f3G2bG4hh & ! & )* 234 5056l server:/php/openSUSE_13.1/ $ ) + l # zypper addrepo http://download.opensuse.org/repositories/server:/php/openSUSE_13. 1/server:php.repo # zypper refresh 1 '% : 4 0B8-%'- - C' '( server:/php/ , D "E F


! " "#

$ ! & I2f 3?3n CDC % ) ) ! CDCl # a2enmod php5 $ ! l # systemctl restart apache2.service 6 7-8 %'-9 o $ % ! pA334G' + $ % ! $ "l # yast -i zypper 1 '% : 5 % , 7 0- ! " "#


! " "#

5 % , G H IA 3?3@A<fI ( $ $)" CDC - " P ' ! ' % $ )T $ )* @A5B P@=G =FmT' $ ! <@C8 1 '% : 5 % , G H IA ! " "#


! " "#

5 % , ?!@A c4dI ( )" ! $ - " $) ' $ $ ! + " ' !% )* $ 7 *8 1 '% : 5 % , - ?!@A

9 <3=>?4' )* @A5B P@=G =FmT' % $ c4dI & )$ % $ ' ! % % ) [ ! $ % 234 5056 k<5aM8 6 7-8 %'-9 J ! c4dI % ) $ + ) ! $) $) c4dI 8 1 '% : 6 J ,-+K -,- ;LG! ! " "#


! " "#

1 '% : 6 J H"M N ;< ;=>O ! " "#

1 '% : 6 J ?!@A ! " "#


! " "#

K % ;LG! - -, P '% - Q- 0( ,-+K - ,- q ) <3=>?4 $ + " $ * $ ! )" " , " ! $ 8 _ ! $ , " $ % ) ! )" rC 127.0.0.1' ( $ ! $ & R ' $ fhH , " ' ! )" " $ % % $ R ' $ $ " " 8 1 '% : R C %'- - -, P '% - Q- 0( 0 0T% + U ,-+K - ,-


! " "#

;LG! 3 0B8-%'- 0%' -0T%UV 7 J0- : <!W< X!Y L;LG!Y A!AZL;LG! g - " ) E@5 FG 3=H "! * ! & ) ) $ l rewrite' cache' mem_cache8 G4iG e4 s " ) FG 3=H P , " $ .htaccessT' $ I4It>=>?4 % ) ! " $) ! 7 u ! $ ! " FG 3=H' ! $ >=>?48 6 7-8 %'-9 $ ) ! & $ " <3=>?4' + ! $ =M4 I2f 3?3nl # zypper install apache2-mod_php5 # systemctl restart apache2.service 1 '% : 4 0B8-%'- 0%' -0T%UV 7 J0- ,-+K - ,- ;LG!


! " "#

6 7-8 %'-9 _ ! $ $ , " "! <3=>?4 234 5056 /etc/sysconfig/apache2 ! ) ! & W ) $ <3=>?4l APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 reqtimeout rewrite cache mem_cache" 6 7-8 %'-9 V ! $ ) , " ) $ % $ [ & , " + $ % @ f b?e E2II= f4G $ $ [ & ! + ! viG e4' ! ) )$ & $ G22el # kwrite /etc/sysconfig/apache2 1 '% : [- ' , %'- ' -7%UV Q 0 , , \W< X!


! " "#

6 7-8 %'-9 @4I>=>?4f ( $ $ ! 7 % ) ' ! $ ! & $ <3=>?48 1 '% : 5 % , A!AL;LG!I

K U '- ?!@A


! " "# J ! c4dI ! l http://localhost:10000/8 g c4dI % )! + $$)' 7 l RU.UTF-8' $ % $ , $ ' ( + $ % + R & $ , $ 5eG4hhwG44 a b4G e?4I48 1 '% : 8 0 + U ?!@A

,-+K - ,- ;LG! , ?!@A ;LG! K C %'- ,' J 0T%UV V , S "! <3=>?4 $ & c4dI l E % ) x 9 <3=>?48 g ! P + $$ T " $ + ) $)" " ! " ! P/srv/www/htdocsT' , - " $)l /home/user_profile/public_html/site_name/site_name.lh 1 '% : 4 '7- C %'( ,' J 0T% P V , ?!@A


! " "#

6 7-8 %'-9 J )* * <3=>?48 6 7-8 %'-9 o $) ! $ <3=>?4 c4dI ' ! ' ' ! ! $ % ! $ )l

systemctl enable apache2.service systemctl start apache2.service systemctl stop apache2.service systemctl status apache2.service ! $ )l /etc/init.d/apache2 start /etc/init.d/apache2 stop /etc/init.d/apache2 restart /etc/init.d/apache2 status ! $ )l service apache2 start service apache2 stop


! " "# service apache2 restart service apache2 status ! $ )l /usr/sbin/apache2ctl start /usr/sbin/apache2ctl stop /usr/sbin/apache2ctl restart /usr/sbin/apache2ctl status ! $ l /usr/sbin/httpd2 -f /etc/apache2/httpd.conf o <3=>?4 M ) ' ! $ l # ps -ef | grep httpd $ % - ) 8 1 '% : .U 0%(B]'- ( &- U ,-+K - ,- ;LG!

;LG! K ,' J 0T%U V 0( G H IA


! " "# 3?3@A<fI ! $ ! ! " ! + ! $ l /srv/www/htdocs/phpMyAdmin

Đ—аПочанио. ĐšОПа ндад ĐťŃ?Ńƒ Ń Ń‚ Đ° Đ˝ Đž вк и phpMyAdmi n : # zypper in phpMyAdmin 3?3@A<fI G22e $ @A5B http://localhost/phpMyAdmin8

J + 3?3@A<fI !% $ % )" ' $ $ $ 3?3IA=fI 8H?' 3?3@A<fI l http://phpmyadmin.lh 1 '% : R C %'- ,' J 0T% P V 0( G H IA , ?!@A

5 % , ' % =< ;^ _ 0TC , %'- =< `G ' =< ;^ FG h? ( , " ! $ " ! "! E@5 FG 3=H8 FG h? $ [ & ! $ FG 3=H * $)


! " "# $ 8 R ! $ FG h? ! )" - " 8 5 % , =< `G J FG h? " ?ee3hl11b e? d8>2I1fG h? 23h1fG h? ! " ! & $)l /opt/drush $ l yi 4G1.G2 3 root:root' rwxr-xr-x8 6 7-8 %'-9 FG h? $ % ) ! $ "' ! & W " 3?3 % "l # zypper addrepo http://download.opensuse.org/repositories/server:php:applications/ openSUSE_13.1/server:php:applications.repo # zypper refresh # zypper install drush 5 % , =< ;^ g ! FG 3=H $ [ & FG h? ) ! $ ) ! ! G22el U " ! & " l # mkdir -p /home/user_profile/public_html/ " ( ! &l # cd /home/user_profile/public_html J " FG 3=H # drush dl drupal S "! FG 3=H ! "l J $ )" FG 3=H i4dh e4l # rename drupal-* website drupal-* J " ! & % FG 3=H # cd /home/user_profile/public_html/website R $ ! ! ~sites/defaultl


! " "# # chmod a+w sites/default U! , " f4z= He8h4ee bh83?3 ! ! , " h4ee bh83?3l # cp sites/default/default.settings.php sites/default/settings.php R $ ! , " h4ee bh83?3l # chmod a+w sites/default/settings.php ^ FG 3=H =fI $ =fI @A5B G22e $ IA3=hh ) )* fG 3=Hfd ) )* G22e $ fd3=hh $ $ " FG 3=H 5 e4l # drush site-install standard -y --account-name=admin --accountpass=admin --db-url=mysql://root:mypass@localhost/drupaldb --dbsu=root --db-su-pw=dbpass --site-name=Drupal Site R $ ! , " $ ! , + - FG 3=H P ) " Tl # cd /home/user_profile/public_html/website # chown -hR user_profile:users /home/user_profile/public_html # chmod go-w sites/default/settings.php # chmod go-w sites/default ^ ) $ FG 3=Hl # drush dl admin_menu, ctools, pathauto, transliteration, globalredirect, captcha, token, l10n_update, logintoboggan, page_title, date, link, email, date, textformatter,video_filter, imce, libraries, jquery_update, dhtml_menu, ds, footermap, xmlsitemap, views, views_slideshow, rules, entity, entity_token, webform, panels, quicktabs, privatemsg, profile2, sharethis, memcache J ! & )* $ " FG 3=Hl # drush en -y locale, admin_menu, admin_menu_toolbar, ctools, pathauto, transliteration, globalredirect, captcha, token,


! " "# l10n_update, page_title, date, link, email, date, imce, libraries, jquery_update, footermap, xmlsitemap, views_ui J ! & ! " ! - FG 3=H $ [ & FG h? # drush dl drush_language # drush language-add ru # drush language-enable ru # drush language-default ru ! , " # printf "%s\n" "" "Instalation translation files..." "" # drush l10n-update-refresh -y # drush l10n-update -y ) +-%% ' % ' ,' J 0T%UV V , 0( a " =< ;^ S "! )* * E@5 FG 3=H $ ! l Options +FollowSymLinks' [ " ! ) + , " .htaccess FG 3=H8 J " "! ' , " .htaccess FG 3=H' ! ) "! + * % ) ) )$ l DocumentRoot /home/user_profile/public_html/site_name/site_name.lh ServerName www.site_name.lh ServerAlias site_name.lh *.site_name.lh <Directory "/home/user_profile/public_html/site_name/site_name.lh"> Options +FollowSymLinks AllowOverride All order allow,deny


! " "# allow from all </Directory> ServerAdmin admin@site_name.com ' + ! )$ ! + $ " ! + /home/user_profile/public_html/site_name/site_name.lh 1 '% : ,' J 0T%UV V , 0( =< ;^ , ?!@A PJ $ ) + xJ ! ! )T

J % " " "! " ) $ % , " .htaccess $ W ! )l # Đ—аПона Follow symbolic Đ´ĐťŃ? Ń…ĐžŃ Ń‚инга Options +SymLinksIfOwnerMatch 6 7-8 %'-9 9 ) ) * ) $ " 234 5056 $ % ! 234 5056 , " l # kwrite /etc/apache2/vhosts.d/ip-based_vhosts.conf

K C %'- - -,UV JC0 ,


! " "# q ) ) $) " ) ) % $) $ * $ ) ) " + , " ! $ ) $W " 8 { $ % c4dI l U x S "! x Q 8 6 7-8 %'-9 R$ * & ! $ $ l echo 127.0.0.1 phpmyadmin.lh >> /etc/hosts echo 127.0.0.1 www.phpmyadmin.lh >> /etc/hosts echo 127.0.0.1 localhost >> /etc/hosts 6 7-8 %'-9 9 ) ) ) ) $ $ , " l # kwrite /etc/hosts 1 '% : 6 %'- - , JC0 , 0( 0 0T% + U ,-+K ,

0( '7 , + CJ %%UV + 0T2'V I A KQ 0 , F I3 , " ( * )" , " (! " ) )* @A5B 8 g + $ f I3 , " )* "! * $) $ & [ + "8 H"M 0( '7 + 0T2'V I A KQ 0 ,


! " "# @=G =Fm P@A5B T $ % $ + $ 7 * f I3 , " * )*8 U ! ( $ "! * @=G =Fm' $ % c4dI l Maximum packet size - 100MB 6 7-8 %'-9 S "! @A5B , " l # kwrite /etc/my.cnf 1 '% : [- ' , %'- %Q'PJ &'' - ,- H"M N ;< ;=>O , ?!@A

b 0( '7 + 0T2'V I A KQ 0 , \+ ) "! * ) + $$ CDC $ + $ % $ )$ CDC $ 7 , " )8 R $ "! CDC $ % $ [ & ! , " ! , + - CDC c4dI l memory_limit = 128M 6 7-8 %'-9 V ! , " ! , + - CDCl # kwrite /etc/php5/apache2/php.ini


! " "# 1 '% : _C7-%-%'- % - b - ' , %'-7 7- , , Q 0 %Q'PJ &''

post_max_size = 100M upload_max_filesize = 100M R C %'- , G H IA + CU %%UV 9 ! ) $ 3?3@A<fI +! & )*8 J $ " ) )* - | ) )*8 1 '% : R C %'- % , + CU %%UV , G H IA

R % % - P %'8-%'- G H IA % '7 + C %%UV FYcde1f


! " "# 9 3?3@A<fI [ + $ 7 * )* @=G =Fm $ $ M'Z}~ |' ( $ ! ) )* )* " E@5 FG 3=H ! " $ * 8 1 '% : 5 C % 7 '7 0T%U C7- , C7 g% P Q 0 0( '7 , + CJ %%UV ;< ;=> 7 ]TB G H IA

_7 , H"M + 0T2'V I A KQ 0 , | $ $ % $ )* @=G =Fm $ [ & ! $ )l # mysql -uroot -pmyrootpassword db_name < /home/user_profile/public_html/site_name/db_name-09.07.2013.sql 1 '% : 1 7 % '7 + 0T2 P I A KQ 0 , + CJ %%UV


! " "#

4 P 77 "H ! = A !< 0( '7 + 0T2'V + C %%UV g $ 7 * )* 7 + $$ " ! ! * ! ! $ 5A34 l ?ee3l11hA34 8 4e + , ! $ , " $' + $ + $$ $ $ )* P $ " T 5A34 F I34G $ $ [ 8 \ + $$)l 5A34 F I34G $ % $ ! , " ) ) )*' ! ) ) ) 5A34 F I34G' (! ) $ [ & 5A34 F I34G' , " ) )* ) $ $ [ & * + $' + 7 ! $ " IAh H $ ) )*8 J 5A34 F I34G ?ee3l11hA34 8 4e1G 13G2f >eh1f I34G1f2i H2=fh18 1 '% : .-+K 7 %'' "H ! , C7 g% T , + % ,UP JC' T b K ' "H ! = A !<


! " "#

5 % , " ! = A !< 0( 0 0T% + U ,-+K 7' 5 34 F I34G $ % ) ! ! & ! /srv/www/htdocs/sxd8 ^ ! 5A34 F I34G M , Readme.txt ! sxd8 1 '% : [ , " ! = A !< , %-, 0 P ,-+K - ,-


! " "# " ! = A !< K ,' J 0T%U V J ! 5 34 F I34G $ % ) )" * 5 34 F I34G ! ' $ $ http://sxd.lh8 1 '% : R C %'- ,' J 0T% P V 0( " ! = A !< , ?!@A

" ! = A !< S 5 34 F I34G ) [ ! $ $ ' + /home/soft/public_html/dumps/ ( ! + ! $ * f I3 , " ) * )* ) $)* * " l

# mkdir /home/soft/public_html/dumps # chmod -R 777 /home/soft/public_html/dumps/ # chmod -R 777 /srv/www/htdocs/sxd/ 1 '% : " ! = A !<


! " "#

" ! = A !< 3 7- U J ! ) 5 34 F I34G + $ $ G22e $) $ & \ - $ % $ $ ) * )*8 1 '% : &' " ! = A !<

" ! = A !< K ,U 0%-%'- '7


! " "# J % ) $ )* " $ [ & 5 34 F I34G (! * )* * 7 * ) $)* " 8 1 '% : _7 + CU %%UV 7 ]TB " ! = A !<

" ! = A !< 0( a " =< ;^ 5 34 F I34G $ % ) ! ! $ E@5 FG 3=H $ + ! $ & $ $ $ & $)8 g ( + " ! $ 5A34 l ?ee3l11hA34 8 4e P?ee3l11hA34 8 4e1G 13G2f >eh1f I34G1f2i H2=fh1T % ! , " + - FG 3=H8 ^ ! + - , " install.txt $ sxd2_for_drupal78 1 '% : " ! = A !< F , 7'%' ',% 7 7-%B % a " =< ;^


! " "#

R' -7 % 0' ' ' 0( W h C i j ( $ ! [ " " $ )$ .22bH4 < =HAe >h' € ! 8O ! ' ) ! % ! - $) P $ T8 $ + " ) &[ " " " $ $ ! ) ' % $ $ R 8 C i j ! ! ) E@5 $ ' [ + $ ! + ! " l ?ee3l11IAh e48>2I13 i j1' + ( $ + $$ ! ! ! ) " E@5 P ) )*T8 U % * $ ! & )* $ " .42rC <3=>?4 CDCl apache2-mod_geoip, php5-devel. o 7 " &[ " * ! ! )" * ' ! + * + " ! % ! )* $ "' % ) * + )" ) )" ' $ % ) $ 8 g C i j > FG 3=H * $ $ C i j c4d < =HAe >h "! * $  =‚=5>G 3e ! % , $ )" C i j8 1 '% : 4 0J8-%'- i;j;"L< X 0-g', %'( , + B]- ' -7 W h


! " "#

R&-% ' J % , ' o ) (! $ ) $' $ % $ % 8 J (! $ $ <@C % * , " ! , + - )* * ' !% * ) * )* * " - & "7 + ) ! $ ! 8 _ - ( " + l (! )* ! $ ! lamp-savedumps.sh' ! <@C install-lamp.sh - " $ * )* )* lamp-restore-data.sh8 {! )* $ % ) $ [ & 3?3@A<fI ' 7 $ + * - " lamp-savedumps.sh. 9) " ! ! ! G22el

#!/bin/bash # Script automatic save dumps LAMP # # Copyright script by Vladislav Krashevskij (v.krashevski#gmail.com) # 23.08.2014 #


! " "# #---------------------------------------------------# This work is licensed under a Creative Commons # Attribution-ShareAlike 3.0 Unported License; # see http://creativecommons.org/licenses/by-sa/3.0/ # for more information. #---------------------------------------------------# # Đ&#x;Ń€и Ń ĐžĐˇĐ´Đ°Đ˝Đ¸Đ¸ Ń ĐşŃ€ипŃ‚Đ° Đ¸Ń ĐżĐžĐťŃŒСОван Ń Ń†онаŃ€иК # Jon 01-07-2014 at 12:38 # Backup (mysql dump) all your MySQL databases in separate files # from http://dev.mensfeld.pl/2013/04/backup-mysql-dump-all-yourmysql-databases-in-separate-files/ # # Variables # Check user curuser=`whoami` if test $curuser != "root"; then echo 'Run the script as user root with sudo command.' exit fi # stty -echo read -p "Đ’водиŃ‚Đľ паŃ€ОНŃŒ root пОНŃŒСОваŃ‚оНŃ? Ń Đ¸Ń Ń‚оПŃ‹: " pass stty echo printf '\n' _pass=$pass # root pass # printf "%s\n" "" "ĐĄĐżĐ¸Ń ĐžĐş пОНŃŒСОваŃ‚оНоК в прОфиНŃ?Ń… кОтОрых ПОМоŃ‚ ĐąŃ‹Ń‚ŃŒ Ń ĐžŃ…Ń€Đ°Đ˝Ń‘Đ˝ архив LAMP:" "" # List only usernames # Minimum and maximum user IDs from /etc/login.defs


! " "# UID_MIN=$(awk '/^UID_MIN/ {print $2}' /etc/login.defs) UID_MAX=$(awk '/^UID_MAX/ {print $2}' /etc/login.defs) awk -F: -v min=$UID_MIN -v max=$UID_MAX '$3 >= min && $3 <= max{print $1}' /etc/passwd # echo -n "Đ’водиŃ‚Đľ иПŃ? пОНŃŒСОваŃ‚оНŃ? Ń Đ¸Ń Ń‚оПŃ‹: " read user # _users=`awk -F: -v min=$UID_MIN -v max=$UID_MAX '$3 >= min && $3 <= max{print $1}' /etc/passwd` # if `echo ${_users[@]} | grep -q "$user"` ; then echo 'Đ˜ĐźŃ? пОНŃŒСОваŃ‚оНŃ?' $user 'дОпŃƒŃ Ń‚иПО.' else echo 'ĐžŃˆийка, иПŃ? пОНŃŒСОваŃ‚оНŃ?' $user 'нодОпŃƒŃ Ń‚иПО.' exit fi # _user=$user # echo -n "Đ’водиŃ‚Đľ пОНŃŒСОваŃ‚оНŃ? йаСŃ‹ даннŃ‹Ń…: " read dbuser _dbuser=$dbuser # = 'root' # stty -echo read -p "Đ’водиŃ‚Đľ паŃ€ОНŃŒ йаСŃ‹ даннŃ‹Ń…: " dbpass stty echo printf '\n' _dbpass=$dbpass # = 'rootpassword' # TIMESTAMP=$(date +"%F")


! " "# BACKUP_DIR="/home/${_user}/public_html/servers_backups/$TIMESTAMP" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump # printf "%s\n" "" "Đ&#x;Ń€ĐžŃ†ĐľŃ Ń Ń ĐžĐˇĐ´Đ°Đ˝Đ¸Ń? архива йаС даннŃ‹Ń…..." "" # # mkdir -p "$BACKUP_DIR" # cp /etc/apache2/vhosts.d/ip-based_vhosts.conf "$BACKUP_DIR" # databases=`$MYSQL --user=${_dbuser} -p${_dbpass} -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema)"` # touch "$BACKUP_DIR"/databases-list.txt add_to_list="$databases" echo "$add_to_list" >> "$BACKUP_DIR"/databases-list.txt # # CОСдаŃ‚ŃŒ Один dump-Ń„аКН Đ˛Ń ĐľŃ… йаС даннŃ‹Ń… ПОМнО Ń ĐżĐžĐźĐžŃ‰ŃŒŃŽ: # mysqldump -u[user] -p[pass] –all-databases > [file_name].sql $MYSQLDUMP --force --opt --user=${_dbuser} -p${_dbpass} --alldatabases | gzip -9 > $BACKUP_DIR/databases.sql.gz # chown -R ${_user} "$BACKUP_DIR" # printf "%s\n" "" "ХМаŃ‚Ń‹Đš архив Đ˛Ń ĐľŃ… йаС даннŃ‹Ń… От $TIMESTAMP Ń ĐžĐˇĐ´Đ°Đ˝." "" # exit 0


! " "# J ! <@C % ) )* @=G =Fm' $ % $ [ & 3?3@A<fI ' $ $ ) )* , " ipbased_vhosts.conf * 8 g W - " <@C + * 8 U- " install-lamp.sh +! ! $ ! 8 9) " ! ! % * )' ! ! G22el #!/bin/bash # Script automatic install LAMP # # Copyright script by Vladislav Krashevskij (v.krashevski#gmail.com) # 23.08.2014 # #---------------------------------------------------# This work is licensed under a Creative Commons # Attribution-ShareAlike 3.0 Unported License; # see http://creativecommons.org/licenses/by-sa/3.0/ # for more information. #---------------------------------------------------# # Check user curuser=`whoami` if test $curuser != "root"; then echo 'Run the script as user root with sudo command.' exit fi # printf "%s\n" "" "LAMP installation process..." "" # yast -i zypper


! " "# printf "%s\n" "" "zypper are installed.." "" # zypper install apache2 systemctl enable apache2.service systemctl start apache2.service printf "%s\n" "" "Apache 2 are installed." "" # zypper install apache2-mod_php5 apache2-mod_memcache a2enmod php5 rewrite cache memcache systemctl restart apache2.service printf "%s\n" "" "Modules Apache 2 are installed." "" # zypper in mariadb mariadb-tools systemctl enable mysql.service systemctl start mysql.service printf "%s\n" "" "MariaDB are installed." "" # zypper addrepo http://download.opensuse.org/repositories/server:/php/openSUSE_13. 1/server:php.repo zypper refresh # zypper install php5 php5-mysql php5-APC php5-bcmath php5-ctype php5-dom php5-json php5-uploadprogress php5-xmlwriter php5-zip # mkdir -p /srv/www/htdocs/phpinfo touch /srv/www/htdocs/phpinfo/phpinfo.php add_to_phpinfo=" <?php phpinfo();?>" echo "$add_to_phpinfo" >> /srv/www/htdocs/phpinfo/phpinfo.php #


! " "# systemctl restart apache2.service printf "%s\n" "" "PHP are installed." "" # zypper install phpmyadmin printf "%s\n" "" "phpMyAdmin are installed." "" # zypper install webmin printf "%s\n" "" "Webmin are installed. Please, open Webmin at http://localhost:10000." "" # zypper in memcached printf "%s\n" "" "Memcached are installed." "" # echo 127.0.0.1 localhost >> /etc/hosts echo 127.0.0.1 phpmyadmin.lh >> /etc/hosts echo 127.0.0.1 www.phpmyadmin.lh >> /etc/hosts echo 127.0.0.1 phpinfo.lh >> /etc/hosts # # ХОСданио кОнŃ„игŃƒŃ€Đ°Ń†ии вой-Ń ĐľŃ€вора add_to_apache_conf=" <VirtualHost *> DocumentRoot /srv/www/htdocs/phpMyAdmin ServerName www.phpmyadmin.lh ServerAlias phpmyadmin.lh *.phpmyadmin.lh <Directory "/srv/www/htdocs/phpMyAdmin"> allow from all Options +Indexes </Directory> </VirtualHost> <VirtualHost *> DocumentRoot /srv/www/htdocs/phpinfo


! " "# ServerName www.phpinfo.lh ServerAlias phpinfo.lh *.phpinfo.lh <Directory "/srv/www/htdocs/phpinfo"> allow from all Options +Indexes DirectoryIndex phpinfo.php </Directory> </VirtualHost>" # echo "$add_to_apache_conf" >> /etc/apache2/vhosts.d/ipbased_vhosts.conf systemctl restart apache2.service printf "%s\n" "" "ĐšОнŃ„игŃƒŃ€Đ°Ń†иŃ? Apache Ń ĐžĐˇĐ´Đ°Đ˝Đ°. Please, open phpMyAdmin at http://phpmyadmin.lh, open phpinfo at http://phpinfo.lh." "" # #MySQL tuning printf "%s\n" "" "MySQL secure installation process..." "" mysql_secure_installation # systemctl restart mysql.service # printf "%s\n" "" "LAMP are installed." "" # exit 0 U- " lamp-restore-data.sh )* ! $ ! <@C * ' $)* $ [ & - lamp-save-dumps.shl

#!/bin/bash


! " "# # Script restore LAMP data, that were created from the script lamp-save-dumps.sh # # Copyright script by Vladislav Krashevskij (v.krashevski#gmail.com) # 23.08.2014 # #---------------------------------------------------# This work is licensed under a Creative Commons # Attribution-ShareAlike 3.0 Unported License; # see http://creativecommons.org/licenses/by-sa/3.0/ # for more information. #---------------------------------------------------# # Variables # Check user curuser=`whoami` if test $curuser != "root"; then echo 'Run the script as user root with sudo command.' exit fi # stty -echo read -p "Đ’водиŃ‚Đľ паŃ€ОНŃŒ root пОНŃŒСОваŃ‚оНŃ? Ń Đ¸Ń Ń‚оПŃ‹: " pass stty echo printf '\n' _pass=$pass # root pass # printf "%s\n" "" "ĐĄĐżĐ¸Ń ĐžĐş пОНŃŒСОваŃ‚оНоК в прОфиНŃ?Ń… кОтОрых ПОМоŃ‚ ĐąŃ‹Ń‚ŃŒ Ń ĐžŃ…Ń€Đ°Đ˝Ń‘ннŃ‹Đš архив LAMP:" "" # List only usernames


! " "# # Minimum and maximum user IDs from /etc/login.defs UID_MIN=$(awk '/^UID_MIN/ {print $2}' /etc/login.defs) UID_MAX=$(awk '/^UID_MAX/ {print $2}' /etc/login.defs) awk -F: -v min=$UID_MIN -v max=$UID_MAX '$3 >= min && $3 <= max{print $1}' /etc/passwd # echo -n "Đ’водиŃ‚Đľ иПŃ? пОНŃŒСОваŃ‚оНŃ? Ń Đ¸Ń Ń‚оПŃ‹: " read user # _users=`awk -F: -v min=$UID_MIN -v max=$UID_MAX '$3 >= min && $3 <= max{print $1}' /etc/passwd` # if `echo ${_users[@]} | grep -q "$user"` ; then echo 'Đ˜ĐźŃ? пОНŃŒСОваŃ‚оНŃ?' $user 'дОпŃƒŃ Ń‚иПО.' else echo 'ĐžŃˆийка, иПŃ? пОНŃŒСОваŃ‚оНŃ?' $user 'нодОпŃƒŃ Ń‚иПО.' exit fi # _user=$user # echo -n "Đ’водиŃ‚Đľ пОНŃŒСОваŃ‚оНŃ? йаСŃ‹ даннŃ‹Ń…: " read dbuser _dbuser=$dbuser # = 'root' # stty -echo read -p "Đ’водиŃ‚Đľ паŃ€ОНŃŒ йаСŃ‹ даннŃ‹Ń…: " dbpass stty echo printf '\n' _dbpass=$dbpass # = 'rootpassword' #


! " "# echo -n "Đ’водиŃ‚Đľ Đ´Đ°Ń‚Ńƒ Ń ĐžŃ…Ń€Đ°Đ˝Ń‘ннОгО Đ°Ń€Ń…ива (YYYY-MM-DD): " read TIMESTAMP # BACKUP_DIR="/home/${_user}/public_html/servers_backups/$TIMESTAMP" # if [ ! -d "$BACKUP_DIR" ] ; then echo 'Đ?рхива LAMP От' ${TIMESTAMP} 'но Ń ŃƒŃ‰ĐľŃ Ń‚вŃƒĐľŃ‚.' exit fi # printf "%s\n" "" "ĐĄĐżĐ¸Ń ĐžĐş йаС даннŃ‹Ń… Đ´ĐžŃ Ń‚ŃƒпнŃ‹Ń… Đ´ĐťŃ? Đ˛ĐžŃ Ń Ń‚анОвНониŃ?:" "" cat "$BACKUP_DIR/databases-list.txt" echo -n "Đ’водиŃ‚Đľ иПŃ? йаСŃ‹ даннŃ‹Ń… Đ´ĐťŃ? Đ˛ĐžŃ Ń Ń‚анОвНониŃ? иНи Đ´ĐťŃ? Đ˛ĐžŃ Ń Ń‚анОвНониŃ? Đ˛Ń ĐľŃ… йаС даннŃ‹Ń… вводиŃ‚Đľ all: " read dbrestore _dbrestore=$dbrestore # _dbnames=`cat "$BACKUP_DIR/databases-list.txt" | tr '\n' ' '` # if [ `echo ${_dbnames[@]} | grep -q "${_dbrestore}"` ] || [ $ {_dbrestore}="all" ]; then echo 'Đ‘аСа даннŃ‹Ń…' ${_dbrestore} 'От' $TIMESTAMP 'вОСПОМна Đ´ĐťŃ? Đ˛ĐžŃ Ń Ń‚анОвНониŃ?.' else echo 'Đ˜ĐźŃ? йаСŃ‹ даннŃ‹Ń…' ${_dbrestore} 'вводонО но воŃ€нО.' exit fi # cp "$BACKUP_DIR"/ip-based_vhosts.conf /etc/apache2/vhosts.d/ipbased_vhosts.conf


! " "# chown root /etc/apache2/vhosts.d/ip-based_vhosts.conf # # Restore databases # Đ•Ń ĐťĐ¸ Ń ĐžĐˇĐ´Đ°Đ˛Đ°Ń‚ŃŒ dump Đ˛Ń ĐľŃ… йаС даннŃ‹Ń… Ń ĐżĐžĐźĐžŃ‰ŃŒŃŽ: # mysqldump -u[user] -p[pass] –all-databases > [file_name].sql # Ń‚Đž Đ˛ĐžŃ Ń Ń‚анОвНонио ОднОК йаСŃ‹ даннŃ‹Ń…: # mysql -u root -p --one-database destdbname < alldatabases.sql # Đ&#x;Ń€ĐžŃ Ń‚Đž иСвНоŃ‡ŃŒ Ń„аКН йаСŃ‹ даннŃ‹Ń… иС --all-databases dump Ń„аКНа: # sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql # # printf "%s\n" "" "Đ&#x;Ń€ĐžŃ†ĐľŃ Ń Đ˛ĐžŃ Ń Ń‚анОвНониŃ? йаС даннŃ‹Ń…..." "" # _databases=( `cat "$BACKUP_DIR/databases-list.txt" | tr '\n' ' '`) cd "$BACKUP_DIR" if test ${_dbrestore} = "all"; then for db in ${_databases[@]}; do echo 'CREATE DATABASE ${db};' | mysql -u ${_dbuser} -p$ {_dbpass} -e "create database ${db}; GRANT ALL PRIVILEGES ON $ {db}.* TO ${_dbuser}@localhost IDENTIFIED BY '${_dbpass}'" done gunzip < databases.sql.gz | mysqldump -u ${_dbuser} -p${_dbpass} --all-databases else mysql -u ${_dbuser} -p${_dbpass} -e "drop database $ {_dbrestore};" printf "%s\n" "" "Đ‘аСа даннŃ‹Ń… ${_dbrestore} Ń ĐąŃ€ĐžŃˆона." "" echo 'CREATE DATABASE ${_dbrestore};' | mysql -u ${_dbuser} -p$ {_dbpass} -e "create database ${_dbrestore}; GRANT ALL PRIVILEGES


! " "# ON ${_dbrestore}.* TO ${_dbuser}@localhost IDENTIFIED BY '$ {_dbpass}'" # Đ’ĐžŃ Ń Ń‚анОвНонио ŃƒкаСаннОК йаСŃ‹ данннŃ‹Ń… gunzip < databases.sql.gz | mysql -u ${_dbuser} -p${_dbpass} --one-database ${_dbrestore} fi # printf "%s\n" "" "Đ’ĐžŃ Ń Ń‚анОвНонио СаданнŃ‹Ń… йаС даннŃ‹Ń… СакОнчонО." "" # exit 0

a&-% ' , 7 '8- J % , ' =< ;^ % 0 0T% 7 - ,- U- " install-drupal-ru.sh,

! " ! ! ! root.

^ ! 3 i j - ' ! $ . 9* )" FG 3=H $ % + $ admin $ admin8 J * % " - " ) " $ 7 a Gb= c4d <@8 #!/bin/bash # Script automatic install Drupal # # Copyright script by Vladislav Krashevskij (v.krashevski#gmail.com) # 23.08.2014 # #---------------------------------------------------# This work is licensed under a Creative Commons # Attribution-ShareAlike 3.0 Unported License; # see http://creativecommons.org/licenses/by-sa/3.0/ # for more information. #---------------------------------------------------


! " "# # # ХцонаŃ€иК ŃƒŃ Ń‚анавНиваоŃ‚ Ń Đ°ĐšŃ‚ Drupal как иПŃ?_Ń Đ°ĐšŃ‚Đ°.lh в диŃ€октОриŃŽ # public_html/иПŃ?_Ń Đ°ĐšŃ‚Đ°/ пОНŃŒСОваŃ‚оНŃ? Ń Đ°ĐšŃ‚Đ° # Đ&#x;ОНŃŒСОваŃ‚оНŃŒ Ń Đ°ĐšŃ‚Đ° пО ŃƒПОНчаниŃŽ admin, паŃ€ОНŃŒ Ń Đ°ĐšŃ‚Đ° admin # # ХцонаŃ€иК пОдŃ€аСŃƒПоваоŃ‚, чтО Ń ĐľŃ€воŃ€ MySQL ŃƒМо ŃƒŃ Ń‚анОвНон # Đ´ĐťŃ? пОНŃŒСОваŃ‚оНŃ? root Ń Đ¸ĐˇĐ˛ĐľŃ Ń‚Đ˝Ń‹Đź паŃ€ОНоП Đ´ĐťŃ? пОНŃŒСОваŃ‚оНŃ? root # # Apache configuration: # for enabling Apache modules: rewrite, cache, mem_cache # apache2 /etc/sysconfig/ root/root rw-r—r-# # localhost configuration: # localhost.conf /etc/apache2/vhosts.d/ root/root rw-r--r-# # virtual hosts configuration: # ip-based_vhosts.conf /etc/apache2/vhosts.d/ root/root rw-r--r-# # ХцонаŃ€иК Đ´ĐťŃ? ŃƒŃ Ń‚анОвки Drupal ŃƒŃ Ń‚анавНиваоŃ‚ Drush # Đ”ОпОНниŃ‚оНŃŒĐ˝Ń‹Đľ йийНиОŃ‚оки ŃƒŃ Ń‚анавНиваоПŃ‹Đľ Ń Ń†онаŃ€иоП # авŃ‚ОПаŃ‚иŃ‡ĐľŃ ĐşĐ¸: # CKEditor librarie # Colobox librarie # Supex Dumper # sxd2_for_drupal7 # # Đ?Đ°Ń Ń‚Ń€ОКка Ń Ń†онаŃ€иŃ? Đ´ĐťŃ? ŃƒŃ Ń‚анОвки piwik ноСакОнчона. # Đ˜Ń Ń‚ĐžŃ‡ник инфОрПации Đ´ĐťŃ? ŃƒŃ Ń‚анОвки piwik: # http://edoceo.com/howto/piwik. # ##


! " "# # # Variables # Check user curuser=`whoami` if test $curuser != "root"; then echo 'Run the script as user root with sudo command.' exit fi # stty -echo read -p "Đ’водиŃ‚Đľ паŃ€ОНŃŒ root пОНŃŒСОваŃ‚оНŃ? Ń Đ¸Ń Ń‚оПŃ‹: " pass stty echo printf '\n' _pass=$pass # root pass # printf "%s\n" "" "ĐĄĐżĐ¸Ń ĐžĐş пОНŃŒСОваŃ‚оНоК в прОфиНи кОтОрых ПОМоŃ‚ ĐąŃ‹Ń‚ŃŒ ŃƒŃ Ń‚анОвНон Drupal:" "" # List only usernames # Minimum and maximum user IDs from /etc/login.defs UID_MIN=$(awk '/^UID_MIN/ {print $2}' /etc/login.defs) UID_MAX=$(awk '/^UID_MAX/ {print $2}' /etc/login.defs) awk -F: -v min=$UID_MIN -v max=$UID_MAX '$3 >= min && $3 <= max{print $1}' /etc/passwd # echo -n "Đ’водиŃ‚Đľ иПŃ? пОНŃŒСОваŃ‚оНŃ? Ń Đ¸Ń Ń‚оПŃ‹: " read user # _users=`awk -F: -v min=$UID_MIN -v max=$UID_MAX '$3 >= min && $3 <= max{print $1}' /etc/passwd` # if `echo ${_users[@]} | grep -q "$user"` ; then


! " "# echo 'Đ˜ĐźŃ? пОНŃŒСОваŃ‚оНŃ?' $user 'дОпŃƒŃ Ń‚иПО.' else echo 'ĐžŃˆийка, иПŃ? пОНŃŒСОваŃ‚оНŃ?' $user 'нодОпŃƒŃ Ń‚иПО.' exit fi # _user=$user # _group='users' # printf '\n' echo -n "Đ’водиŃ‚Đľ иПŃ? Ń Đ°ĐšŃ‚Đ° (oneenglishword): " read

sitepatch

_sitepatch=$sitepatch # printf "%s\n" "" "Đ•Ń ĐťĐ¸ вŃ‹пОНнона Đ˝Đ°Ń Ń‚Ń€ОКка ĐąĐľĐˇĐžĐżĐ°Ń Đ˝ĐžŃ Ń‚и MariaDB, Ń‚Đž ПОМнО Ń ĐžĐˇĐ´Đ°Ń‚ŃŒ йаСŃƒ даннŃ‹Ń…:" "" # echo -n "Đ’водиŃ‚Đľ иПŃ? йаСŃ‹ даннŃ‹Ń…: " read dbname _dbname=$dbname # = 'drupal' # echo -n "Đ’водиŃ‚Đľ пОНŃŒСОваŃ‚оНŃ? йаСŃ‹ даннŃ‹Ń…: " read dbuser _dbuser=$dbuser # = 'root' # stty -echo read -p "Đ’водиŃ‚Đľ паŃ€ОНŃŒ йаСŃ‹ даннŃ‹Ń…: " dbpass stty echo printf '\n' _dbpass=$dbpass # = 'rootpassword'


! " "# # # To automatic install Drupal printf "%s\n" "" "Drupal installation process..." "" # # ХОСданио йаСŃ‹ даннŃ‹Ń… echo 'CREATE DATABASE ${_dbname};' | mysql -u ${_dbuser} -p$ {_dbpass} -e "create database ${_dbname}; GRANT ALL PRIVILEGES ON ${_dbname}.* TO ${_dbuser}@localhost IDENTIFIED BY '${_dbpass}'" printf "%s\n" "" "Đ‘аСа даннŃ‹Ń… Ń ĐžĐˇĐ´Đ°Đ˝Đ°." "" # # ĐŁŃ Ń‚анОвка Drush иС Ń€опОСиŃ‚Đ°Ń€иŃ? openSUSE zypper addrepo http://download.opensuse.org/repositories/server:php:applications/ openSUSE_13.1/server:php:applications.repo zypper refresh zypper install drush printf "%s\n" "" "Drush ŃƒŃ Ń‚анОвНон." "" # # ХОСданио кОнŃ„игŃƒŃ€Đ°Ń†ии вой-Ń ĐľŃ€вора add_to_apache_conf=" <VirtualHost *> DocumentRoot /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh ServerName www.${_sitepatch}.lh ServerAlias ${_sitepatch}.lh *.${_sitepatch}.lh <Directory "/home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh"> Options +FollowSymLinks AllowOverride All order allow,deny allow from all


! " "# </Directory> ServerAdmin admin@${_sitepatch}.lh </VirtualHost>" # echo "$add_to_apache_conf" >> /etc/apache2/vhosts.d/ipbased_vhosts.conf # # Host names add_to_hosts_conf="127.0.0.1 ${_sitepatch}.lh www.$ {_sitepatch}.lh" # echo "$add_to_hosts_conf" >> /etc/hosts printf "%s\n" "" "ĐšОнŃ„игŃƒŃ€Đ°Ń†иŃ? Apache Ń ĐžĐˇĐ´Đ°Đ˝Đ°." "" # systemctl restart apache2.service printf "%s\n" "" "ХорвоŃ€ поŃ€оСагŃ€ŃƒМон." "" # # To install Drupal mkdir -p /home/${_user}/public_html/${_sitepatch} cd /home/${_user}/public_html/${_sitepatch} # # Get last version of Drupal drush dl drupal # rename drupal-* ${_sitepatch}.lh drupal-* # # This install to Drupal 7 core cd /home/${_user}/public_html/${_sitepatch}/${_sitepatch}.lh chmod a+w sites/default cp sites/default/default.settings.php sites/default/settings.php chmod a+w sites/default/settings.php


! " "# # # This install Drupal 7 user=admin password=admin drush site-install standard -y --account-name=admin --accountpass=admin --db-url=mysql://${_dbuser}:${_dbpass}@localhost/$ {_dbname} --db-su=${_dbuser} --db-su-pw=${_dbpass} --site-name=$ {_sitepatch} # mkdir -p sites/default/files mkdir -p sites/default/files/tmp chgrp -R www sites/default/files chmod -R g+w sites/default/files mkdir -p /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/libraries chown -Rf ${_user}:users /home/${_user}/public_html/${_sitepatch} printf "%s\n" "" "Đ”Đ¸Ń Ń‚Ń€ийŃƒŃ‚ив Drupal ŃƒŃ Ń‚анОвНон в диŃ€октОриŃŽ /home/"${_user}"/public_html/"${_sitepatch}"/"${_sitepatch}".lh." "" # printf "%s\n" "" "Đ&#x;Ń€ĐžŃ†ĐľŃ Ń ŃƒŃ Ń‚анОвки дОпОНниŃ‚оНŃŒĐ˝Ń‹Ń… йийНиОŃ‚ок Drupal..." "" # Libraries mkdir -p /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/libraries # ĐŁŃ Ń‚анОвка Đ¸Ń ĐżĐžĐťŃŒСŃƒоПŃ‹Ń… Ń Đ°ĐšŃ‚ОП йийНиОŃ‚ок

CKEditor и

Colobox

# Install CKEditor librarie wget http://download.cksource.com/CKEditor/CKEditor/CKEditor %204.4.3/ckeditor_4.4.3_standard.tar.gz tar xfz ckeditor_4.4.3_standard.tar.gz -C /home/$ {_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/libraries #


! " "# # Install Colobox librarie wget --no-check-certificate https://github.com/jackmoore/colorbox/archive/master.zip unzip master.zip -d /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/libraries cd /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/libraries rename colorbox* colorbox colorbox* # # Đ•Ń ĐťĐ¸ но вŃ‹пОНнŃ?ĐľŃ‚Ń Ń? авŃ‚ОПаŃ‚иŃ‡ĐľŃ ĐşĐ°Ń? СагŃ€ŃƒСка, # Ń‚Đž Ń ĐťŃƒŃ‡Đ°Đľ СагŃ€ŃƒСиŃ‚Đľ йийНиОŃ‚оки на НОкаНŃŒĐ˝Ń‹Đš кОПпŃŒŃŽŃ‚ĐľŃ€ # и Đ¸Ń ĐżĐžĐťŃŒСŃƒĐšŃ‚Đľ кОПандŃ‹ Đ´ĐťŃ? ŃƒŃ Ń‚анОвки: # Install CKEditor librarie # mv /home/${_user}/Đ—Đ°ĐłŃ€ŃƒСки/ckeditor /home/${_user}/public_html/$ {_sitepatch}/${_sitepatch}.lh/sites/all/libraries # # Install Colobox librarie # mv /home/${_user}/Đ—Đ°ĐłŃ€ŃƒСки/colorbox-master /home/$ {_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/libraries # cd /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/libraries # rename colorbox* colorbox colorbox* printf "%s\n" "" "Đ”ОпОНниŃ‚оНŃŒĐ˝Ń‹Đľ йийНиОŃ‚оки ŃƒŃ Ń‚анОвНонŃ‹." "" # # Đ?Đ°Ń Ń‚Ń€ОКки ĐąĐľĐˇĐžĐżĐ°Ń Đ˝ĐžŃ Ń‚и Ń Đ°ĐšŃ‚Đ° Drupal cd /home/${_user}/public_html/${_sitepatch}/${_sitepatch}.lh chown -hR ${_user}:${_group} /home/${_user}/public_html/$ {_sitepatch}/${_sitepatch}.lh # chmod go-w sites/default/settings.php


! " "# chmod go-w sites/default # printf "%s\n" "" "Đ&#x;Ń€ĐžŃ†ĐľŃ Ń ŃƒŃ Ń‚анОвки ПОдŃƒНоК Drupal..." "" # Install popular Drupal 7 modules drush dl admin_menu, ctools, pathauto, transliteration, globalredirect, captcha, token, l10n_update, logintoboggan, page_title, date, link, email, date, textformatter, ckeditor, video_filter, imce, colorbox, libraries, jquery_update, dhtml_menu, ds, footermap, xmlsitemap, views, views_slideshow, rules, entity, webform, panels, quicktabs, privatemsg, profile2, sharethis, memcache, google_analytics printf "%s\n" "" "Drupal modules are installed." "" # printf "%s\n" "" "Đ&#x;Ń€ĐžŃ†ĐľŃ Ń ĐżĐžĐ´ĐşĐťŃŽŃ‡ониŃ? ПОдŃƒНоК Drupal..." "" # Enable popular Drupal modules drush en -y locale, admin_menu, admin_menu_toolbar, ctools, pathauto, transliteration, globalredirect, captcha, token, l10n_update, page_title, date, link, email, date, ckeditor, imce, colorbox, libraries, jquery_update, footermap, xmlsitemap, views_ui printf "%s\n" "" "Drupal modules are enabled." "" # ОткНючонио ПОдŃƒĐťŃ? Drupal shorcut drush dis toolbar shorcut -y # # Localization Drupal russian language printf "%s\n" "" "Install Drupal localization" "" # drush dl drush_language drush language-add ru drush language-enable ru drush language-default ru # Download translation files


! " "# printf "%s\n" "" "Instalation Drupal translation files..." "" drush l10n-update-refresh -y drush l10n-update -y # printf "%s\n" "" "Đ&#x;Ń€ĐžŃ†ĐľŃ Ń ŃƒŃ Ń‚анОвки Supex Dumper..." "" # ĐŁŃ Ń‚анОвка Supex Dumper cd /home/${_user}/public_html/${_sitepatch}/${_sitepatch}.lh/ wget https://sypex.net/files/SypexDumper_2011.zip unzip SypexDumper_2011.zip -d /home/${_user}/public_html/$ {_sitepatch}/${_sitepatch}.lh/ # mv /home/${_user}/Đ—Đ°ĐłŃ€ŃƒСки/sxd /home/${_user}/public_html/$ {_sitepatch}/${_sitepatch}.lh/sxd # ĐŁŃ Ń‚анОвка Supex Dumper for Drupal 7 wget https://sypex.net/files/sxd2_for_drupal7.zip unzip sxd2_for_drupal7.zip -d /home/${_user}/public_html/$ {_sitepatch}/${_sitepatch}.lh/sxd mv /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sxd/modules/sypex_dumper /home/$ {_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sites/all/modules/sypex_dumper chmod 0777 /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sxd/backup chmod 666 /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sxd/ses.php chmod 666 /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/sxd/cfg.php drush en -y sypex_dumper printf "%s\n" "" "Supex Dumper for Drupal are installed." "" # # ĐŁŃ Ń‚анОвка piwik, Ń ĐşŃ€ипŃ‚ ноСакОнчон. #


! " "# # Đ&#x;Ń€одваŃ€иŃ‚оНŃŒнО

ŃƒŃ Ń‚анОвка ПОдŃƒНоК GeoIP пОд openSUSE

# Đ´ĐťŃ? Apache и PHP # zypper install apache2-mod_geoip # zypper install php5-devel # SuSEconfig # mkdir -p /usr/share/GeoIP # wget http://pecl.php.net/get/geoip-1.0.7.tgz # (whatever the latest version is from http://pecl.php.net/package/geoip ) # tar -xzf geoip-1.0.7.tgz # cd geoip-1.0.7/ # phpize # ./configure # make # make install # cp /etc/php5/conf.d/gd.ini /etc/php5/conf.d/geoip.ini # РодакŃ‚иŃ€Ованио Ń„аКНОв geoip.ini и php.ini в Ń€ŃƒŃ‡Đ˝ŃƒŃŽ # vi /etc/php5/conf.d/geoip.ini # Change gd.so to geoip.so # :wq! # vi /etc/php5/apache2/php.ini # Find the [gd] section and add a new section afterwards: # [geoip] # geoip.custom_directory = /usr/share/GeoIP/ # :wq! # # systemctl restart apache2.service # # ĐŁŃ Ń‚анОвка Đ´Đ¸Ń Ń‚Ń€ийŃƒŃ‚ива piwik # mkdir /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/piwik


! " "# # git clone https://github.com/piwik/piwik /home/$ {_user}/public_html/${_sitepatch}/${_sitepatch}.lh/piwik # # ĐŁŃ Ń‚анОвка ПОдŃƒĐťŃ? Drupal Đ´ĐťŃ? piwik # drush dl piwik # drush en -y piwik # # Đ?Đ°Ń Ń‚Ń€ОКка Apache Đ´ĐťŃ? piwik Piwik — Logs # add_piwik to_apache_conf=" # <VirtualHost *> # Alias /piwik /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/piwik # <Directory /home/${_user}/public_html/${_sitepatch}/$ {_sitepatch}.lh/piwik #

Order allow,deny

#

Allow from all

#

AllowOverride None

#

Options Indexes FollowSymLinks

#

RewriteEngine On

#

RewriteCond %{REQUEST_FILENAME} !-d

#

RewriteCond %{REQUEST_FILENAME} !-f

#

RewriteRule .* index.php [L,QSA]

# </Directory> # </VirtualHost>" # # echo "$add_piwik to_apache_conf" >> /etc/apache2/vhosts.d/ipbased_vhosts.conf # # systemctl restart apache2.service #



! " "#

4 '0 g-%'- l: m 0%' -0T%U- J0( %U- 7 J0' =< ;^ n g ) $ FG 3=H ! & fG 3=H 1h e4h1=HH1I2f H4hl FG h?l ! ! $ " ! , " - 0/r FG 3=H8 <fI I4 l g ) &[ $ $ & * (! 8 C=e?< e2l Q + - % )* ! )* $ 0 h8 P56yT .H2d=H 4f G4>el J $ " \7 ! NZL' [ ! 8 P56yT Ej4f e2Gl J ! & Ev4f e2G Pck5rck. ! T $ ! )* "8 rI>4l O [ )" + ! , " % " ' %! " $ $ 8 E=3e>?=l O ) $ $' + , ! ! ) + " E<CaED< 7 " 8 a2j4 l \ [ " <Cr $ ) " ! , ! ! $ )$ 8 2b e2d2bb= l ^ 7 $ * FG 3=H8 jl J % R ) ! ! * * % 8 6I= Hl J % 6I= H ! * * % 8 F=e4l J % g ! * * % 8 U2H2Gd2 l J ! ) ! ! ! [ " - "' - ' $ % $ - " 7 8 4GAt 3f=e4l J + B 4GA 0r + $ $ $ 4ihl $ - )* - ! " $ [ & + , ! " "! - )* 5B ! )* " 8 4ihthH f4h?2il $ 4ih " 7 " 8 H4hl J " ) $) &' ) * [ * ) *8


! " "# c4dz2GIl U , $ ! 8 C= 4Hhl U - ) $ ! ) -' ! ' $) ! $ $)7 &8 w 45e=Gl J " % W + + 8 m=>j 3 = f I bG=e4l V ! " FG 3=H & &8 .22bH4 = =HAe >hl g .22bH4 < =HAe >h 5 ! % -) 7 + " 8 F4 4Hl S $ + )* $ " ! FG 3=H $ " $ , $ 8 <f = >4ft?4H3l ^ 7 & $ FG 3=H8

4 '0 g-%'- F: m 0%' -0T%U- - J U 0( + U =< ;^ ) % ,% =< ;^9 <k FG 3=H ?ee3hl11fG 3=H82Gb13G2 4>e1fG 3=H + $ " FG 3=H ?ee3hl11fG 3=H82Gb13G2 4>e1I2f H4h1>=e4b2G 4h U ! ! $ FG h? ?ee3l11fG h?8ih1?4H31N 4- -, U =< ;^ J ) FG 3=H ?ee3hl11H2>=H p48fG 3=H82Gb o-7U Q 70-%'( =< ;^ 9 $) FG 3=H ?ee3hl11fG 3=H82Gb13G2 4>e1e?4I4h 2>j4e a?4I4 ?ee3l11iii8G2>j4ee?4I48>2I a4I3H=e4 @2 he4G ?ee3l11iii8e4I3H=e4I2 he4G8>2I a?4I4 w2G4he ?ee3l11e?4I4z2G4he8 4e 4 ' ,U - ,- % % ,- =< ;^ 52HG h4=G>? h4G 4G ?ee3l11H >4 48=3=>?482Gb1h2HG1f2i H2=fh8?eIH 54=G>? <Cr ?ee3hl11fG 3=H82Gb13G2 4>e1h4=G>?t=3 54=G>? <Cr 52HG h4=G>? ?ee3hl11fG 3=H82Gb13G2 4>e1h4=G>?t=3 th2HG


! " "# 4 J0( %U- -&' 0'C' , %%U- ' '+J ',U =< ;^ y34 y eG4=>? ?ee3hl11fG 3=H82Gb13G2ˆ4>e1234 2 eG4=>? E2II4G>4 v >jhe=Ge ?ee3hl11fG 3=H82Gb13G2ˆ4>e1>2II4G>4tj >jhe=Ge y34 C dH h? ?ee3hl11fG 3=H82Gb13G2ˆ4>e1234 3 dH h? g + ) FG 3=H ?ee3hl11fG 3=H82Gb13G2ˆ4>e1f heG d e 2 h 4 J U JP'V 'C, ' -0- 5 34 F I34G ?ee3l11hA34 8 4e1G 13G2f >eh1f I34G1f2i H2=fh1 5 34 F I34G FG 3=H „8 ?ee3l11hA34 8 4e1G 13G2f >eh1f I34G1f2i H2=fh1

4 '0 g-%'- p: R C %'- V '%P 0( + U ,U % P JC % '7- - q <@!`9< S S "! $ + ! % FG 3=H ) ) ! " + ! " ! ) + - $) * + " w2Gd 4 h8G ' + E@5 FG 3=H8 ‰ ! 9 7 ! "8

J , $ * + ) ) ! " + ! " ) ! ' $ 7 + ! [ 8 O ! $ + ! ! " * + s nZ ZZZ ZZZ ' L„ZZ ! zG2 e 4 f 8

) ' %'- ' -7U V '%P R- ,- % ( Q- 7 g * + LZ $ * ! 7 )* - $ - ! " ! $ * ! " , $)' &[ " ! + ! P 2=f d=H= > bT' zG2 e 4 f d=>j 4 f ! $ ' &[ zG2 e 4 f ! ) ! & P T ! " ' $ & ! & $ " $ 7 ) ! &'


! " "# R ! % $ P! 7 ) -)T zG2 e 4 f ! ' + $ %W )$ % $ PE@5 FG 3=HT d=>j 4 f ! ' + ) ! % 8 .' J 0'C &'( S d=>j 4 f ! - - " $) $ 7 $ - & - $ % % " P LZ ! $)$ $ ! T' &[ * )*8 4- - 0B8-%'- % ,% (K -C- ,% ( 7 2'%U N '%V %'C &'( Q 0 ,O g , " * + $ * - $ % )$ )$ ! $ & $ ! % + ! 8 R- T g ! " % $ ! <EC )* )* ! $$ 8

[- 0'C &'( V '%P q< XK! I` g ! [ + rC $ % ! $ & $ % $ ! )" )" E< C P W 7 " )" " " rC ! $ & )" ! $ & ! T8 9 b W ) d=>j 4 f ) ! 7 ' $ % + ! ! & " P ! T8 9 $ % $ b ! =G h?1D=CG2 A8 O % " (! W , ! ) 3z8 >;LhK! I` J $ W )" + - - ! s 4p = H Py5 wG44m5FT % " " ' ) 6/ 234 8


! " "# U * - ! $ ! $ & * d=>j 4 f ! ) >hA > M' * ! $ ' ) $ ! * && ! - & ! , ! * ) ) zG2 e 4 f ! $ & *8 9 d=>j 4 f <3=>?48 E@5 d=>j 4 f s FG 3=H $ $ m22he ! 7 ! * - " ' | ) )* d=>j 4 f s @=G =Fm8 V ! - ) )* $ % $ @=G =Fm' % )$ + - )* * %W ! + ! ' ! " ) $ [ & I=he4G hH= 4 @=G =Fm8 Q ) ! - s @@@ .=H4G=8

o- J]'- C 8' V '%P V ! ' @=G =Fm s IAh Hf I38 9 " 7 " PDaaCT $ + * + )$ W ! $ s =dd 8 g ! & b e G4fI 48 \ $ - l

W ) H2b , " ) )* s IAh Hf I3hH2i Ij 4GA f b4he

f4d b s 7 ! '

r heG I4e=e 2 C4G>2 = * ! ! &[ 7 ! 8

J , l b $ % % $ d=>j 4 f s ) H2b , " ) , $ E5 ' $ & )* @=G =Fm & + + ) ) + , ! $ )$ - $8 J , $ % $ % 8


! " "#

4 +%-- 7 ' - %0 % % ,' - : ' -7% P Jg-%'( ' =< ;^ 0( + U ,U % P JC

^ ' ;"24"A_ `%a74> : b () ' 9 C%2d%21e!$!e f Kg L X F .' N ;P ' h!%>KiKj ? F !$!;< =74> ' h!%>KiKj E F ' `%a74> G ^ '/ !"#$% ' h!%>KiKj G ^ '/ ;<KMN k;"24"A_l ' h!%>KiKj W ^ '/ `%a74> ' h!%>KiKj W S 9 *

+ b () ' * +, . / !"#$% Y . +, m3245% L F 7%7#"#$%= R ) + `%a74> : b . 9 / * , `%a74> : n+' (] ' Z + !"#$% ? S 9 / * , !$!;< =74> `%a74> E

/ * +, , A2B!"D `%a74> L ^ /9 *

+ LL Y / Z ;<KMN k;"24"A_l `%a74> LR @9. PQP . ' . / Z L: S 9

9+ +, !$!;< =74> L: F 9 . . * + 9. 9. o .' 9/ +, ;"24"A_ ' . ]*( !$!;< =74> LX T . .' *O =B7! 9/ +, LX n .' K<!%V 9. o * + /9 * PQP ' K<!%V AB7!%2 L?


! " "# Y ' KB!%V AB7!%2

LE S 9 / * , KB!%V AB7!%2 `%a74> LG

KB!%V AB7!%2 LG

'Z KB!%V AB7!%2 LW @.' 9+ +, ' . ]*( KB!%V AB7!%2 R KB!%V AB7!%2 L . . . ( J;K A2B!"D R b /) p"d"K#24!5 o (] . P434q RL n / * . O gB2r">4V `%a ; / +. A2B!"D XE

R ' r0- %%UV - J ,Y ' 0TC , %%UV ' % ' %'' 7 %J ' $ 8 g ) ) ) ! ( ! ) )8

L8 I= $ - " $) 8 M8 234 5056 F2> I4 e=e 2 s " , - ) ! 234 5056 ?ee3l11f2>8234 h h482Gb18 N8 a G j4A 82Gb s )* $ 7 ?ee3l11iii8e G j4AH 82Gb18 }8 B >jhe=Ge s $ 7 ! FG 3=H ?ee3hl11iii8fG 3=H82Gb13G2 4>e1 >jhe=Ge8 n8 5e=>j2 4GzH2i s [ )" " ! ?ee3l11he=>j2 4GzH2i8>2I8 8 <H <H4 h= fG s )" " ! ?ee3l11=H =H4 = f4G8>2I8 8 vh =3h?2e s + $$ $! (! + , ! " vF6 ./01 234 50568 ~8 J ) + ( ! ) " )8



Покупайте Ваши книги быстро и без посредников он-лайн – в одном из самых быстрорастущих книжных он-лайн магазинов! окружающей среде благодаря технологии Печати-на-Заказ.

Покупайте Ваши книги на

www.more-books.ru Buy your books fast and straightforward online - at one of the world’s fastest growing online book stores! Environmentally sound due to Print-on-Demand technologies.

Buy your books online at

www.get-morebooks.com VDM Verlagsservicegesellschaft mbH Heinrich-Böcking-Str. 6-8 D - 66121 Saarbrücken

Telefax: +49 681 93 81 567-9

info@vdm-vsg.de www.vdm-vsg.de





Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.