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, आणि.sqlfile वाचणंscpने backup laptop वर आणि परत copy करणंDROP,CREATEआणि<ने restore, आणि नेहमीचाERROR 1049- Safe address change:
siteurlआणिhome, मग WP-CLIwp 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 करतो:
wp_optionstable मध्ये siteurl आणि home मध्ये WordPress ज्या address वर install केलं तो असतो, उदा.http://3.3.3.3. प्रत्येक page त्याचे CSS, script आणि link addresses त्यावरून बनवतो.wp_poststable मध्ये तुम्ही लिहिलेली प्रत्येक 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.
Class मधलं वाक्य
आपण जेवढ्या posts upload करतोय, त्या सगळ्या database मध्ये save होतायत.
Classroom line – हिंदी
"Hum jitne bhi post upload kar rahe hain, wo sab database ke andar save ho rahe hain."
नवीन IP वर काय दिसतं, उदा. http://13.13.13.13:
- Page चा text येतो, पण styling शिवाय: stylesheet ची link अजून जुन्या IP कडे जाते, तिथे कोणी उत्तर देत नाही.
- Post किंवा image वर click केलं की ते जुन्या IP कडे जातं आणि अडकतं. Browser च्या status bar मध्ये दिसतं की तो जुन्या address ची वाट बघतोय.
/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.](../../../assets/img/aws/wordpress-ip-change-mysqldump-backup-and-themes-01-show-tables-wordpress-tables.webp)
Whiteboard: wordpressdb मध्ये SHOW TABLES: WordPress installer ने बनवलेल्या 12 wp_ tables, wp_options आणि wp_posts सकट.
Classroom line
We didn't create these tables; WordPress did.
Class मधलं वाक्य
हे आपण create नाही केलं, हे WordPress ने create केलंय.
Classroom line – हिंदी
"Ye humne create nahi kiya, ye WordPress ne create kiya hai."
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. त्याची गरजच न पडणं जास्त चांगलं.
कसं:
- Elastic IP: EC2 console मध्ये Elastic IP allocate करा आणि instance ला associate करा. मग stop आणि start नंतरही public IP तोच राहतो.
- Domain name:
www.example.comसारखा domain A record ने Elastic IP कडे point करा, आणि WordPress domain वर install करा. मग WordPress IP नाही, नाव save करतो. - हे WordPress install करण्याआधी किंवा site कोणाला दाखवण्याआधी आधीच करा. Company website ला पहिल्या दिवसापासून Elastic IP किंवा domain मिळतो.
- वापरात नसलेला Elastic IP release करा.
Classroom line
To avoid this, companies always use a static IP.
Class मधलं वाक्य
असा problem येऊ नये, म्हणून company मध्ये नेहमी static IP वापरायचा.
Classroom line – हिंदी
"Aisa problem na aaye, isliye company mein hamesha static IP use karna hai."
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
- विचारल्यावर MariaDB root password टाका.
wp.sqlfile तुमच्या current folder मध्ये येते. >file बनवतं, किंवा आधीच असेल तर overwrite करतं. जुना backup ठेवायचा असेल तरwp-before-change.sqlसारखं नवीन नाव वापरा.nano wp.sqlकिंवाless wp.sqlने उघडा, आणि save न करता बंद करा.
wp.sql मध्ये काय असतं:
- 12 पैकी प्रत्येक table साठी:
DROP TABLE IF EXISTS, मग columns सहCREATE TABLE, मग सगळ्या rows सहINSERT INTO. - तुमच्या posts, settings आणि जुना IP, सगळं वाचता येईल अशा text मध्ये तिथे असतं.
CREATE DATABASEची ओळ नसते, म्हणून restore ला आधीच असलेला database लागतो.
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 मध्ये चालवा:
-
Download, server कडून laptop वर (शेवटचा
.म्हणजे "हा folder"):scp -i mykey.pem ec2-user@PUBLIC_IP:/home/ec2-user/wp.sql . -
Upload, laptop कडून server वर:
scp -i mykey.pem wp.sql ec2-user@PUBLIC_IP:/home/ec2-user/ -
scpsshचीच key आणि user वापरतो.PUBLIC_IPच्या जागी server चा सध्याचा IP टाका. - त्याच नावाची बदललेली file upload करण्याआधी server वरची जुनी rename करा, उदा.
mv wp.sql old-wp.sql, म्हणजे ती तुमच्याकडे राहते.
5. Database restore करा
का: चूक झाल्यावर किंवा नवीन server वर, restore backup परत आणतो.
कसं:
-
sudo mysql -u root -pने login करा आणि database drop करून परत बनवून रिकामा करा:DROP DATABASE wordpressdb; CREATE DATABASE wordpressdb; EXIT; -
File परत आत द्या.
<file command च्या आत पाठवतं:sudo mysql -u root -p wordpressdb < wp.sql -
तपासा:
USE wordpressdb;आणिSHOW TABLES;परत 12 tables दाखवतात. wp.sqlपूर्ण आहे हे तपासल्यावरच database drop करा; site च्या content ची ती एकमेव copy असते.- सगळीकडे एकच database नाव वापरलं जातं:
mysqldumpमध्ये,CREATE DATABASEमध्ये, restore command मध्ये आणिwp-config.phpमध्ये.
Classroom line
Drop the old database, create an empty one, and restore into it.
Class मधलं वाक्य
जुना database एकदा delete करायचा, परत रिकामा create करून त्यात restore करायचा.
Classroom line – हिंदी
"Purana database ek baar delete karte hain, phir se empty create karke usme restore karte hain."
नेहमीचा error:
ERROR 1049 (42000): Unknown database 'wordpresdb'
याचा अर्थ त्या नावाचा database नाही: इथे wordpresdb हा wordpressdb चा typo आहे. SHOW DATABASES; चालवा, spelling अक्षरन् अक्षर compare करा, आणि command परत चालवा.
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 गुपचूप हरवू शकतात:
- Themes, plugins आणि widgets त्यांच्या settings serialized format मध्ये save करतात, जिथे प्रत्येक text सोबत त्याची length असते, उदा.
s:42:"http://3.3.3.3/wp-content/uploads/logo.png". - Text editor किंवा
sedtext बदलतो पण number नाही. वेगळ्या length च्या नवीन IP मुळे number आता चुकतो, WordPress value वाचू शकत नाही, आणि ती setting कुठलाही error न देता हरवते. - जुना आणि नवीन address अगदी सारख्या length चे असतील तरच साधा replace नुकसान करत नाही. तेव्हाही खालची पद्धत जास्त चांगली.
Classroom line
For many changes inside the database, you have to find and replace.
Class मधलं वाक्य
Database मध्ये भरपूर changes करायचे असतील तर find and replace करावं लागेल.
Classroom line – हिंदी
"Database ke andar bahut saare changes karne hain to find and replace karna padega."
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:
- आधी backup:
sudo mysqldump -u root -p wordpressdb > before-ip-change.sql. -
दोन 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'); -
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 -
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 -
खरंच चालवा, तीच command
--dry-runशिवाय. ती posts, links आणि serialized settings बदलते, आणि प्रत्येक length दुरुस्त करते. - तपासा:
curl -I http://13.13.13.13/, मग एक post आणि/wp-admin/उघडा. Styling, links आणि login सगळं नवीन IP वर.
Notes:
- दोन्ही addresses मध्ये
http://टाका, म्हणजे फक्त URLs बदलतात, IP सारखा दिसणारा दुसरा कुठला number नाही. --skip-columns=guidguidcolumn ला हात लावत नाही; तो प्रत्येक post चा कायमचा ID आहे, link नाही.- सगळं चालतंय याची खात्री होईपर्यंत
before-ip-change.sqlठेवा. काही चुकलं तर section 5 प्रमाणे तो restore करा.
Classroom line
Now click any post; it works.
Class मधलं वाक्य
आता कुठल्याही post वर click करा, चालेल.
Classroom line – हिंदी
"Ab kisi bhi post pe click karo, kaam karega."
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 ते पूर्ण करतो.
DocumentsआणिDownloadsसारखी दोन नावं सारखीच सुरू होत असतील, तरcd Do+ Tab निवडू शकत नाही. दोन्ही बघायला Tab दोनदा दाबा.- अजून एक अक्षर type करा,
cd Dow+ Tab, आणि तेDownloadsपूर्ण करतं. - Tab मुळे file names आणि paths मध्ये
wordpresdbसारखे typos पण टळतात.
Classroom line
Two folders start with DO, Documents and Downloads; so which should it open?
Class मधलं वाक्य
"DO var don folder aahet, Documents ani Downloads; mag to kutla open karu?"
DO वर दोन folder आहेत, Documents आणि Downloads; मग तो कुठला open करू?
Classroom line
Two folders start with DO, Documents and Downloads; so which should it open?
Classroom line
Type DOW and it understands.
Class मधलं वाक्य
"Aapan DOW lihila tar to samjun gheil."
आपण DOW लिहिलं तर तो समजून घेईल.
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 कधीच दिसत नाही.
कसं:
-
File web root मध्ये move किंवा copy करा:
sudo mv ~/index.php /usr/share/nginx/html/ -
WordPress स्वतः
/usr/share/nginx/html/wordpressमध्ये असतं, आणि nginx चाrootतिथे point करतो. - नक्की बनवलेल्या file साठी
404 Not Foundआला तर बहुतेक ती चुकीच्या folder मध्ये असते.ls -l /usr/share/nginx/htmlने तपासा.
Classroom line
The page shows only if it's exactly inside that folder.
Class मधलं वाक्य
"Page barobar tyachya aat asel tarch disto."
Page बरोबर त्याच्या आत असेल तरच दिसतो.
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 आहेत.
कसं:
/wp-admin/मध्ये login करा आणि Appearance > Themes > Add New वर जा.- Search किंवा browse करा, Install click करा, मग Activate.
- Site उघडून compare करा. बऱ्याच themes Appearance > Customize किंवा site editor मध्ये customise केल्यावरच त्यांच्या demo सारख्या दिसतात.
- काही themes चं free version असतं आणि जास्त features साठी paid upgrade; practice साठी free version पुरेसं आहे.
Classroom line
Theme makers say they need to earn money too.
Class मधलं वाक्य
"Te mhananar, aamhala paise kamvayla pahijet."
ते म्हणणार, आम्हाला पैसे कमवायला पाहिजेत.
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 चा केल्यावर गेला.

Whiteboard: Connection Information form: WordPress ला स्वतःच्या folder मध्ये लिहिता येत नाही, म्हणून तो FTP details मागतो.
Classroom line
We must let the website transfer files onto our server.
Class मधलं वाक्य
Website ला आपल्या server वर files transfer करायला permission द्यायची आहे.
Classroom line – हिंदी
"Website ko apne server pe files transfer karne ke liye permission dena hai."
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 होतं.
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 म्हणून शिका.
कसं:
-
FTP server install करून start करा:
sudo yum install vsftpd -y sudo service vsftpd start -
/etc/vsftpd/vsftpd.confमध्येlocal_enable=YESआणिwrite_enable=YESset आहेत हे तपासा; काहीही बदललं तरsudo service vsftpd restartचालवा. -
Strong password सह FTP user बनवा, आणि त्याला
nginxgroup मध्ये टाका:sudo useradd ftpuser sudo passwd ftpuser sudo usermod -aG nginx ftpuser -
त्या 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 -
Connection Information form मध्ये Hostname
localhost(FTP server त्याच EC2 machine वर चालतो), FTP usernameftpuserआणि त्याचा password, Connection Type FTP टाका. Theme install होते; Activate click करा. - 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.
Class मधलं वाक्य
FTP वापरून आपण file transfer करू शकतो.
Classroom line – हिंदी
"FTP use karke hum file transfer kar sakte hain."
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 गेलेला असतो.

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 मधून जातो, आणि सगळ्यात छोटी जिंकते:
- nginx
client_max_body_size, default 1 MB. मोठ्या upload ला413 Request Entity Too Largeमिळतं, आणि PHP ला तो दिसतच नाही. - PHP
post_max_size, default 8M, पूर्ण request साठी. मोठा upload रिकामा पोचतो. - PHP
upload_max_filesize, default 2M, एका file साठी. WordPress "exceeds the maximum upload size" message दाखवतो.
कसं:
-
/etc/php.iniमध्ये दोन्ही lines set करा, मग php-fpm restart करा:upload_max_filesize = 64M post_max_size = 64M sudo service php-fpm restart -
nginx server block मध्ये
client_max_body_size 64M;टाका, मग:sudo nginx -t sudo service nginx reload -
Media > Add New reload करा: आता "Maximum upload file size: 64 MB." दिसतं. Test server वर nginx च्या default ला 1.5 MB ची file 413 ने fail झाली, आणि तिन्ही बदलांनंतर 9 MB ची file upload झाली.
- स्वतःचे videos आणि images upload करा, किंवा ज्यांचा licence reuse ला परवानगी देतो असे, कुठल्याही sites वरून download केलेल्या files नाही.
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 मधून कमाई:
- Site त्याच्या स्वतःच्या domain वर ठेवा, मागे Elastic IP सह.
- स्वतःचा, उपयोगी content लिहा. Google AdSense approved sites वर ads दाखवतं आणि त्यांचे पैसे देतं; approve होण्यासाठी site त्यांच्या policies पाळणारी हवी.
- 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.
Class मधलं वाक्य
"Ek proper website tumhi tayar karu shakta, fakt tyachyat Google ads taka."
एक proper website तुम्ही तयार करू शकता, फक्त त्याच्यात Google ads टाका.
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.
Class मधलं वाक्य
"SEO kela ki Google search madhe yeil."
SEO केला की Google search मध्ये येईल.
Classroom line
Do SEO and it shows up in Google search.
Portfolio बनवणं:
- वारंवार वेगळी practice site बनवा: shop, hospital, restaurant, school. Themes बदला आणि प्रत्येकात sample content भरा.
- त्यांचे screenshots share करा, उदा. WhatsApp status किंवा Instagram वर. ते बघणारे लोक त्यांची site बनवायला सांगतात.
- स्वतःच्या किंवा free licence असलेल्या images वापरा, आणि sample shops demo म्हणून दाखवा.
Classroom line
Make a WordPress site every day and put it on your WhatsApp status.
Class मधलं वाक्य
"Roj ek WordPress website banvaycha, WhatsApp status la thevaycha."
रोज एक WordPress website बनवायची, WhatsApp status ला ठेवायची.
Classroom line
Make a WordPress site every day and put it on your WhatsApp status.
16. काही चुकलं तर
का: बहुतेक WordPress प्रॉब्लेम परत परत येतात. योग्य क्रमातली छोटी checklist अंदाज लावण्यापेक्षा लवकर ते सोडवते.
- Site उघडतच नाही: services start करा:
sudo service nginx start,sudo service mariadb start,sudo service php-fpm start. - Styling नाही, links मध्ये जुना IP: address बदलला. Elastic IP वापरा, किंवा section 6 मधला safe address change.
- तुमचा page दिसत नाही: तो
/usr/share/nginx/htmlच्या आत नाही.ls -lने तपासा. - Installer परत येतो, किंवा "Error establishing a database connection":
wp-config.phpनाही, किंवा त्यातलं database नाव, user किंवा password जुळत नाही. ERROR 1049 Unknown database: database नावात typo.SHOW DATABASES;शी compare करा.- Admin page सापडत नाही: तो
http://YOUR-ADDRESS/wp-admin/आहे. - Theme बदलल्यावर post links किंवा page 404 देतात:
try_filesची ओळ टाका आणि nginx reload करा. - Theme install करताना FTP मागतो:
chownने folderapacheला द्या. - "Cannot generate responsive image sizes":
php-gdinstall करा आणि php-fpm restart करा. - "Exceeds the maximum upload size" किंवा 413: PHP limits आणि nginx चा
client_max_body_sizeवाढवा.
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 वर
- WordPress पूर्ण addresses save करतो:
wp_optionsमध्येsiteurlआणिhome, आणिwp_postsमध्ये पूर्ण URLs. नवीन EC2 IP मुळे site styling शिवाय राहते आणि wp-admin पर्यंत पोहोचता येत नाही. - Site live होण्याआधी Elastic IP किंवा domain ने ते टाळा.
- Backup:
sudo mysqldump -u root -p wordpressdb > wp.sql; file साधं SQL असते,DROP TABLE,CREATE TABLEआणिINSERT INTOसह, पणCREATE DATABASEशिवाय. 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 करतो.- Restore:
DROP DATABASE,CREATE DATABASE, मगsudo mysql -u root -p wordpressdb < wp.sql.ERROR 1049म्हणजे database चं नाव चुकलंय. - Address safe बदला: backup,
siteurlआणिhomeupdate, मगwp search-replace 'http://OLD' 'http://NEW' --skip-columns=guid, आधी--dry-runसह. - Lengths वेगळ्या असतील तर साधा text replace serialized settings बिघडवू शकतो.
- Tab नावं पूर्ण करतो;
historyतुमच्या commands दाखवतो; web files/usr/share/nginx/htmlच्या आत हव्यात. - Themes: Appearance > Themes > Add New. "Connection Information" म्हणजे
apachefolder मध्ये लिहू शकत नाही:chown -R apache:apache.FS_METHODdirect फक्त form टाळतो. - vsftpd एक option:
useradd ftpuser,passwd,usermod -aG nginx, Hostnamelocalhost. FTP encrypted नसतो; SFTP आणि strong password वापरा. - Theme बदलल्यावरच्या 404 ला
try_filesलागतं; missing image sizes लाphp-gdआणि php-fpm restart. - Uploads:
/etc/php.iniमध्येupload_max_filesizeआणिpost_max_size, nginx मध्येclient_max_body_size, मग restart आणि reload. - स्वतःचा 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 म्हणून करून बघतो, आणि मगच खरा करतो.
- 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 कडेच पाठवत राहतो.
- Command:
- Database चा backup घ्या
- Command:
sudo mysqldump -u root -p wordpressdb > wp.sql - काय दिसेल: काहीच नाही.
- Check करा:
ls -l wp.sqlमध्ये 0 पेक्षा जास्त size, आणिhead -3 wp.sql-- MariaDB dumpcomment ने सुरू होतं. - का: पुढची प्रत्येक step database बदलते.
wp.sqlअसली की कोणतीही चूक undo करता येते.
- Command:
- Backup laptop वर copy करा
- Command:
scp -i mykey.pem ec2-user@PUBLIC_IP:/home/ec2-user/wp.sql . - काय दिसेल:
100%ने संपणारी progress ओळ. - Check करा:
wp.sqllaptop च्या folder मध्ये आहे. - का: हे laptop वर चालवा. फक्त server वर असलेला backup server सोबतच हरवतो.
- Command:
- 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 --infoWP-CLI आणि PHP versions print करतो. - का: WP-CLI addresses सगळीकडे बदलतो, serialized data च्या आतसुद्धा, जो साध्या SQL
UPDATEने बिघडेल.
- Command:
- 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 ची
siteurlquery अजूनही जुना address दाखवते. - का:
--dry-runकाय बदलेल ते न बदलता दाखवतो.--skip-columns=guidpost IDs ला हात लावत नाही, जसं WordPress सांगतं.
- Command:
- खरंच चालवा
- 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 नंतरच हा बदल सुरक्षित.
- Command:
- Restore कसं करायचं ते जाणून घ्या
- Command:
sudo mysql -u root -p wordpressdb < wp.sql - काय दिसेल: काहीच नाही.
- Check करा: Step 1 ची query परत जुना address दाखवते. नवीनवर परत जायला step 6 परत करा.
- का: कधीच restore न केलेला backup म्हणजे अंदाज. एकदा restore केलं की तो चालतो हे सिद्ध होतं.
- Command:
- 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 बघा
- तुमच्या WordPress server वर
SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl','home');चालवा आणि address लिहून ठेवा. - Instance stop आणि start करा, नवीन IP उघडा, आणि काय बिघडलंय ते लिहा.
Task 2: backup आणि restore
mysqldumpने backup घ्या,lessने आत बघा, आणिscpने download करा.wordpressdbdrop आणि create करा, backup restore करा, आणिSHOW TABLES;तपासा.- एकदा चुकीच्या database नावाने restore चालवा आणि error वाचा.
Task 3: address बदला
- WP-CLI install करा,
siteurlआणिhomeupdate करा, आणि--dry-runसहwp search-replaceचालवा. तो किती replacements सांगतो? - खरंच चालवा आणि नवीन IP वर styling, posts आणि wp-admin चालतात का ते तपासा.
Task 4: themes आणि uploads
wp-content/themesचा ownerrootकरा, theme install करून बघा, आणि form बघा. मगchown -R apache:apacheने दुरुस्त करा.php-gdinstall करा, php-fpm restart करा, आणि स्वतःची image upload करा.- Upload limit 64M करा आणि Media > Add New तपासा.
Recap
थोडक्यात
- WordPress त्याचा address आणि पूर्ण URLs database मध्ये save करतो, म्हणून नवीन EC2 IP styling, links आणि login बिघडवतो.
- Live होण्याआधी Elastic IP किंवा domain घेतला की problem टळतो.
mysqldump ... > wp.sqldatabase चा साध्या SQL मध्ये backup घेतो;scpतो server बाहेर copy करतो;mysql ... < wp.sqlतो रिकाम्या database मध्ये restore करतो.- Address backup,
siteurlआणिhome, आणिwp search-replaceने बदला, कारण साधा replace serialized settings बिघडवू शकतो. - "Connection Information" म्हणजे WordPress त्याच्या folder मध्ये लिहू शकत नाही;
apacheला owner करा. FTP चालतो पण encrypted नसतो. try_files404 सोडवतो, php-fpm restart सहphp-gdimage sizes सोडवतो, आणि तीन settings upload limit ठरवतात.- Domain, चांगला content, AdSense आणि SEO ने site कमावते, आणि practice sites portfolio बनवतात.
सराव Tasks
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).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- 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).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- Check answer दाबा. Query table च्या practice copy वर चालते.
सोपं Ubuntu वर package install करा
का: Ubuntu apt वापरतं. Package नावं वेगळी: Ubuntu वर Apache म्हणजे apache2.
काय करायचं: Ubuntu वर apache2 package confirm न विचारता install करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Server वरून website test करा
का: DNS तयार होण्याआधीही web server उत्तर देतो का ते curl दाखवतो.
काय करायचं: http://localhost ला request पाठवा व फक्त response headers दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- 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).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- 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).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- Check answer दाबा. Query table च्या practice copy वर चालते.
मध्यम एकूण sales
का: RDS setup नंतर database query करणं रोजचं काम.
काय करायचं: सगळ्या order amounts ची बेरीज.
Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- 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).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- 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 करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Customer नुसार sales
का: RDS setup नंतर database query करणं रोजचं काम.
काय करायचं: Customer नुसार total, फक्त 1000 पेक्षा जास्त.
Tables: customers(id, name, city) व orders(id, customer_id, amount, odate).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- 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).
- Task कोणत्या table बद्दल आहे ते पाहा (box वरची table list).
- SQL statement step by step लिहा: काय, कुठून, कोणते rows.
- Statement ; ने संपवा.
- Check answer दाबा. Query table च्या practice copy वर चालते.
अवघड Database चा file मध्ये backup घ्या
का: mysqldump पूर्ण database SQL म्हणून लिहितो. मोठ्या बदलांआधी save करा.
काय करायचं: mumbaidabba_wp database root user ने (password विचारून) mumbaidabba_wp.sql मध्ये dump करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
झटपट उजळणी cards
हा lesson दोन मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR त्याचा lesson उघडतो.










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