Ubuntu (EC2) वर LAMP आणि LEMP Stack कसा Install करायचा
मागच्या chapter मध्ये आपण Amazon Linux वर LAMP बनवला. आता तेच काम Ubuntu वर करू, जिथे package names, PHP service चं नाव आणि PHP चं set-up वेगळं आहे. आपण Ubuntu साठी lamp.sh लिहू, Apache .php files download करतो ते fix करू, तीच website Apache वरून Nginx वर (LEMP) हलवू, आणि Nginx ला PHP शी जोडू. वाटेत error messages वाचायला शिकू, apt lock error हाताळू, आणि MySQL database shell मध्ये पहिली पावलं टाकू.
या class मध्ये काय शिकणार
- Dynamic website ला database का लागतो, आणि LAMP साठी Ubuntu Amazon Linux पेक्षा वेगळं कसं
- Ubuntu चा
lamp.sh:apt-get,apache2 mysql-server php php-fpm, version नावात असलेलीphp8.x-fpmservice, Ubuntu चं defaultindex.htmlकाढणं - Apache
.phpdownload करतो ते fix:a2enmod proxy_fcgi setenvifआणिa2enconf php8.x-fpm /var/www/htmlतसंच ठेवून Apache वरून Nginx वर जाणं; Disable cache ने browser cache बंद करणं- Nginx चा PHP
locationblock, बरोबर socket version,nginx -tआणि reload - चार नेहमीचे errors वाचणं, आणि "status च्या खालच्या lines" ची सवय
- apt lock error, आणि root च्या file वर
sudo chmod - MySQL मधली पहिली पावलं:
sudo mysql,ALTER USER,mysql -u root -p, न दिसणारा password, आणि खऱ्या setups मध्ये database वेगळ्या server वर का
1. का: dynamic sites ना database लागतो
Classroom line
Yesterday we did LAMP/LEMP on Amazon Linux; today we do the same on Ubuntu.
Class मधलं वाक्य
"Kal aapan LAMP LEMP Amazon Linux madhe baghitla, aaj tech Ubuntu madhe karun baghaycha ahe."
काल आपण LAMP LEMP Amazon Linux मध्ये बघितलं, आज तेच Ubuntu मध्ये करून बघायचं आहे.
Classroom line
Yesterday we did LAMP/LEMP on Amazon Linux; today we do the same on Ubuntu.
Static site फक्त files दाखवते. Dynamic site तुमच्याकडून data घेते आणि तो ठेवते:
- Sign-up form तुमचं नाव, email आणि password save करतो.
- Login form ते save केलेल्याशी जुळवून बघतो.
- Upload form तुमच्या photo किंवा document ची माहिती ठेवतो.
हे सगळं MySQL सारख्या database मध्ये save होतं. PHP code database शी SQL नावाच्या language मध्ये बोलतो, जी आपण पुढच्या chapters मध्ये शिकू. या chapter मध्ये आपण पूर्ण stack install करतो, म्हणजे त्यासाठी तयार राहील.
Classroom line
Until we learn SQL, PHP and MySQL won't talk.
Class मधलं वाक्य
"Jo paryant aapan SQL shikanar nahi to paryant PHP ani MySQL madhla connection honar nahi."
जोपर्यंत आपण SQL शिकणार नाही तोपर्यंत PHP आणि MySQL मधलं connection होणार नाही.
Classroom line
Until we learn SQL, PHP and MySQL won't talk.
2. Ubuntu वर काय बदलतं
Classroom line
Now we do the same work in Ubuntu.
Class मधलं वाक्य
आता हेच काम आपल्याला Ubuntu मध्ये करायचं आहे.
Classroom line – हिंदी
"Yahi kaam abhi hume Ubuntu ke andar karna hai."
Stack तोच: Linux, web server, database, PHP. त्याच्या आजूबाजूची नावं बदलतात:
- Package manager:
yumऐवजीapt-get. - Apache म्हणजे
apache2package (httpdनाही), आणि त्याची service पणapache2. - Database: Ubuntu
mysql-serverदेतं (स्वतः MySQL). त्याची servicemysql. - PHP:
phpआणिphp-fpminstall करा. Ubuntu त्याचं स्वतःचं default PHP version install करतं; तुम्ही version type करत नाही. - php-fpm service च्या नावात version असतं, उदा.
php8.3-fpm. तुमचं versionphp -vने (तेPHP 8.3.x ...दाखवतं) किंवाls /run/php/ने (तेphp8.3-fpm.sockदाखवतं) शोधा. - Ubuntu चा Apache
/var/www/htmlमध्ये defaultindex.htmlठेवतो. - तुम्ही चालू करेपर्यंत Apache PHP php-fpm कडे देत नाही (section 5).
Figure 1. Amazon Linux आणि Ubuntu वर तोच LAMP stack: वेगळा package manager, package names, PHP service चं नाव आणि PHP set-up.
3. कसं: Ubuntu ची lamp.sh script
तुमच्या IP वरून SSH (22) आणि HTTP (80) allow असलेला Ubuntu EC2 server launch करा, आणि ubuntu म्हणून connect करा.
Step 1. Home folder मध्ये नवीन file उघडा. इथे sudo वापरू नका; script तुमची असली पाहिजे:
cd ~
nano lamp.sh
Step 2. Script type करा:
#!/bin/bash
sudo apt-get update
sudo apt-get install apache2 mysql-server php php-fpm -y
PHPV=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
sudo service apache2 start
sudo service mysql start
sudo service php$PHPV-fpm start
cd /var/www/html
sudo rm -f index.html
sudo touch index.html index.php
echo "html page" | sudo tee index.html
echo "<?php phpinfo(); ?>" | sudo tee index.php
प्रत्येक भाग काय करतो:
sudo apt-get updateआधी Ubuntu ची package list refresh करतो.- एक line Apache, MySQL, PHP आणि php-fpm install करते,
-yसह म्हणजे script कधी प्रश्नावर थांबत नाही. PHPV=...PHP ला त्याचं स्वतःचं version विचारतं (उदा.8.3) आणि variable मध्ये ठेवतं. म्हणून तुमच्या server वरphp$PHPV-fpmचंphp8.3-fpmहोतं, आणि Ubuntu कुठलंही version install करो, script चालते. (तुम्ही स्वतः version type केलं, उदा.php8.5-fpm, आणि तुमच्या Ubuntu मध्ये ते नसेल, तरUnable to locate packageकिंवाUnit php8.5-fpm.service not foundयेतं.)- तीन
service ... startlines Apache, MySQL आणि php-fpm start करतात. sudo rm -f index.htmlUbuntu चं default Apache page काढतो, म्हणजे तुम्हाला तुमचं page दिसेल.teelines दोन्ही test pages root म्हणून लिहितात (मागच्या chapter सारखंच).
अनेक lines ची file लिहिणं. मोठ्या page साठी heredoc वापरा: EOF line पर्यंतचं सगळं file मध्ये जातं.
cat <<'EOF' | sudo tee index.php
<?php
phpinfo();
?>
EOF
Step 3. Save करा, executable करा आणि चालवा:
chmod +x lamp.sh
./lamp.sh
4. चालवताना भेटू शकणारे दोन errors
4.1 chmod म्हणतो "Operation not permitted"
File तुम्ही sudo nano lamp.sh ने बनवली असेल, तर ती root ची असते. मग ubuntu म्हणून chmod +x lamp.sh (किंवा chmod u+x lamp.sh) Operation not permitted ने fail होतं: permissions फक्त owner किंवा root बदलू शकतो.
- Owner बघा:
ls -l lamp.shroot rootदाखवतो. - sudo वापरा:
sudo chmod +x lamp.sh. - पुढच्या वेळी चांगलं: scripts
~मध्येsudoशिवाय बनवा.
4.2 apt म्हणतो "Could not get lock"
Symptom. E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (apt-get).
कारण. दुसरं install अजून चालू आहे. नवीन Ubuntu server वर boot नंतरच्या पहिल्या काही मिनिटांत automatic updates चालू असतात, किंवा तुमचं आधीचं apt-get अजून संपलेलं नसतं.
Classroom line
Lock error means the earlier install is still running.
Class मधलं वाक्य
"Lock file mhanje aadhicha installation ajun chalu ahe."
Lock file म्हणजे आधीचं installation अजून चालू आहे.
Classroom line
Lock error means the earlier install is still running.
Fix:
- काही मिनिटं थांबा आणि command परत चालवा.
- काय चालू आहे ते बघा:
ps aux | grep -i apt. - खूप वेळ थांबूनही अडकलं असेल, तर server reboot करा:
sudo reboot. - apt चालू असताना lock files कधीच delete करू नका. एकाच वेळी दोन installs लिहू लागले तर package database बिघडू शकतो.
5. Ubuntu Apache index.php download करतो: PHP hand-off चालू करा
Step 1. http://PUBLIC_IP/index.html उघडा. html page दिसतं.
Step 2. http://PUBLIC_IP/index.php उघडा. Ubuntu वर browser PHP page दाखवण्याऐवजी file download करतो.
का? php-fpm install आणि चालू आहे, पण Ubuntu च्या Apache कडे .php files त्याच्याकडे पाठवणारा rule अजून नाही. म्हणून Apache file जशीच्या तशी पाठवतो.
Step 3. Hand-off चालू करा (php -v मधलं तुमचं version वापरा):
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
sudo service apache2 restart
a2enmodApache modules चालू करतो:proxy_fcgiमुळे Apache php-fpm शी बोलू शकतो,setenvifत्याच्या config ला लागतो.a2enconf.phpphp-fpm socket कडे पाठवणारी config filephp8.3-fpm.confचालू करतो.- Restart दोन्ही load करतो.
Step 4. http://PUBLIC_IP/index.php refresh करा. PHP information page दिसतं, Server API: FPM/FastCGI आणि Build Provider: Ubuntu सह.

Whiteboard: Ubuntu वर PHP: Build Provider Ubuntu आणि Server API FPM/FastCGI, म्हणजे Apache आता PHP php-fpm कडे देतोय.
Figure 2. a2enmod proxy_fcgi setenvif आणि a2enconf php8.x-fpm चालवून apache2 restart करेपर्यंत Ubuntu Apache .php download करतो.
Final lamp.sh. हा fix script मध्ये start lines नंतर जोडा, म्हणजे नवीन server पहिल्याच वेळी चालेल:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php$PHPV-fpm
sudo service apache2 restart
Amazon Linux वर
या a2en... commands फक्त Ubuntu वर असतात. Amazon Linux वर PHP config आधीच /etc/httpd/conf.d/ मध्ये असतो, म्हणून फक्त php-fpm आणि मग httpd restart करायचं (मागचा chapter).
6. Error वाचा: चार messages, आणि खालच्या lines
Errors भीतीदायक दिसतात, पण प्रत्येक error काय बिघडलं ते सांगतो. काहीही करून बघण्याआधी message वाचा.
command not found: command मध्ये typo, किंवा program install नाही. उदा.ngnix -t. Spelling बघा, किंवा package install करा.Operation not permitted(किंवाPermission denied):sudoलागतो, किंवा तुम्ही file चे owner नाही. उदा. root च्या file वरchmod +x lamp.sh(section 4.1).Unit ... not found: ती service install नाही, किंवा तिचं नाव चुकलं. उदा. Ubuntu वरsudo service php-fpm startकेलं कीUnit php-fpm.service not foundयेतं, कारण नावphp8.3-fpmआहे.Job for ... failed: service install आहे पण start होताना crash झाली. कारण तिच्या status मध्ये असतं.
Figure 3. चार नेहमीचे messages: command not found, operation not permitted, unit not found, job failed; प्रत्येकाचा बहुतेक अर्थ आणि काय करायचं.
Status ची सवय. Service fail झाली की त्याच service चा status बघा:
sudo service apache2 status
Classroom line
Check the status of whichever software stopped.
Class मधलं वाक्य
"Jo bi software band padlela ahe, tyachach status baghaycha."
जो बी software बंद पडलेला आहे, त्याचाच status बघायचा.
Classroom line
Check the status of whichever software stopped.
- वर काय झालं ते दिसतं:
Active: failed. - खालच्या lines का ते सांगतात. दोन नेहमीची:
Address already in use ... could not bind to address [::]:80: port 80 आधीच दुसऱ्या web server कडे आहे. तो stop करा.unknown directiveकिंवाInvalid command: config file मध्ये typo. Line number message मध्ये असतो.
- कारण fix करा, मग service परत start करा.
Classroom line
Someone else is using the port.
Class मधलं वाक्य
"Port number konitari vaparta."
Port number कोणीतरी वापरतं.
Classroom line
Someone else is using the port.
Figure 4. Fail झालेल्या service चा status: वर failed दिसतं, खालच्या lines खरं कारण देतात, इथे port 80 आधीच वापरात.
7. LEMP: तीच website Nginx वर हलवा
का. बऱ्याच companies Apache ऐवजी Nginx वापरतात. Server Nginx वर हलवून त्याच website files ठेवता येतात.
Step 1. Port 80 मोकळा करा. तो एकाच web server कडे राहू शकतो:
sudo service apache2 stop
sudo systemctl disable apache2
(disable मुळे पुढच्या boot ला Apache परत port घेत नाही.)
Step 2. Nginx install करून start करा:
sudo apt-get install nginx -y
sudo service nginx start
Step 3. Web root तपासा. /etc/nginx/sites-available/default उघडून root line शोधा. Ubuntu वर ती आधीच root /var/www/html; असते, Apache वापरायचा तोच folder. (तुमची दुसरीकडे point करत असेल, तर /var/www/html करा.)
Step 4. Test करून reload करा:
sudo nginx -t
sudo service nginx reload
Step 5. http://PUBLIC_IP/index.html उघडा. तेच html page, आता Nginx देतोय.
Figure 5. Animation: port 80 मोकळा करायला Apache stop करा, त्याच /var/www/html सह Nginx start करा, test करून reload: त्याच files, नवीन server.
नवीन servers साठी lemp.sh. Script copy करून web server बदला:
cp lamp.sh lemp.sh
nano lemp.sh
Install line sudo apt-get install nginx mysql-server php-fpm -y करा, start line मध्ये apache2 चं nginx करा, आणि तीन a2en.../apache2 restart lines काढून टाका (त्या फक्त Apache च्या). मग section 9 मधला Nginx PHP block जोडा.
अजून जुनं page दिसतंय? Browser cache
Server बदलल्यावर किंवा page edit केल्यावर browser आधी save केलेली जुनी copy दाखवत राहू शकतो. काम करताना cache बंद ठेवा:
- Page वर right-click, Inspect.
- Network tab उघडा.
- Disable cache ला tick करा.
- Developer tools उघडेच ठेवून refresh करा.
Classroom line
Right-click, Inspect, Network, tick Disable cache.
Class मधलं वाक्य
"Page la right click kara, inspect madhe ja, network madhe disable cache la tick kara."
Page ला right click करा, inspect मध्ये जा, network मध्ये disable cache ला tick करा.
Classroom line
Right-click, Inspect, Network, tick Disable cache.

Whiteboard: Developer tools, Network tab: Disable cache ला tick करा, tools उघडेच ठेवा, आणि refresh करा.
8. Nginx पण .php download का करतो
Nginx वर http://PUBLIC_IP/index.php उघडा: browser ते परत download करतो. Ubuntu च्या Apache सारखाच Nginx ला पण .php files php-fpm कडे पाठवणारा rule लागतो.
Classroom line
If the URL ends in .php, hand that page to php-fpm.
Class मधलं वाक्य
जर URL .php ने संपत असेल, तर ते page उचला आणि php-fpm ला द्या.
Classroom line – हिंदी
"Agar URL .php pe khatam hota hai, to us page ko uthao aur php-fpm ko de do."
9. कसं: Nginx चा PHP location block
Step 1. तुमचा php-fpm socket शोधा:
ls /run/php/
php8.3-fpm.sock सारखं काहीतरी दिसतं.
Step 2. Site file edit करा (खरी file sites-available मध्ये आहे; sites-enabled/default फक्त तिचा link आहे):
sudo nano /etc/nginx/sites-available/default
Step 3. index line मध्ये index.php जोडा:
index index.php index.html index.htm index.nginx-debian.html;
Step 4. खाली # pass PHP scripts to FastCGI server खालचा commented block शोधा. location line, include line, php-fpm ची fastcgi_pass line आणि शेवटचा } यांच्या पुढचा # काढा. 127.0.0.1:9000 ची line commented राहू द्या. fastcgi_pass मध्ये तुमचा socket लिहा:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ \.php$.phpने संपणाऱ्या प्रत्येक URL ला match करतो. (~म्हणजे regular expression,\.म्हणजे खरा dot,$म्हणजे शेवट.)include snippets/fastcgi-php.conf;Ubuntu च्या नेहमीच्या PHP settings जोडतो.fastcgi_passम्हणजे php-fpm जिथे listen करतो ती जागा. इथे चुकीचं version (उदा. तुमच्याकडे 8.3 असतानाphp8.5-fpm.sock) असेल तर 502 Bad Gateway येतो.
Step 5. Config test करा, मग reload करा:
sudo nginx -t
sudo service nginx reload
nginx -t ने syntax is ok आणि test is successful म्हणायला हवं. Error दाखवला तर तो file आणि line सांगतो; reload करण्याआधी ते fix करा. Reload केल्यावर Nginx नवीन config वाचत असताना site चालूच राहते.
Step 6. http://PUBLIC_IP/index.php refresh करा (Disable cache tick करून). PHP information page दिसतं, आता Nginx मधून: तुमचा LEMP stack चालतोय.
Figure 6. PHP साठी Nginx server block: तोच web root, index line मध्ये index.php, तुमच्या PHP version च्या socket सह location ~ \.php$, मग nginx -t आणि reload.
10. MySQL मधली पहिली पावलं
SQL म्हणजे काय? SQL (Structured Query Language) ही relational databases सोबत काम करायची language: tables बनवणं, rows save करणं, त्या परत वाचणं. MySQL आणि MariaDB दोघंही ती वापरतात. नेहमीचे SQL databases:
- Open source: MySQL, MariaDB, PostgreSQL.
- Commercial: Oracle Database (banks सारख्या मोठ्या enterprises मध्ये जास्त), Microsoft SQL Server, IBM Db2.
- AWS वर managed: Amazon Aurora (MySQL आणि PostgreSQL compatible) आणि Amazon RDS.
MySQL हा सगळ्यात जास्त वापरल्या जाणाऱ्यांपैकी एक.
Step 1. Database shell उघडा. Ubuntu वर सुरुवातीला MySQL चा root user Linux च्या root account मधून login होतो, म्हणून sudo वापरा:
sudo mysql
Prompt mysql> होतो. तुम्ही आता Linux मध्ये नाही, database च्या आत आहात.
Classroom line
Linux commands like ls, cd don't work in the DB shell.
Class मधलं वाक्य
"Ithe Linux chya command chalat nahi, ls, cd kahi chalnar nahi."
इथे Linux च्या command चालत नाही, ls, cd काही चालणार नाही.
Classroom line
Linux commands like ls, cd don't work in the DB shell.
Step 2. Database admin ला password द्या:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YOUR_STRONG_PASSWORD';
'root'म्हणजे database चा administrator (MySQL user, Linux चा root नाही).'localhost'म्हणजे हा login फक्त त्याच server वरून allow.IDENTIFIED WITH caching_sha2_password BYroot ला या password ने नेहमीच्या password login वर नेतो.- दुसरीकडे कुठेही न वापरलेला लांब, unique password वापरा, आणि quotes आणि शेवटचा
;ठेवा.
Step 3. Shell मधून बाहेर पडा:
exit;
Step 4. आता password ने परत login करा:
mysql -u root -p
-u root म्हणजे user, आणि -p मुळे MySQL password विचारतो. Password कधीच command line वर -p नंतर type करू नका: तो तुमच्या shell history मध्ये save होईल.
Step 5. Enter password: आल्यावर password type करा. Type करताना काहीच दिसत नाही, stars पण नाही. ते normal आहे; अडकलं नाहीये. Enter दाबा, आणि तुम्ही परत mysql> वर.
Classroom line
The cursor doesn't move while typing the password.
Class मधलं वाक्य
"Ithe password enter kartana cursor halat nahi bar ka."
इथे password enter करताना cursor हलत नाही बर का.
Classroom line
The cursor doesn't move while typing the password.
Figure 7. Animation: sudo mysql database shell उघडतो, ALTER USER root password सेट करतो, exit; ने बाहेर, mysql -u root -p ने परत login, आणि type करताना password दिसत नाही.
Ravindra Bagale's Tip
Amazon Linux वर MariaDB सोबत याच steps अशा: sudo mariadb, मग ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOUR_STRONG_PASSWORD';, exit; आणि mysql -u root -p.
11. Web server आणि database वेगळ्या servers वर
Practice मध्ये आपण सगळं एकाच server वर चालवतो. खऱ्या websites बहुतेक database त्याच्या स्वतःच्या server वर (किंवा Amazon RDS वर) ठेवतात, जो फक्त web server कडून connections accept करतो.
का? Attacker web server मध्ये घुसला तरी data त्याच machine वर नसतो. Database server ला स्वतःचा size, backups आणि security rules पण मिळतात. हे आपण पुढे Amazon RDS सोबत बनवू.
Figure 8. Practice: web server, PHP आणि MySQL एकाच server वर. खरे setups: database वेगळ्या server वर, जो फक्त web server ला accept करतो.
12. Clean up: instance stop करा
Practice झाल्यावर EC2 console मध्ये Instance state > Stop instance करा (आधी region तपासा). Stop केलेल्या instance ला running time चा charge लागत नाही; नको असलेले test servers terminate करा.
13. पूर्ण flow एका page वर
- Ubuntu LAMP:
sudo apt-get update, मगsudo apt-get install apache2 mysql-server php php-fpm -y. apache2,mysqlआणिphp8.x-fpmstart करा (versionphp -vकिंवाls /run/php/ने शोधा); Ubuntu चं defaultindex.htmlकाढा.- Apache वर
.phpdownload:a2enmod proxy_fcgi setenvif,a2enconf php8.x-fpm, apache2 restart. - Root ची script:
sudo chmod +x. apt lock: थांबा, lock files कधीच delete करू नका. - Message वाचा; fail झालेल्या service साठी status च्या खालच्या lines वाचा.
- LEMP: apache2 stop आणि disable, nginx install आणि start, root
/var/www/htmlतसाच. - Nginx PHP: index line मध्ये
index.php, तुमच्या socket सहlocation ~ \.php$,nginx -t, reload. - जुनं page? DevTools, Network, Disable cache.
- MySQL:
sudo mysql,ALTER USER ... ;,exit;,mysql -u root -p(password दिसत नाही). - खरे setups database वेगळ्या server वर ठेवतात. Practice नंतर instances stop करा.
14. Try at home
Try at home
Task 1: Ubuntu वर LAMP
- SSH आणि HTTP allow असलेला Ubuntu server launch करा.
- Section 3 मधली
lamp.shhome folder मध्ये लिहा,chmod +xकरा, आणि चालवा. index.phpउघडा. Download होत असेल तरa2enmod/a2enconflines जोडा आणि apache2 restart करा.- मुद्दाम
sudo service php-fpm startचालवा.Unit ... not foundmessage वाचा आणि बरोबर service start करा.
Task 2: LEMP वर जा
- apache2 stop आणि disable करा, मग Nginx install करून start करा.
- तुमच्या socket version सह PHP
locationblock जोडा,sudo nginx -tचालवा, आणि reload करा. - Disable cache ला tick करून Nginx मधून
index.phpउघडा. - Nginx चालू असताना apache2 परत start करा, आणि status च्या खालच्या lines वाचा.
Task 3: MySQL
sudo mysql,ALTER USERने strong root password सेट करा, आणिexit;.mysql -u root -pने login करा.- झाल्यावर instance stop करा.
Recap
थोडक्यात
- Dynamic sites sign-ups, logins आणि uploads database मध्ये save करतात; PHP त्याच्याशी SQL मध्ये बोलतो.
- Ubuntu वर:
apt-get,apache2,mysql-server,php php-fpm; PHP service च्या नावात version (php8.x-fpm),php -vकिंवाls /run/php/ने शोधा. a2enmod proxy_fcgi setenvif+a2enconf php8.x-fpm+ restart करेपर्यंत Ubuntu चा Apache.phpdownload करतो.- Errors: command not found, operation not permitted, unit not found, job failed. Fail झालेल्या service साठी status च्या खालच्या lines कारण देतात.
- Root च्या file ला
sudo chmodलागतो; apt lock म्हणजे दुसरं install चालू आहे, म्हणून थांबा. - Nginx वर जा: apache2 stop, nginx install, तोच
/var/www/html; तुमच्या socket सहlocation ~ \.php$block जोडा,nginx -t, reload. - Browser जुनं page दाखवत असेल तर DevTools मध्ये Disable cache.
- MySQL:
sudo mysql,ALTER USER 'root'@'localhost' ...,mysql -u root -p; password दिसत नाही. खरे setups database वेगळ्या server वर ठेवतात.
सराव Tasks
Konkan Cashews हा रत्नागिरी मधला अन्न निर्यात व्यवसाय आहे. Prakash Sawant त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं 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 दाबा.
सोपं Amazon Linux वर package install करा
का: Amazon Linux 2023 वर dnf हा package manager. -y आपोआप yes देतो.
काय करायचं: Amazon Linux 2023 वर httpd package confirm न विचारता install करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं बदलानंतर service restart करा
का: Config बदल service restart/reload नंतरच लागू होतात.
काय करायचं: nginx service restart करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Service चालू आहे का ते पाहा
का: Site बंद असेल तर आधी web server चालू आहे का ते पाहा.
काय करायचं: httpd service चं status दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं MariaDB मध्ये login करा
का: mysql client ने database server वर SQL चालवता येतं.
काय करायचं: MariaDB client root user म्हणून उघडा व password विचारू द्या.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं मोठ्या 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 वर चालते.
मध्यम Service आत्ता व boot ला सुरू करा
का: enable reboot नंतर सुरू करतो; --now आत्ताच सुरू करतो.
काय करायचं: nginx service enable करा व लगेच सुरू करा, एका command ने.
- हे काम करणारा 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 वर चालते.
अवघड 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 वर चालते.
झटपट उजळणी cards
हा lesson दोन मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR त्याचा lesson उघडतो.









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