Ravindra BagaleCourses & study guides English

Server चा IP बदलल्यावर WordPress कसं दुरुस्त करायचं

तुमची WordPress site EC2 वर चालतेय. Instance stop करा, परत start करा, आणि site styling शिवाय उघडते, links अडकतात आणि login होत नाही. या chapter मध्ये ते का होतं ते शोधाल, जुना address जिथे save आहे तो database आतून बघाल, mysqldump ने पूर्ण database चा backup आणि restore कराल, आणि WP-CLI ने address safe पद्धतीने बदलाल. मग नवीन themes install कराल, WordPress अचानक FTP details का मागतो ते समजून घ्याल, आणि प्रत्येक नवीन WordPress server ला येणारे पुढचे तीन problems सोडवाल: theme बदलल्यावर 404, "cannot generate responsive image sizes", आणि upload size limit.

या class मध्ये काय शिकणार

  • EC2 stop आणि start नंतर WordPress site का बिघडते, आणि जुना IP कुठे save असतो
  • ते टाळणं: site live होण्याआधी Elastic IP किंवा domain
  • mysqldump आणि > ने database चा backup, आणि .sql file वाचणं
  • scp ने backup laptop वर आणि परत copy करणं
  • DROP, CREATE आणि < ने restore, आणि नेहमीचा ERROR 1049
  • Safe address change: siteurl आणि home, मग WP-CLI wp search-replace
  • Dump मधला साधा text replace serialized settings का बिघडवू शकतो
  • Tab completion, history, आणि files /usr/share/nginx/html च्या आतच का हव्यात
  • Themes install करणं, "Connection Information" prompt आणि त्याचं खरं कारण
  • Option म्हणून vsftpd, आणि FTP पेक्षा SFTP जास्त safe का
  • Theme बदलल्यावरचा 404, missing image sizes, आणि upload size limit सोडवणं
  • WordPress site मधून कमाई, आणि portfolio sites बनवणं

1. Stop आणि start नंतर site का बिघडते

का: Elastic IP नसलेल्या EC2 instance ला प्रत्येक stop आणि start नंतर नवीन public IP मिळतो. Server नवीन IP वर चालतो, पण WordPress ला ते माहीत नसतं.

काय: WordPress त्याच्या database मध्ये IP सकट पूर्ण addresses save करतो:

  1. wp_options table मध्ये siteurl आणि home मध्ये WordPress ज्या address वर install केलं तो असतो, उदा. http://3.3.3.3. प्रत्येक page त्याचे CSS, script आणि link addresses त्यावरून बनवतो.
  2. wp_posts table मध्ये तुम्ही लिहिलेली प्रत्येक post तिचे links आणि images पूर्ण URLs म्हणून ठेवते, उदा. <img src="http://3.3.3.3/wp-content/uploads/bread.jpg">.

Classroom line

Every post we publish is saved inside the database.

नवीन IP वर काय दिसतं, उदा. http://13.13.13.13:

  1. Page चा text येतो, पण styling शिवाय: stylesheet ची link अजून जुन्या IP कडे जाते, तिथे कोणी उत्तर देत नाही.
  2. Post किंवा image वर click केलं की ते जुन्या IP कडे जातं आणि अडकतं. Browser च्या status bar मध्ये दिसतं की तो जुन्या address ची वाट बघतोय.
  3. /wp-admin/ जुन्या IP च्या wp-login.php कडे redirect होतं, म्हणून dashboard मधून दुरुस्त करायला login पण होत नाही.

Database मध्ये ते कसं बघायचं:

    sudo mysql -u root -p
    USE wordpressdb;
    SHOW TABLES;
    SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl','home');
    SELECT post_content FROM wp_posts;
काळा terminal. MariaDB Database changed लिहितो, मग prompt MariaDB [wordpressdb]> show tables; आणि Tables_in_wordpressdb heading असलेली table: wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, wp_term_taxonomy, wp_termmeta, wp_terms, wp_usermeta आणि wp_users.

Whiteboard: wordpressdb मध्ये SHOW TABLES: WordPress installer ने बनवलेल्या 12 wp_ tables, wp_options आणि wp_posts सकट.

Classroom line

We didn't create these tables; WordPress did.

Stop आणि start नंतर: server ला नवीन IP,database मध्ये अजून जुनाच नवीन IP वरचा browser http://13.13.13.13/ Page येतं, पण:1. Styling नाही: stylesheet ची link जुन्या IP कडे, तिथे कोणी उत्तर देत नाही.2. Post links आणि images जुन्या IP कडे.3. /wp-admin/ जुन्या IP च्या wp-login.php कडे redirect होतं, login होत नाही.Browser च्या status bar वर दिसतं तो जुन्याIP ची वाट बघतोय. wordpressdb database च्या आत wp_options siteurl http://3.3.3.3 home http://3.3.3.3 WordPress ज्या address वर install झालं तो. wp_posts (post_content) <img src="http://3.3.3.3/wp-content/ uploads/bread.jpg"> तुम्ही लिहिलेल्या प्रत्येक post मध्ये पूर्ण URLs. बघा: SELECT * FROM wp_posts;

Figure 1. Stop आणि start नंतर browser नवीन IP वर असतो, पण wp_options (siteurl, home) आणि wp_posts मधल्या HTML मध्ये अजून जुना IP असतो, म्हणून styling, links आणि wp-admin आता उत्तर न देणाऱ्या address कडे जातात.

2. टाळा: live होण्याआधी fixed address

का: Address दुरुस्त करणं म्हणजे काम आणि risk. त्याची गरजच न पडणं जास्त चांगलं.

कसं:

  1. Elastic IP: EC2 console मध्ये Elastic IP allocate करा आणि instance ला associate करा. मग stop आणि start नंतरही public IP तोच राहतो.
  2. Domain name: www.example.com सारखा domain A record ने Elastic IP कडे point करा, आणि WordPress domain वर install करा. मग WordPress IP नाही, नाव save करतो.
  3. हे WordPress install करण्याआधी किंवा site कोणाला दाखवण्याआधी आधीच करा. Company website ला पहिल्या दिवसापासून Elastic IP किंवा domain मिळतो.
  4. वापरात नसलेला Elastic IP release करा.

Classroom line

To avoid this, companies always use a static IP.

टाळा: live करण्याआधी server लाकधीच न बदलणारा address द्या आपोआप मिळालेला public IP Monday 3.3.3.3 stop + start Tuesday 13.13.13.13 प्रत्येक stop आणि start नंतरनवीन IP: WordPress बिघडतं. Elastic IP Monday 3.3.3.3 stop + start Tuesday 3.3.3.3 Allocate करून instance ला जोडलेलाstatic public IP. तोच राहतो. Domain name www.example.com -> A record -> Elastic IP WordPress domain वरच install करा,म्हणजे save झालेला addressनाव असतो, IP नाही. Company मध्ये: पहिल्या दिवसापासून Elastic IPकिंवा domain. आधीच हललेल्या site साठी saveकेलेला address बदला (हा chapter).

Figure 2. आपोआप मिळालेला public IP stop आणि start नंतर बदलतो; Elastic IP तोच राहतो; Elastic IP कडे point करणाऱ्या domain मुळे WordPress IP ऐवजी नाव save करतो.

आधीच हललेल्या site साठी, या chapter चा पुढचा भाग backup कसा घ्यायचा आणि मग save केलेला address safe पद्धतीने कसा बदलायचा ते दाखवतो.

3. mysqldump ने database चा backup

का: Database मध्ये काहीही बदलण्याआधी, परत जाता येईल अशी copy ठेवा. Site दुसऱ्या server वर हलवायची पद्धतही backup च आहे.

काय: mysqldump पूर्ण database SQL commands ची एक साधी text file म्हणून लिहितो. > चिन्ह command चा output screen ऐवजी file मध्ये पाठवतं.

कसं:

    sudo mysqldump -u root -p wordpressdb > wp.sql
    ls -l wp.sql
  1. विचारल्यावर MariaDB root password टाका. wp.sql file तुमच्या current folder मध्ये येते.
  2. > file बनवतं, किंवा आधीच असेल तर overwrite करतं. जुना backup ठेवायचा असेल तर wp-before-change.sql सारखं नवीन नाव वापरा.
  3. nano wp.sql किंवा less wp.sql ने उघडा, आणि save न करता बंद करा.

wp.sql मध्ये काय असतं:

  1. 12 पैकी प्रत्येक table साठी: DROP TABLE IF EXISTS, मग columns सह CREATE TABLE, मग सगळ्या rows सह INSERT INTO.
  2. तुमच्या posts, settings आणि जुना IP, सगळं वाचता येईल अशा text मध्ये तिथे असतं.
  3. CREATE DATABASE ची ओळ नसते, म्हणून restore ला आधीच असलेला database लागतो.
wp.sql मध्ये काय: प्रत्येक tableपरत बनवणारं साधं SQL -- MariaDB dump ... Database:wordpressdbDROP TABLE IF EXISTS `wp_options`;CREATE TABLE `wp_options` (`option_id` bigint(20) unsigned NOTNULL ...`option_name` varchar(191) ...) ENGINE=InnoDB ...;INSERT INTO `wp_options` VALUES(1,'siteurl','http://3.3.3.3','on'),(2,'home','http://3.3.3.3','on'), ... 12 पैकी प्रत्येक table साठी:DROP TABLE IF EXISTS जुना table काढतो,CREATE TABLE परत बनवतो,INSERT INTO rows परत टाकतो.CREATE DATABASE नाही:आधीच असलेल्या database मध्येrestore करा.जुना IP इथे text म्हणून आहे. सगळीकडे एकच database नाव: mysqldump wordpressdb,CREATE DATABASE wordpressdb, mysqlwordpressdb.

Figure 3. wp.sql साधं SQL आहे: प्रत्येक table साठी DROP TABLE IF EXISTS, CREATE TABLE आणि INSERT INTO. CREATE DATABASE नसतो, आणि जुना IP आत text म्हणून असतो.

4. scp ने backup server बाहेर copy करा

का: फक्त server वर असलेला backup server सोबतच हरवतो. एक copy तुमच्या laptop वर ठेवा.

कसं: हे तुमच्या laptop वर, key असलेल्या folder मध्ये चालवा:

  1. Download, server कडून laptop वर (शेवटचा . म्हणजे "हा folder"):

    scp -i mykey.pem ec2-user@PUBLIC_IP:/home/ec2-user/wp.sql .
    
  2. Upload, laptop कडून server वर:

    scp -i mykey.pem wp.sql ec2-user@PUBLIC_IP:/home/ec2-user/
    
  3. scp ssh चीच key आणि user वापरतो. PUBLIC_IP च्या जागी server चा सध्याचा IP टाका.

  4. त्याच नावाची बदललेली file upload करण्याआधी server वरची जुनी rename करा, उदा. mv wp.sql old-wp.sql, म्हणजे ती तुमच्याकडे राहते.

5. Database restore करा

का: चूक झाल्यावर किंवा नवीन server वर, restore backup परत आणतो.

कसं:

  1. sudo mysql -u root -p ने login करा आणि database drop करून परत बनवून रिकामा करा:

    DROP DATABASE wordpressdb;
    CREATE DATABASE wordpressdb;
    EXIT;
    
  2. File परत आत द्या. < file command च्या आत पाठवतं:

    sudo mysql -u root -p wordpressdb < wp.sql
    
  3. तपासा: USE wordpressdb; आणि SHOW TABLES; परत 12 tables दाखवतात.

  4. wp.sql पूर्ण आहे हे तपासल्यावरच database drop करा; site च्या content ची ती एकमेव copy असते.
  5. सगळीकडे एकच database नाव वापरलं जातं: mysqldump मध्ये, CREATE DATABASE मध्ये, restore command मध्ये आणि wp-config.php मध्ये.

Classroom line

Drop the old database, create an empty one, and restore into it.

नेहमीचा error:

    ERROR 1049 (42000): Unknown database 'wordpresdb'

याचा अर्थ त्या नावाचा database नाही: इथे wordpresdb हा wordpressdb चा typo आहे. SHOW DATABASES; चालवा, spelling अक्षरन् अक्षर compare करा, आणि command परत चालवा.

mysqldump ने WordPress database चा backup आणिrestore 1. Backup: mysqldump पूर्ण database एका file मध्ये लिहितो sudo mysqldump -u root -p wordpressdb > wp.sql ls -l wp.sql -rw-r--r--. 1 ec2-user ec2-user 114776 wp.sql &gt; sends the output INTO the file wp.sql (a new file each time). wp.sql साधा text आहे: nano किंवा less ने उघडा. 2. scp ने laptop वर copy करा (हे laptop वर चालवा) scp -i mykey.pemec2-user@PUBLIC_IP:/home/ec2-user/wp.sql . scp -i mykey.pem wp.sqlec2-user@PUBLIC_IP:/home/ec2-user/ Download: server कडून laptop. Upload: laptop कडून server. Server बाहेरची copy, server गेला तरी वाचते. 3. नवीन database मध्ये restore: drop करून रिकामा createकरा MariaDB [(none)]> DROP DATABASE wordpressdb; MariaDB [(none)]> CREATE DATABASE wordpressdb; Query OK, 1 row affected Dump मध्ये CREATE DATABASE ची line नसते, म्हणून database आधीहवा. wp.sql सुरक्षित असेल तेव्हाच drop करा. 4. Restore: mysql file परत database मध्ये वाचतो sudo mysql -u root -p wordpressdb < wp.sql sudo mysql -u root -p wordpresdb < wp.sql ERROR 1049 (42000): Unknown database 'wordpresdb' &lt; feeds the file INTO the command. All 12 tables come back. ERROR 1049 म्हणजे database नावात typo: spelling तपासा.

Figure 4. Animation: mysqldump आणि > ने backup, scp ने file copy, database drop करून रिकामा create, mysql आणि < ने restore. ERROR 1049 म्हणजे database चं नाव चुकलंय.

6. Address बदलायचा safe मार्ग

का: Stop आणि start नंतर जुना IP database मध्ये अनेक ठिकाणी असतो. Settings न बिघडवता ते सगळे बदलायचे आहेत.

साध्या text replace मध्ये काय चुकतं: तुम्ही wp.sql download करून editor मध्ये उघडू शकता, सगळीकडे http://3.3.3.3 च्या जागी http://13.13.13.13 टाकू शकता, upload करून restore करू शकता. मग posts आणि links चालतात, पण काही settings गुपचूप हरवू शकतात:

  1. Themes, plugins आणि widgets त्यांच्या settings serialized format मध्ये save करतात, जिथे प्रत्येक text सोबत त्याची length असते, उदा. s:42:"http://3.3.3.3/wp-content/uploads/logo.png".
  2. Text editor किंवा sed text बदलतो पण number नाही. वेगळ्या length च्या नवीन IP मुळे number आता चुकतो, WordPress value वाचू शकत नाही, आणि ती setting कुठलाही error न देता हरवते.
  3. जुना आणि नवीन address अगदी सारख्या length चे असतील तरच साधा replace नुकसान करत नाही. तेव्हाही खालची पद्धत जास्त चांगली.

Classroom line

For many changes inside the database, you have to find and replace.

साधा text replace WordPress settings का बिघडवूशकतो 1. Theme किंवा plugin ची setting "serialized" save होते:प्रत्येक text सोबत त्याची length a:1:{s:4:"logo";s:42: "http://3.3.3.3/wp-content/uploads/logo.png";} s:42 म्हणजे "पुढचा text 42 characters चा आहे". जुळतं: WordPresssetting वाचतो. 2. wp.sql मध्ये साधं find and replace (editor किंवा sed)text बदलतं, length नाही a:1:{s:4:"logo";s:42: "http://13.13.13.13/wp-content/uploads/logo.png";} Text आता 46 characters, पण अजून s:42 सांगतो. WordPress वाचू शकतनाही, त्याला काहीच मिळत नाही, आणि ती setting गुपचूप हरवते: logo,menu, widget settings. Error दिसत नाही. 3. WP-CLI चा wp search-replace serialized data समजतो आणिlength दुरुस्त करतो a:1:{s:4:"logo";s:46: "http://13.13.13.13/wp-content/uploads/logo.png";} आता s:46 46-character text शी जुळतो. तपासलं: setting बरोबर वाचलीजाते. साधा replace फक्त old आणि new ची length सारखी असेल तेव्हाच safe,आणि तेव्हाही search-replace चांगला.

Figure 5. Animation: serialized setting प्रत्येक text ची length save करते (s:42). साधा replace text 46 characters करतो पण s:42 तसंच ठेवतो, म्हणून WordPress ते वाचू शकत नाही; wp search-replace length s:46 करतो.

कसं, step by step:

  1. आधी backup: sudo mysqldump -u root -p wordpressdb > before-ip-change.sql.
  2. दोन saved addresses बदला म्हणजे wp-admin परत चालेल. sudo mysql -u root -p मध्ये:

    USE wordpressdb;
    UPDATE wp_options SET option_value='http://13.13.13.13' WHERE option_name IN ('siteurl','home');
    
  3. WP-CLI install करा, WordPress ची command line:

    curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
    php wp-cli.phar --info
    chmod +x wp-cli.phar
    sudo mv wp-cli.phar /usr/local/bin/wp
    
  4. Replace आधी बघा. WordPress folder मधून, php-fpm user apache म्हणून चालवा. --dry-run फक्त मोजतो:

    cd /usr/share/nginx/html/wordpress
    sudo -u apache /usr/local/bin/wp search-replace 'http://3.3.3.3' 'http://13.13.13.13' --skip-columns=guid --dry-run
    
  5. खरंच चालवा, तीच command --dry-run शिवाय. ती posts, links आणि serialized settings बदलते, आणि प्रत्येक length दुरुस्त करते.

  6. तपासा: curl -I http://13.13.13.13/, मग एक post आणि /wp-admin/ उघडा. Styling, links आणि login सगळं नवीन IP वर.

Notes:

  1. दोन्ही addresses मध्ये http:// टाका, म्हणजे फक्त URLs बदलतात, IP सारखा दिसणारा दुसरा कुठला number नाही.
  2. --skip-columns=guid guid column ला हात लावत नाही; तो प्रत्येक post चा कायमचा ID आहे, link नाही.
  3. सगळं चालतंय याची खात्री होईपर्यंत before-ip-change.sql ठेवा. काही चुकलं तर section 5 प्रमाणे तो restore करा.

Classroom line

Now click any post; it works.

WordPress चा address बदलायचा safe मार्ग 1. आधी backup काही चुकलं तर परत जायचा मार्ग. sudo mysqldump -u root -p wordpressdb >before-ip-change.sql 2. दोन saved addresses बदला MariaDB मध्ये. wp-admin परत चालतं. UPDATE wp_options SET option_value='http://13.13.13.13'WHERE option_name IN ('siteurl','home'); 3. पूर्ण replace आधी बघा किती replacements ते दाखवतो; काहीच बदलत नाही. wp search-replace 'http://3.3.3.3' 'http://13.13.13.13'--skip-columns=guid --dry-run 4. खरंच चालवा Posts, links आणि serialized settings, lengths सकट. wp search-replace 'http://3.3.3.3' 'http://13.13.13.13'--skip-columns=guid 5. तपासा, आणि backup ठेवा मग posts आणि /wp-admin/ उघडा: सगळं नवीन IP वर. curl -I http://13.13.13.13/ WordPress folder मध्ये, PHP user म्हणून चालवा: sudo -u apache/usr/local/bin/wp search-replace ...

Figure 6. पाच steps मध्ये safe address change: backup, wp_options मध्ये siteurl आणि home बदला, --dry-run ने wp search-replace आधी बघा, खरंच चालवा, मग तपासा आणि backup ठेवा.

7. Terminal च्या दोन सवयी: Tab आणि history

का: WordPress चे paths लांब असतात (/usr/share/nginx/html/wordpress/wp-content/...). Tab typing आणि typos वाचवतो, आणि history आधी चालवलेली लांब command परत चालवू देतो.

Tab completion: file किंवा folder च्या नावाची सुरुवात type करा आणि Tab दाबा; shell ते पूर्ण करतो.

  1. Documents आणि Downloads सारखी दोन नावं सारखीच सुरू होत असतील, तर cd Do + Tab निवडू शकत नाही. दोन्ही बघायला Tab दोनदा दाबा.
  2. अजून एक अक्षर type करा, cd Dow + Tab, आणि ते Downloads पूर्ण करतं.
  3. Tab मुळे file names आणि paths मध्ये wordpresdb सारखे typos पण टळतात.

Classroom line

Two folders start with DO, Documents and Downloads; so which should it open?

Classroom line

Type DOW and it understands.

history: history या shell मध्ये चालवलेल्या commands, number सह, क्रमाने दाखवतो. history | grep vsftpd फक्त vsftpd असलेल्या ओळी दाखवतो. केलेल्या steps परत बघायला किंवा स्वतःच्या notes लिहायला वापरा.

8. तुमच्या files /usr/share/nginx/html च्या आतच हव्यात

का: Amazon Linux वरचा nginx फक्त त्याच्या web root, /usr/share/nginx/html (किंवा server block मध्ये set केलेला root), च्या आत जे आहे तेच serve करतो. Home folder, /home/ec2-user, मध्ये save केलेला page कधीच दिसत नाही.

कसं:

  1. File web root मध्ये move किंवा copy करा:

    sudo mv ~/index.php /usr/share/nginx/html/
    
  2. WordPress स्वतः /usr/share/nginx/html/wordpress मध्ये असतं, आणि nginx चा root तिथे point करतो.

  3. नक्की बनवलेल्या file साठी 404 Not Found आला तर बहुतेक ती चुकीच्या folder मध्ये असते. ls -l /usr/share/nginx/html ने तपासा.

Classroom line

The page shows only if it's exactly inside that folder.

9. Theme install करा

का: Theme content ला हात न लावता site चा पूर्ण look बदलते. wordpress.org च्या directory मध्ये हजारो free themes आहेत.

कसं:

  1. /wp-admin/ मध्ये login करा आणि Appearance > Themes > Add New वर जा.
  2. Search किंवा browse करा, Install click करा, मग Activate.
  3. Site उघडून compare करा. बऱ्याच themes Appearance > Customize किंवा site editor मध्ये customise केल्यावरच त्यांच्या demo सारख्या दिसतात.
  4. काही themes चं free version असतं आणि जास्त features साठी paid upgrade; practice साठी free version पुरेसं आहे.

Classroom line

Theme makers say they need to earn money too.

10. "Connection Information": WordPress FTP का मागतो

का: Install click केल्यावर theme install करण्याऐवजी WordPress एक Connection Information form दाखवू शकतो, जो Hostname, FTP Username आणि FTP Password मागतो.

काय: WordPress ला theme च्या files wp-content/themes मध्ये लिहाव्या लागतात. तो php-fpm user, apache, म्हणून चालतो. त्या user ला folder मध्ये लिहिता येत नसेल, उदा. sudo unzip नंतर folder root चा असल्यामुळे, तर files दुसऱ्या मार्गाने लिहायला WordPress FTP login मागतो. Test server वर folder root चा असताना form आला आणि apache चा केल्यावर गेला.

Connection Information title असलेला पांढरा form. Text: To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host. रिकामे fields Hostname (placeholder example: www.wordpress.org), FTP Username आणि FTP Password, password server वर save होणार नाही अशी note, आणि Connection Type चे options FTP (निवडलेला) आणि FTPS (SSL).

Whiteboard: Connection Information form: WordPress ला स्वतःच्या folder मध्ये लिहिता येत नाही, म्हणून तो FTP details मागतो.

Classroom line

We must let the website transfer files onto our server.

Fix A, सगळ्यात चांगला: folder php-fpm user ला द्या, मागच्या chapter सारखं:

    sudo chown -R apache:apache /usr/share/nginx/html/wordpress
    sudo find /usr/share/nginx/html/wordpress -type d -exec chmod 755 {} \;
    sudo find /usr/share/nginx/html/wordpress -type f -exec chmod 644 {} \;

Theme page reload करा. Form परत येत नाही, आणि themes, plugins आणि updates थेट install होतात.

Fix B, फक्त A सोबत: wp-config.php मध्ये /* That's all, stop editing! */ या ओळीच्या वर ही ओळ टाका:

    define('FS_METHOD', 'direct');

ती WordPress ला form टाळून थेट लिहायला सांगते. ती कुठलीही permission देत नाही: apache ला folder मध्ये अजूनही लिहिता येत नसेल तर install "Could not create directory" ने fail होतं.

Theme install करताना "Connection Information":folder ownership चा problem php-fpm WordPress ला apache user म्हणून चालवतो. Theme टाकायलात्याला wp-content/themes मध्ये लिहावं लागतं. Folder root चा असेल(उदा. sudo unzip नंतर), तर WordPress लिहू शकत नाही, म्हणून तो FTPlogin मागतो: Hostname, FTP Username, FTP Password. तपासलं: ownerroot असेल तर form, apache असेल तर नाही. A. Owner दुरुस्त करा (best) cd /usr/share/nginx/html sudo chown -R apache:apache wordpress Folders 755, files 644, मागच्या chapter सारखं. Form परत येत नाही;themes, plugins आणि updates थेट install होतात. B. FS_METHOD direct define('FS_METHOD','direct'); wp-config.php मध्ये, "That's all, stop editing" च्या वर. हे फक्त formटाळतं: folder तरीही apache ला writable हवा, नाहीतर install fail होतं.A सोबतच वापरा. C. FTP server (vsftpd) Hostname localhost: FTP server त्याच EC2 machine वर चालतो. मग filesftpuser म्हणून लिहिल्या जातात. FTP password encrypt न करतापाठवतो. A वापरा; file transfer हवं असेल तर SFTP (SSH वरून चालतो).

Figure 7. php-fpm (user apache) wp-content मध्ये लिहू शकत नाही म्हणून Connection Information येतो. Fix A: folder apache ला chown करा. B: FS_METHOD direct फक्त form टाळतो. C: FTP server, encryption शिवाय, म्हणून A किंवा SFTP वापरा.

11. Option: vsftpd ने FTP server

का: काही hosting setups WordPress updates साठी FTP वापरतात, आणि तुम्हाला हा form परत भेटेल. तुमच्या स्वतःच्या EC2 server वर vsftpd ने WordPress ला FTP login देऊ शकता. Fix A सोपा आहे; हे option म्हणून शिका.

कसं:

  1. FTP server install करून start करा:

    sudo yum install vsftpd -y
    sudo service vsftpd start
    
  2. /etc/vsftpd/vsftpd.conf मध्ये local_enable=YES आणि write_enable=YES set आहेत हे तपासा; काहीही बदललं तर sudo service vsftpd restart चालवा.

  3. Strong password सह FTP user बनवा, आणि त्याला nginx group मध्ये टाका:

    sudo useradd ftpuser
    sudo passwd ftpuser
    sudo usermod -aG nginx ftpuser
    
  4. त्या group ला wp-content मध्ये लिहू द्या:

    sudo chgrp -R nginx /usr/share/nginx/html/wordpress/wp-content
    sudo chmod -R g+w /usr/share/nginx/html/wordpress/wp-content
    
  5. Connection Information form मध्ये Hostname localhost (FTP server त्याच EC2 machine वर चालतो), FTP username ftpuser आणि त्याचा password, Connection Type FTP टाका. Theme install होते; Activate click करा.

  6. Security group मध्ये port 21 उघडायची गरज नाही, कारण WordPress localhost ला connect होतो.

Risk लक्षात ठेवा: FTP username आणि password encrypt न करता पाठवतो. लांब, वेगळा password वापरा, 12345678 सारखा कधीच नाही. Laptop वरून files हलवायला SFTP वापरा, जो तुमची आधीची SSH key वापरतो, किंवा TLS सह FTPS. FTP ने लिहिलेल्या files ftpuser च्या होतात, हे अजून एक कारण की Fix A जास्त स्वच्छ आहे.

Classroom line

With FTP we can transfer files.

12. Theme activate केल्यावर 404

का: Theme activate केल्यावर site चे pages आणि post links nginx चा 404 Not Found दाखवू शकतात, कारण बऱ्याच themes /hello-world/ सारख्या pretty links वापरतात.

काय: असे addresses खऱ्या files नसतात.

कसं: Server block मध्ये, location / च्या आत:

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

मग sudo nginx -t आणि sudo service nginx reload.

13. "Cannot generate responsive image sizes"

का: Image upload केली की WordPress phones आणि thumbnails साठी तिच्या छोट्या copies पण बनवतो. त्यासाठी त्याला PHP image library लागते.

काय: ती नसेल तर प्रत्येक image upload ला "The web server cannot generate responsive image sizes for this image. Convert it to JPEG or PNG before uploading." दिसतं. Convert करून फायदा नाही; server वर library च नाही.

कसं:

    sudo yum install php-gd -y
    sudo service php-fpm restart

Restart महत्त्वाचा: php-fpm त्याची extensions फक्त start होताना load करतो. Image परत upload करा; message गेलेला असतो.

Video block असलेला WordPress block editor: Drag and drop a video, upload, or choose from your library, आणि Upload, Media Library आणि Insert from URL buttons. खाली तीन dark notices: दोनदा The web server cannot generate responsive image sizes for this image. Convert it to JPEG or PNG before uploading., आणि myvideo.mp4: This file exceeds the maximum upload size for this site.

Whiteboard: Editor मधला video block, image size च्या दोन notices आणि upload size चा error. शेवटच्या notice मधलं video file चं नाव myvideo.mp4 ने बदललं आहे.

14. Upload size limit वाढवा

का: Video किंवा मोठी image "This file exceeds the maximum upload size for this site." ने fail होते. Media > Add New सध्याची limit "Maximum upload file size" म्हणून दाखवतं.

काय: Upload तीन limits मधून जातो, आणि सगळ्यात छोटी जिंकते:

  1. nginx client_max_body_size, default 1 MB. मोठ्या upload ला 413 Request Entity Too Large मिळतं, आणि PHP ला तो दिसतच नाही.
  2. PHP post_max_size, default 8M, पूर्ण request साठी. मोठा upload रिकामा पोचतो.
  3. PHP upload_max_filesize, default 2M, एका file साठी. WordPress "exceeds the maximum upload size" message दाखवतो.

कसं:

  1. /etc/php.ini मध्ये दोन्ही lines set करा, मग php-fpm restart करा:

    upload_max_filesize = 64M
    post_max_size = 64M
    
    sudo service php-fpm restart
    
  2. nginx server block मध्ये client_max_body_size 64M; टाका, मग:

    sudo nginx -t
    sudo service nginx reload
    
  3. Media > Add New reload करा: आता "Maximum upload file size: 64 MB." दिसतं. Test server वर nginx च्या default ला 1.5 MB ची file 413 ने fail झाली, आणि तिन्ही बदलांनंतर 9 MB ची file upload झाली.

  4. स्वतःचे videos आणि images upload करा, किंवा ज्यांचा licence reuse ला परवानगी देतो असे, कुठल्याही sites वरून download केलेल्या files नाही.
File upload तीन limits मधून जातो; सगळ्यात छोटीजिंकते nginx client_max_body_size default 1 MB मोठी: 413 Request Entity Too Large, PHP ला दिसतच नाही. Set करा: client_max_body_size 64M; PHP: पूर्ण request post_max_size default 8M मोठी: upload रिकामं पोचतं. Set करा: post_max_size = 64M PHP: एक file upload_max_filesize default 2M मोठी: "This file exceeds the maximum upload size for this site." Set करा: upload_max_filesize = 64M nginx: /etc/nginx/nginx.conf च्या server block मध्ये, मग sudo nginx -t आणिsudo service nginx reload. PHP: both lines in /etc/php.ini, then sudo service php-fpm restart. Media&gt; Add New then shows "Maximum upload file size: 64 MB." तपासलं: nginx च्या default ला 1.5 MB ला 413; तिन्ही बदलांनंतर 9 MB uploadझालं.

Figure 8. Upload nginx client_max_body_size (default 1 MB), PHP post_max_size (8M) आणि upload_max_filesize (2M) मधून जातो; तिन्ही वाढवा, मग nginx reload आणि php-fpm restart करा.

15. Site मधून कमाई, आणि portfolio बनवणं

का: Site host करणं हे लोक पैसे देतात असं कौशल्य. स्वतःच्या domain वरची site, आणि तुम्ही बनवलेल्या sites चा portfolio, हे कौशल्य दाखवायचा मार्ग.

Site मधून कमाई:

  1. Site त्याच्या स्वतःच्या domain वर ठेवा, मागे Elastic IP सह.
  2. स्वतःचा, उपयोगी content लिहा. Google AdSense approved sites वर ads दाखवतं आणि त्यांचे पैसे देतं; approve होण्यासाठी site त्यांच्या policies पाळणारी हवी.
  3. SEO (search engine optimisation): स्पष्ट titles, चांगला content आणि fast pages मुळे site Google search मध्ये दिसायला मदत होते. जास्त visitors म्हणजे जास्त ad income.

Classroom line

You can build a proper website and just add Google ads to it.

Classroom line

Do SEO and it shows up in Google search.

Portfolio बनवणं:

  1. वारंवार वेगळी practice site बनवा: shop, hospital, restaurant, school. Themes बदला आणि प्रत्येकात sample content भरा.
  2. त्यांचे screenshots share करा, उदा. WhatsApp status किंवा Instagram वर. ते बघणारे लोक त्यांची site बनवायला सांगतात.
  3. स्वतःच्या किंवा free licence असलेल्या images वापरा, आणि sample shops demo म्हणून दाखवा.

Classroom line

Make a WordPress site every day and put it on your WhatsApp status.

16. काही चुकलं तर

का: बहुतेक WordPress प्रॉब्लेम परत परत येतात. योग्य क्रमातली छोटी checklist अंदाज लावण्यापेक्षा लवकर ते सोडवते.

  1. Site उघडतच नाही: services start करा: sudo service nginx start, sudo service mariadb start, sudo service php-fpm start.
  2. Styling नाही, links मध्ये जुना IP: address बदलला. Elastic IP वापरा, किंवा section 6 मधला safe address change.
  3. तुमचा page दिसत नाही: तो /usr/share/nginx/html च्या आत नाही. ls -l ने तपासा.
  4. Installer परत येतो, किंवा "Error establishing a database connection": wp-config.php नाही, किंवा त्यातलं database नाव, user किंवा password जुळत नाही.
  5. ERROR 1049 Unknown database: database नावात typo. SHOW DATABASES; शी compare करा.
  6. Admin page सापडत नाही: तो http://YOUR-ADDRESS/wp-admin/ आहे.
  7. Theme बदलल्यावर post links किंवा page 404 देतात: try_files ची ओळ टाका आणि nginx reload करा.
  8. Theme install करताना FTP मागतो: chown ने folder apache ला द्या.
  9. "Cannot generate responsive image sizes": php-gd install करा आणि php-fpm restart करा.
  10. "Exceeds the maximum upload size" किंवा 413: PHP limits आणि nginx चा client_max_body_size वाढवा.
EC2 वर WordPress: काय दिसतं, काय तपासायचं Site उघडतच नाही → nginx, mariadb, php-fpm start आहेत? sudo service nginx status Styling शिवाय page, links मध्ये जुना IP → Address बदलला: Elastic IP, किंवा safe address change तुमचं page दिसत नाही → ते /usr/share/nginx/html (root) च्या आत आहे? तिथे ls -l करा Installer परत / DB error → wp-config.php आहे? DB नाव, user, password अगदी बरोबर? ERROR 1049 Unknown database → Database नावात typo: SHOW DATABASES; करून तुलना करा Admin page सापडत नाही → तो http://YOUR-ADDRESS/wp-admin/ आहे Post links 404 (उदा. theme नंतर) → nginx server block मध्ये try_files, मग nginx -t, reload Theme install FTP मागतो → Ownership: wordpress folder ला chown -R apache:apache "Cannot generate responsive image sizes" → sudo yum install php-gd -y, मग sudo service php-fpm restart "Exceeds the maximum upload size" / 413 → php.ini limits + nginx client_max_body_size, restart/reload बाकीचं logs सांगतात: /var/log/nginx/error.log आणि/var/log/php-fpm/www-error.log

Figure 9. EC2 वर WordPress: काय दिसतं आणि काय तपासायचं, services आणि web root पासून address, try_files, folder ownership, php-gd आणि upload limits पर्यंत. Logs /var/log/nginx/error.log आणि /var/log/php-fpm/www-error.log मध्ये असतात.

Ravindra Bagale's Tip

WordPress database मध्ये काहीही बदलण्याआधी mysqldump चालवा आणि scp ने file laptop वर copy करा. Backup असेल तर कुठलीही चूक फक्त एका restore इतकी दूर असते. आणि नवीन address साठी कधीच साधा find-and-replace वापरू नका: wp search-replace आधी --dry-run ने काय बदलेल ते दाखवतो, आणि serialized settings सुरक्षित ठेवतो.

Practice झाल्यावर EC2 instance stop करा. Elastic IP नसेल तर त्याचा public IP बदलेल, आणि आता ते कसं दुरुस्त करायचं ते तुम्हाला माहीत आहे.

17. पूर्ण class एका page वर

  1. WordPress पूर्ण addresses save करतो: wp_options मध्ये siteurl आणि home, आणि wp_posts मध्ये पूर्ण URLs. नवीन EC2 IP मुळे site styling शिवाय राहते आणि wp-admin पर्यंत पोहोचता येत नाही.
  2. Site live होण्याआधी Elastic IP किंवा domain ने ते टाळा.
  3. Backup: sudo mysqldump -u root -p wordpressdb > wp.sql; file साधं SQL असते, DROP TABLE, CREATE TABLE आणि INSERT INTO सह, पण CREATE DATABASE शिवाय.
  4. scp -i mykey.pem ec2-user@PUBLIC_IP:/home/ec2-user/wp.sql . download करतो; scp -i mykey.pem wp.sql ec2-user@PUBLIC_IP:/home/ec2-user/ upload करतो.
  5. Restore: DROP DATABASE, CREATE DATABASE, मग sudo mysql -u root -p wordpressdb < wp.sql. ERROR 1049 म्हणजे database चं नाव चुकलंय.
  6. Address safe बदला: backup, siteurl आणि home update, मग wp search-replace 'http://OLD' 'http://NEW' --skip-columns=guid, आधी --dry-run सह.
  7. Lengths वेगळ्या असतील तर साधा text replace serialized settings बिघडवू शकतो.
  8. Tab नावं पूर्ण करतो; history तुमच्या commands दाखवतो; web files /usr/share/nginx/html च्या आत हव्यात.
  9. Themes: Appearance > Themes > Add New. "Connection Information" म्हणजे apache folder मध्ये लिहू शकत नाही: chown -R apache:apache. FS_METHOD direct फक्त form टाळतो.
  10. vsftpd एक option: useradd ftpuser, passwd, usermod -aG nginx, Hostname localhost. FTP encrypted नसतो; SFTP आणि strong password वापरा.
  11. Theme बदलल्यावरच्या 404 ला try_files लागतं; missing image sizes ला php-gd आणि php-fpm restart.
  12. Uploads: /etc/php.ini मध्ये upload_max_filesize आणि post_max_size, nginx मध्ये client_max_body_size, मग restart आणि reload.
  13. स्वतःचा domain, स्वतःचा content, AdSense आणि SEO ने कमवा; practice sites तुमचा portfolio म्हणून बनवा.

18. Hands-on lab: backup घ्या, मग IP बदलल्यावर address दुरुस्त करा

हा lab का. Stop आणि start नंतर साध्या public IP वरची WordPress site styles शिवाय उघडते किंवा जुन्या address वर redirect होते. हा lab आधी backup घेतो, बदल dry run म्हणून करून बघतो, आणि मगच खरा करतो.

  1. Database मधला जुना address बघा
    • Command: sudo mysql -u root -p wordpressdb -e "SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl','home');"
    • काय दिसेल: दोन rows, दोन्हीत जुना http:// address.
    • Check करा: Value तुमच्या नवीन public IP पेक्षा वेगळी.
    • का: WordPress पूर्ण addresses database मध्ये साठवतो, म्हणून तो browsers ना जुन्या IP कडेच पाठवत राहतो.
  2. Database चा backup घ्या
    • Command: sudo mysqldump -u root -p wordpressdb > wp.sql
    • काय दिसेल: काहीच नाही.
    • Check करा: ls -l wp.sql मध्ये 0 पेक्षा जास्त size, आणि head -3 wp.sql -- MariaDB dump comment ने सुरू होतं.
    • का: पुढची प्रत्येक step database बदलते. wp.sql असली की कोणतीही चूक undo करता येते.
  3. Backup laptop वर copy करा
    • Command: scp -i mykey.pem ec2-user@PUBLIC_IP:/home/ec2-user/wp.sql .
    • काय दिसेल: 100% ने संपणारी progress ओळ.
    • Check करा: wp.sql laptop च्या folder मध्ये आहे.
    • का: हे laptop वर चालवा. फक्त server वर असलेला backup server सोबतच हरवतो.
  4. WP-CLI install करा
    • Command: curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp
    • काय दिसेल: curl ची download progress, मग prompt.
    • Check करा: wp --info WP-CLI आणि PHP versions print करतो.
    • का: WP-CLI addresses सगळीकडे बदलतो, serialized data च्या आतसुद्धा, जो साध्या SQL UPDATE ने बिघडेल.
  5. Replacement चा dry run करा
    • Command: cd /usr/share/nginx/html/wordpress && sudo -u apache wp search-replace 'http://OLD_IP' 'http://NEW_IP' --skip-columns=guid --dry-run
    • काय दिसेल: Tables आणि प्रत्येकात किती replacements होतील याचं table, मग Success: ... replacements to be made.
    • Check करा: अजून काहीच बदललं नाही: step 1 ची siteurl query अजूनही जुना address दाखवते.
    • का: --dry-run काय बदलेल ते न बदलता दाखवतो. --skip-columns=guid post IDs ला हात लावत नाही, जसं WordPress सांगतं.
  6. खरंच चालवा
    • Command: sudo -u apache wp search-replace 'http://OLD_IP' 'http://NEW_IP' --skip-columns=guid
    • काय दिसेल: तेच table, मग Success: Made ... replacements.
    • Check करा: Step 1 ची query आता नवीन address दाखवते, आणि http://NEW_IP/ styles सकट उघडतं.
    • का: apache म्हणून चालवल्याने file ownership बरोबर राहते. Backup आणि dry run नंतरच हा बदल सुरक्षित.
  7. Restore कसं करायचं ते जाणून घ्या
    • Command: sudo mysql -u root -p wordpressdb < wp.sql
    • काय दिसेल: काहीच नाही.
    • Check करा: Step 1 ची query परत जुना address दाखवते. नवीनवर परत जायला step 6 परत करा.
    • का: कधीच restore न केलेला backup म्हणजे अंदाज. एकदा restore केलं की तो चालतो हे सिद्ध होतं.
  8. Stop करा, आणि fixed address ची योजना करा
    • करा: Instance stop करा. Live जाण्याआधी Elastic IP attach करा किंवा domain name वापरा (section 2).
    • Check करा: State Stopped.
    • का: Fixed address असला की ही दुरुस्ती परत कधीच लागत नाही.

19. Try at home

Try at home

Task 1: problem बघा

  1. तुमच्या WordPress server वर SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl','home'); चालवा आणि address लिहून ठेवा.
  2. Instance stop आणि start करा, नवीन IP उघडा, आणि काय बिघडलंय ते लिहा.

Task 2: backup आणि restore

  1. mysqldump ने backup घ्या, less ने आत बघा, आणि scp ने download करा.
  2. wordpressdb drop आणि create करा, backup restore करा, आणि SHOW TABLES; तपासा.
  3. एकदा चुकीच्या database नावाने restore चालवा आणि error वाचा.

Task 3: address बदला

  1. WP-CLI install करा, siteurl आणि home update करा, आणि --dry-run सह wp search-replace चालवा. तो किती replacements सांगतो?
  2. खरंच चालवा आणि नवीन IP वर styling, posts आणि wp-admin चालतात का ते तपासा.

Task 4: themes आणि uploads

  1. wp-content/themes चा owner root करा, theme install करून बघा, आणि form बघा. मग chown -R apache:apache ने दुरुस्त करा.
  2. php-gd install करा, php-fpm restart करा, आणि स्वतःची image upload करा.
  3. Upload limit 64M करा आणि Media > Add New तपासा.

Recap

थोडक्यात

  1. WordPress त्याचा address आणि पूर्ण URLs database मध्ये save करतो, म्हणून नवीन EC2 IP styling, links आणि login बिघडवतो.
  2. Live होण्याआधी Elastic IP किंवा domain घेतला की problem टळतो.
  3. mysqldump ... > wp.sql database चा साध्या SQL मध्ये backup घेतो; scp तो server बाहेर copy करतो; mysql ... < wp.sql तो रिकाम्या database मध्ये restore करतो.
  4. Address backup, siteurl आणि home, आणि wp search-replace ने बदला, कारण साधा replace serialized settings बिघडवू शकतो.
  5. "Connection Information" म्हणजे WordPress त्याच्या folder मध्ये लिहू शकत नाही; apache ला owner करा. FTP चालतो पण encrypted नसतो.
  6. try_files 404 सोडवतो, php-fpm restart सह php-gd image sizes सोडवतो, आणि तीन settings upload limit ठरवतात.
  7. Domain, चांगला content, AdSense आणि SEO ने site कमावते, आणि practice sites portfolio बनवतात.

सराव Tasks

या scenario बद्दल

Mumbai Dabba Express हा मुंबई मधला फूड डिलिव्हरी व्यवसाय आहे. Tukaram Gaikwad त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 12

सोपं मोठ्या orders आधी

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: Order id व amount, मोठी amount आधी.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

सोपं City नुसार customers

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: Pune मधल्या customers ची नावं.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

सोपं Ubuntu वर package install करा

का: Ubuntu apt वापरतं. Package नावं वेगळी: Ubuntu वर Apache म्हणजे apache2.

काय करायचं: Ubuntu वर apache2 package confirm न विचारता install करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Server वरून website test करा

का: DNS तयार होण्याआधीही web server उत्तर देतो का ते curl दाखवतो.

काय करायचं: http://localhost ला request पाठवा व फक्त response headers दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम लहान orders काढा

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: 200 पेक्षा कमी amount चे orders delete.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

मध्यम Customer नावांसह orders

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: प्रत्येक customer नाव व order amount.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

मध्यम एकूण sales

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: सगळ्या order amounts ची बेरीज.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

मध्यम City दुरुस्त करा

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: Customer 5 Rome ला गेले. Record update करा.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

मध्यम Port 80 सगळ्यांसाठी उघडा

का: Security group HTTP allow करत असेल तरच visitors website पाहू शकतात.

काय करायचं: Security group sg-01a03134416a4c3b2 वर 0.0.0.0/0 कडून inbound TCP port 80 allow करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Customer नुसार sales

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: Customer नुसार total, फक्त 1000 पेक्षा जास्त.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

अवघड Orders नसलेले customers

का: RDS setup नंतर database query करणं रोजचं काम.

काय करायचं: कधीच order न केलेल्या customers ची नावं.

Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).

कसं करायचं:
  1. Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
  2. SQL statement step by step लिहा: काय, कुठून, कोणते rows.
  3. Statement ; ने संपवा.
  4. Check answer दाबा. Query table च्या practice copy वर चालते.

अवघड Database चा file मध्ये backup घ्या

का: mysqldump पूर्ण database SQL म्हणून लिहितो. मोठ्या बदलांआधी save करा.

काय करायचं: mumbaidabba_wp database root user ने (password विचारून) mumbaidabba_wp.sql मध्ये dump करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

झटपट उजळणी cards

हा lesson दोन मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR त्याचा lesson उघडतो.

तुलना card: scp vs FTP / SFTP (FileZilla). scp: SSH वरून command-line copy. FTP / SFTP (FileZilla): File transfer protocol; FileZilla त्याचं GUI app.
तुलना: scp vs FTP / SFTP (FileZilla) · PNG download करा
उजळणी card: mysqldump ने backup. Posts आणि users database मध्ये, files मध्ये नाही. तो गेला तर site गेली. mysqldump database ला SQL statements म्हणून .sql file मध्ये लिहितो. > ने dump, scp ने server बाहेर copy. Dump:
उजळणी card: mysqldump ने backup · PNG download करा
उजळणी card: Database restore. Restore करता आला तरच backup उपयोगी. रिकामा database बनवा, मग < ने .sql file द्या. ERROR 1049 म्हणजे database अजून नाही: आधी बनवा. Restore:
उजळणी card: Database restore · PNG download करा
उजळणी card: Site address बदला: wp search-replace. IP बदलल्यानंतर WordPress अजूनही जुन्या address ला link करतं. WP-CLI search-replace serialized settings सकट प्रत्येक URL सुरक्षित update करतं. siteurl आणि home set करा, मग search-replace. Command:
उजळणी card: Site address बदला: wp search-replace · PNG download करा
उजळणी card: Theme install आणि Connection Information. Theme install करताना तुमच्याकडे नसलेले FTP details विचारले जातात. PHP folder मध्ये लिहू शकत नसेल तेव्हा WordPress विचारतं. खरा fix म्हणजे ownership. Folder php-fpm user ला द्या; FTP नको. Fix:
उजळणी card: Theme install आणि Connection Information · PNG download करा
तुलना: mysqldump > file vs mysql < file. mysqldump > file: Database SQL file मध्ये लिहितो. mysql < file: SQL file database मध्ये वाचतो.
तुलना: mysqldump > file vs mysql < file · PNG download करा
मुलाखत card: Stop-start नंतर WordPress का तुटतं?. Public IP बदलला, आणि जुना IP siteurl आणि home मध्ये save आहे. सगळ्या links आणि CSS जुन्या IP कडे. Elastic IP किंवा domain ने टाळा; wp search-replace ने fix.
मुलाखत card: Stop-start नंतर WordPress का तुटतं? · PNG download करा
मुलाखत card: .sql dump मध्ये IP find-and-replace का नाही?. Serialized settings string lengths ठेवतात; नवीन length ते तोडते. Widgets आणि theme settings गायब होतात. WP-CLI वापरा, तो lengths fix करतो.
मुलाखत card: .sql dump मध्ये IP find-and-replace का नाही? · PNG download करा
मुलाखत card: FTP पेक्षा SFTP सुरक्षित का?. SFTP SSH वरून चालतो आणि सगळं encrypt करतो; FTP passwords साध्या text मध्ये पाठवतो. रस्त्यावरचा कोणीही FTP logins वाचू शकतो. SFTP port 22 आणि तुमची key वापरतो.
मुलाखत card: FTP पेक्षा SFTP सुरक्षित का? · PNG download करा
मुलाखत card: WordPress site चा पूर्ण backup कसा घेता?. Database dump करा आणि WordPress folder zip करा, मग दोन्ही server बाहेर copy. Posts DB मध्ये; themes आणि uploads files. mysqldump + zip -r + scp.
मुलाखत card: WordPress site चा पूर्ण backup कसा घेता? · PNG download करा

अजून cards: Ravi Sir's Cards.