ممکن است بسیاری از شما برنامه نویس سایت باشید و یا اینکه به احتمال زیاد یک وب سایت دارین و آن را به صورت مداوم ویرایش و اپدیت می کنید. این در حالیست که حتی بعضی ها هیچ دانش مربوطه ای از تکنولوژی های وب ندارند اما برای وب سایت خودشان می خواهند برنامه ریزی کنند. در طول این مقاله یاد خواهیم گرفت که چه طور یک وب سایت رو با اطلاعات اندک توسعه بدهید و آنرا بر روی یک سرور لینوکسی بالا بیاورید. که این امر به سادگی انجام می شود.
تجهیزات موردنیاز :
اولین چیزی که نیاز دارید سیستم عامل Linux است. (البته شما میتوانید از ویندوز هم استفاده کنید اما مطمئنا همه چیز به سادگی و کاملی ماشین های لینوکسی نخواهد بود در اینجا ما برای این کار از Debian استفاده می کنیم) اگر شما روی ماشین تان سیستم عاملی نصب نکرده اید و یا نمیدانید که چگونه سیستم عامل لینوکس را نصب کنید در اینجا چندین آموزش برای نحوه نصب یک سیستم عامل برایتان قرار میدهیم :
نحوه نصب CentOS 7
نحوه نصب CentOS 8
نحوه نصب Debian 10
Apache, Mysql و PHP هم باید نصب باشند.(اگر دانش سایر SQL های دیگر را دارید میتوانید از آن استفاده کنید اما ما در اینجا در نمونه مثال خود از MySQL استفاده خواهیم کرد)
علاوه بر موارد بالا به فریم ورک مدیریت محتوا نیز نیازمندیم که از دروپال (Drupal) به همراه Kompozer استفاده میشود و یا شما میتوانید از WordPress یا Joomla نیز استفاده کنید.(ما در اینجا از دروپال (Drupal) به عنوان سیستم مدیریت محتوا (Content Management System یا CMS) استفاده میکنیم)
باید اتصال به اینترنت به همراه ip static (ترجیحا) و برقراری ارتباط از طریق یک مودم به عنوان امکانات ویرچوال هاستینگ خود داشته باشید. (در محیط واقعی به پیچیدگی که در اینجا به نظر میرسد نمیباشد)
Apache (آپاچی) چیست؟
آپاچی یک برنامه وب سرور است که در بیشتر سیستم ها نصب و تنظیم شده است. برای چک کردن نصب بودن آپاچی در سیستم تان این دستور را وارد کنید :
خروجی دستور :
خروجی دستور :
از خروجی های بالا مشخص است که آپاچی نصب می باشد، اگر نبود با استفاده از دستورات yum یا apt پکیج های مورد نیاز را نصب کنید. وقتی آپاچی نصب شد به صورت زیر آن را استارت کنید :
نکته : ممکن است روی سرورهایی مانند Viz, RHEL شما به جای ‘apache‘ از ‘httpd‘ استفاده کنید. در هر صورت زمانی که سرور Apache 2 یا http یا httpd استارت شدند شما میتوانید آنها را در مرورگرتان و با وارد کردن لینک زیر بررسی نمایید :
اگر آپاچی نصب بود صفحه پیش فرض آن Load می شود.
MySQL چیست؟
MySQL یک سرور دیتابیس است که در بعضی ورژن ها موجود است. برای چک کردن این که آیا نصب است یا نه و کجا نصب است به صورت زیر عمل کنید :
خروجی سیستم :
از خروجی بالا مشخص است که mysql نصب است و مکان فایل های باینری ان مشخص شد. اگر نصب نبود از دستورات ‘yum‘ و ‘apt‘ استفاده کنید :
در بعضی از توزیع های لینوکسی مانند Viz, RHEL به جای mysql باید “mysqld” تایپ کنید. سپس با اجرا کردن دستور زیر وضعیت mysql را چک کنید :
خروجی سیستم :
در این مثال نشان داده شده است که mysql به مدت 11 دقیقه و 58 ثانیه است که در حال اجراست.
PHP چیست؟
php یک زبان اسکریپت نویسی server-side هست که برای توسعه وب طراحی شده است و عموما به عنوان زبان برنامه نویسی اصلی مورد نظر مورد استفاده قرار میگیرد. شما تنها بعد از نصب php میتوانید اسکریپ های php را deploy کنید. همانطور که در بالا هم گفتیم میتوانید از دستورات ‘yum‘ و ‘apt‘ برای نصب پکیج های لازم استفاده کنید :
برای چک این که آیا php را به درستی بر روی سیستم نصب کرده اید یا نه, فایل “info.php” را در مسیر ‘/var/www/html‘ یا ‘/var/www‘ (که دایرکتوری آپاچی شما میباشد) ایجاد کنید و محتوای زیر را در آن قرار دهید :
حالا از مرورگر یکی از آدرس های زیر را وارد کنید :
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: php info.png نمایش ها: 1 اندازه: 38.2 KB شناسه: 20261](filedata/fetch?id=20261&d=1627474249)
که نشانگر آن است که php به درستی نصب و در حال اجراست. اکنون شما میتوانید وب سایت خود را درون پوشه آپاچی بسازید، ولی بهتره از cms های اماده مثل جوملا، دروپال، وردپرس استفاده کنید. می تونید آخرین ورژن فریم ورک ها را از آدرس های زیر دانلود کنید. به هر حال ما در این پست از Drupal استفاده میکنیم :
1 : دروپال :
2 : جوملا :
3 : وردپرس :
دروپال رو از لینک بالا دانلود کنید که یک فایل tar میباشد و آن را به پوشه آپاچی (‘/var/www/html‘ یا ‘/var/www‘) منتقل کنید. و آن را در دایرکتوری root آپاچی extract کنید. ‘x.xx‘ نشان دهنده ی ورژن آن است.
اگر همه چی خوب پیش رفته باشد بعد از باز کردن مرورگر و وارد کردن یکی از لینک های زیر شما تصویر زیر را مشاهده خواهید کرد :
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 2.png نمایش ها: 1 اندازه: 24.6 KB شناسه: 20262](filedata/fetch?id=20262&d=1635760486)
زبان مورد نظر را انتخاب کنید :
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 3.png نمایش ها: 1 اندازه: 20.5 KB شناسه: 20263](filedata/fetch?id=20263&d=1635760486)
اکنون پرمیژن و موارد پیش نیاز را بررسی کنید. پرمیژن های مناسب را به فایل ها و پوشه های مورد نیاز بدهید. ممکن است نیاز داشته باشید که فایل های خاص را به صورت دستی ایجاد کنید که کار سختی نیست.
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 4.png نمایش ها: 1 اندازه: 49.9 KB شناسه: 20264](filedata/fetch?id=20264&d=1635760486)
دیتابیس را تنظیم کنید.
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 5.png نمایش ها: 1 اندازه: 38.0 KB شناسه: 20265](filedata/fetch?id=20265&d=1635760486)
اگر تنظیمات دیتابیس به خوبی پیش برود پروفایلها به صورت اتوماتیک نصب می شوند.
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 6.png نمایش ها: 1 اندازه: 22.2 KB شناسه: 20266](filedata/fetch?id=20266&d=1635760487)
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 7.png نمایش ها: 1 اندازه: 21.2 KB شناسه: 20267](filedata/fetch?id=20267&d=1635760488)
تنظیمات به معنی تعریف کردن ‘Site Name‘, ‘Email‘, ‘User Name‘, ‘Password‘, ‘Time Zone‘ می باشد.
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 8.png نمایش ها: 1 اندازه: 22.8 KB شناسه: 20268](filedata/fetch?id=20268&d=1635760487)
اگر همه چی به خوبی پیش برود صفحه ای به شکل زیر ظاهر می شود.
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 9.png نمایش ها: 1 اندازه: 25.3 KB شناسه: 20269](filedata/fetch?id=20269&d=1635760488)
پیج خود را با مراجعه به آدرس http://127.0.0.1 باز کنید :
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 10.png نمایش ها: 1 اندازه: 31.8 KB شناسه: 20270](filedata/fetch?id=20270&d=1635760488)
Kompozer چیست؟
Kompozer یک ابزار برای کار به صورت گرافیکی برای طراحی وب سایت به زبان html است و هر جا بخواهید می توانید اسکریپت php اضافه کنید. Kompozer کار رو برای طراحی وب آسان کرده است.
شما نیازی به نصب آن روی اکثر سیستم های لینوکسی ندارید فقط آن را دانلود، اکسترکت و اجرا کنید.
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 11.png نمایش ها: 1 اندازه: 49.6 KB شناسه: 20271](filedata/fetch?id=20271&d=1635760487)
IP چیست؟
چند کلمه درباره ی (IP) یا Internet Protocol Addresses
به این آدرس آی پی loopback یا همان localhost گفته می شود, که همیشه به ماشینی که در اون مرورگر و باز کرده ایم اشاره می کند. هر ماشینی روی شبکه که با آدرس بالا رجوع کند به ماشین خودش loopback خواهد شد.
Ipconfig/ifconfig : برای فهمیدن آدرس خود این دستور را در ترمینال تایپ کنید :
خروجی سیستم :
به دنبال عبارت inet addr:192.168.1.2 بگردید که اینجا 192.168.1.2 در حقیقت ip local من میباشد. هر کامپیوتری که در lan هست برای دسترسی به وب سایت شما باید به آدرس شما اشاره کند که در این مثال 192.168.1.2 است.
کامپیوتری که در بیرون از Lan هست نمی تواند توسط این ip به صفحه وب شما دسترسی داشته باشد. شما باید از ISP خود یک ip استاتیک (که با گذر زمان تغییر نخواهد کرد) تهیه کنید. آسانترین روش برای فهمیدن این آدرس جستجوی “My ip is” در گوگل است.
a
شما نمی تونید به این ip از کامپیوتر خود یا هر کامپیوتری داخل lan دسترسی داشته باشید. البته می توانید برای این منظور از یک پراکسی سرور زیر استفاده کنید. اما قبل از اون به تنظیم virtual server نیاز دارید و سرویس پروایدر شما مطمئنا در این زمینه برای شما مفید خواهد بود.
چه طور virtual server را تنظیم کنیم
به هیچ وقت کار سختی نیست اول از همه باید پورتی که آپاچی استفاده می کند را بدانید که معمولا پورت 80 است.
خروجی چیزی شبیه خط پایین است :
اکنون به روتر خود بروید که عموما آدرس http://192.168.1.1 میباشد و یوزر و پسورد admin-admin خواهد بود که البته ممکن است بر اساس منطقه و ISP شما این موارد متفاوت باشند.
سپس به تب Virtual Server برید. port number, service name و local IP address را وارد و ذخیره کنید. میتوانید از ISP خود درخواست کمک نمایید.
![برای بزرگتر شدن عکس روی آن کلیک کنید نام: 12.png نمایش ها: 1 اندازه: 102.2 KB شناسه: 20272](filedata/fetch?id=20272&d=1635760488)
به خاطر داشته باشید که تنها زمانی که ماشین شما روشن (up) باشد و همچنین mysql و apache به صورت همزمان در حال اجرا باشند شما قادر خواهید بود از طریق ماشین خودتان و هر ماشینی رو lan تان و یا از طریق یک کامپیوتر روی اینترنت به این وب سرور دسترسی داشته باشید.
هر چقدر قدرت بیشتر باشد مسئولیت ها بزرگتر خواهند شد. و اکنون امنیت ماشین شما جزء مسئولیت های شماست. هرگز ip address خود را در اختیار افرادی که نمیشناسید قرار ندهید.
سعی میکنیم مسائل و مشکلات مربوط به امنیت و نحوه برقراری آن را به اشتراک بگذاریم. کامنت های مثبت شما باعث تشویق و ایجاد انگیزه در ما میشود.
موفق باشید
محمد هابیلی
تجهیزات موردنیاز :
اولین چیزی که نیاز دارید سیستم عامل Linux است. (البته شما میتوانید از ویندوز هم استفاده کنید اما مطمئنا همه چیز به سادگی و کاملی ماشین های لینوکسی نخواهد بود در اینجا ما برای این کار از Debian استفاده می کنیم) اگر شما روی ماشین تان سیستم عاملی نصب نکرده اید و یا نمیدانید که چگونه سیستم عامل لینوکس را نصب کنید در اینجا چندین آموزش برای نحوه نصب یک سیستم عامل برایتان قرار میدهیم :
نحوه نصب CentOS 7
نحوه نصب CentOS 8
نحوه نصب Debian 10
Apache, Mysql و PHP هم باید نصب باشند.(اگر دانش سایر SQL های دیگر را دارید میتوانید از آن استفاده کنید اما ما در اینجا در نمونه مثال خود از MySQL استفاده خواهیم کرد)
علاوه بر موارد بالا به فریم ورک مدیریت محتوا نیز نیازمندیم که از دروپال (Drupal) به همراه Kompozer استفاده میشود و یا شما میتوانید از WordPress یا Joomla نیز استفاده کنید.(ما در اینجا از دروپال (Drupal) به عنوان سیستم مدیریت محتوا (Content Management System یا CMS) استفاده میکنیم)
باید اتصال به اینترنت به همراه ip static (ترجیحا) و برقراری ارتباط از طریق یک مودم به عنوان امکانات ویرچوال هاستینگ خود داشته باشید. (در محیط واقعی به پیچیدگی که در اینجا به نظر میرسد نمیباشد)
Apache (آپاچی) چیست؟
آپاچی یک برنامه وب سرور است که در بیشتر سیستم ها نصب و تنظیم شده است. برای چک کردن نصب بودن آپاچی در سیستم تان این دستور را وارد کنید :
کد:
# apt-cache policy apache2 (On Debian based OS)
کد PHP:
apache2:
Installed: 2.2.22-13
Candidate: 2.2.22-13
Version table:
*** 2.2.22-13 0
500 http://ftp.iitm.ac.in/debian/ wheezy/main i386 Packages
500 http://ftp.debian.org/debian/ wheezy/main i386 Packages
100 /var/lib/dpkg/status
کد:
# yum search httpd (On Red Hat based OS)
کد PHP:
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ftp.iitm.ac.in
* epel: mirror.smartmedia.net.id
* extras: ftp.iitm.ac.in
* updates: ftp.iitm.ac.in
Installed Packages
httpd.i686 2.2.15-28.el6.centos @updates
کد:
# apt-get install apache2 (On Debian based OS) # service apache2 start
کد:
# yum install httpd (On Red Hat based OS) # service httpd start
کد:
http://127.0.0.1 http://localhost http://your-ip-address
MySQL چیست؟
MySQL یک سرور دیتابیس است که در بعضی ورژن ها موجود است. برای چک کردن این که آیا نصب است یا نه و کجا نصب است به صورت زیر عمل کنید :
کد:
# whereis mysql
کد:
mysql: /usr/bin/mysql /etc/mysql /usr/lib/mysql /usr/bin/X11/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
کد:
# apt-get install mysql mysql-server mysql-client (On Debian based OS) # service mysql start
کد:
# yum install mysql mysql-server mysql-client (On Red Hat based OS) # service mysqld start
کد:
# service mysql status (On Debian based OS)
کد:
[info] /usr/bin/mysqladmin Ver 8.42 Distrib 5.5.31, for debian-linux-gnu on i686 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.5.31-0+wheezy1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 11 min 58 sec Threads: 1 Questions: 106 Slow queries: 0 Opens: 467 Flush tables: 1 Open tables: 115 Queries per second avg: 0.147.
PHP چیست؟
php یک زبان اسکریپت نویسی server-side هست که برای توسعه وب طراحی شده است و عموما به عنوان زبان برنامه نویسی اصلی مورد نظر مورد استفاده قرار میگیرد. شما تنها بعد از نصب php میتوانید اسکریپ های php را deploy کنید. همانطور که در بالا هم گفتیم میتوانید از دستورات ‘yum‘ و ‘apt‘ برای نصب پکیج های لازم استفاده کنید :
کد:
# apt-get install php5 libapache2-mod-auth-mysql php5-mysql (On Debian based OS) # yum install php php-mysql (On Red Hat based OS)
کد PHP:
<?php
phpinfo ();
?>
کد:
http://127.0.0.1/info.php http://localhost/info.php http://your-ip-address/info.php
که نشانگر آن است که php به درستی نصب و در حال اجراست. اکنون شما میتوانید وب سایت خود را درون پوشه آپاچی بسازید، ولی بهتره از cms های اماده مثل جوملا، دروپال، وردپرس استفاده کنید. می تونید آخرین ورژن فریم ورک ها را از آدرس های زیر دانلود کنید. به هر حال ما در این پست از Drupal استفاده میکنیم :
1 : دروپال :
کد:
https://drupal.org/project/drupal
2 : جوملا :
کد:
ttp://www.joomla.org/download.html
3 : وردپرس :
کد:
ttp://wordpress.org/download/
دروپال رو از لینک بالا دانلود کنید که یک فایل tar میباشد و آن را به پوشه آپاچی (‘/var/www/html‘ یا ‘/var/www‘) منتقل کنید. و آن را در دایرکتوری root آپاچی extract کنید. ‘x.xx‘ نشان دهنده ی ورژن آن است.
کد:
# mv drupal-x.xx.tar.gz /var/www/ (mv to Apache root directory) # cd /var/www/ (change working directory) # tar -zxvf drupal-7.22.tar.gz (extract the archieve) # cd drupal-7.22 (Move to the extracted folder) # cp * -R /var/www/ (Copy the extracted archieve to apache directory)
کد:
http://127.0.0.1 http://localhost http://your-ip-address
زبان مورد نظر را انتخاب کنید :
اکنون پرمیژن و موارد پیش نیاز را بررسی کنید. پرمیژن های مناسب را به فایل ها و پوشه های مورد نیاز بدهید. ممکن است نیاز داشته باشید که فایل های خاص را به صورت دستی ایجاد کنید که کار سختی نیست.
دیتابیس را تنظیم کنید.
اگر تنظیمات دیتابیس به خوبی پیش برود پروفایلها به صورت اتوماتیک نصب می شوند.
تنظیمات به معنی تعریف کردن ‘Site Name‘, ‘Email‘, ‘User Name‘, ‘Password‘, ‘Time Zone‘ می باشد.
اگر همه چی به خوبی پیش برود صفحه ای به شکل زیر ظاهر می شود.
پیج خود را با مراجعه به آدرس http://127.0.0.1 باز کنید :
Kompozer چیست؟
Kompozer یک ابزار برای کار به صورت گرافیکی برای طراحی وب سایت به زبان html است و هر جا بخواهید می توانید اسکریپت php اضافه کنید. Kompozer کار رو برای طراحی وب آسان کرده است.
کد:
Kompozer : http://www.kompozer.net/download.php
شما نیازی به نصب آن روی اکثر سیستم های لینوکسی ندارید فقط آن را دانلود، اکسترکت و اجرا کنید.
IP چیست؟
چند کلمه درباره ی (IP) یا Internet Protocol Addresses
کد:
http://127.0.0.1
Ipconfig/ifconfig : برای فهمیدن آدرس خود این دستور را در ترمینال تایپ کنید :
کد:
# ifconfig
کد:
eth0 Link encap:Ethernet HWaddr **:**:**:**:**:** inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: ****::****:****:****:****/** Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:107991 errors:0 dropped:0 overruns:0 frame:0 TX packets:95076 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:76328395 (72.7 MiB) TX bytes:20797849 (19.8 MiB) Interrupt:20 Memory:f7100000-f7120000
کامپیوتری که در بیرون از Lan هست نمی تواند توسط این ip به صفحه وب شما دسترسی داشته باشد. شما باید از ISP خود یک ip استاتیک (که با گذر زمان تغییر نخواهد کرد) تهیه کنید. آسانترین روش برای فهمیدن این آدرس جستجوی “My ip is” در گوگل است.
a
شما نمی تونید به این ip از کامپیوتر خود یا هر کامپیوتری داخل lan دسترسی داشته باشید. البته می توانید برای این منظور از یک پراکسی سرور زیر استفاده کنید. اما قبل از اون به تنظیم virtual server نیاز دارید و سرویس پروایدر شما مطمئنا در این زمینه برای شما مفید خواهد بود.
کد:
www.kproxy.com
چه طور virtual server را تنظیم کنیم
به هیچ وقت کار سختی نیست اول از همه باید پورتی که آپاچی استفاده می کند را بدانید که معمولا پورت 80 است.
کد:
# netstat -tulpn
کد:
tcp6 0 0 :::80 :::* LISTEN 6169/apache2
سپس به تب Virtual Server برید. port number, service name و local IP address را وارد و ذخیره کنید. میتوانید از ISP خود درخواست کمک نمایید.
به خاطر داشته باشید که تنها زمانی که ماشین شما روشن (up) باشد و همچنین mysql و apache به صورت همزمان در حال اجرا باشند شما قادر خواهید بود از طریق ماشین خودتان و هر ماشینی رو lan تان و یا از طریق یک کامپیوتر روی اینترنت به این وب سرور دسترسی داشته باشید.
هر چقدر قدرت بیشتر باشد مسئولیت ها بزرگتر خواهند شد. و اکنون امنیت ماشین شما جزء مسئولیت های شماست. هرگز ip address خود را در اختیار افرادی که نمیشناسید قرار ندهید.
سعی میکنیم مسائل و مشکلات مربوط به امنیت و نحوه برقراری آن را به اشتراک بگذاریم. کامنت های مثبت شما باعث تشویق و ایجاد انگیزه در ما میشود.
موفق باشید
محمد هابیلی