توی این مقاله قراره در مورد راه اندازی سرور apache در سیستم عامل CentOs و یه سری تنظیمات مربوط به این وب سرور صحبت کنیم. سیستم عامل ما CentOs 8 هستش و وب سرور apache می باشد. بعد از نصب سیستم عامل مراحل زیر نیاز است تا شما بتوانید یک وب سرور apache روی سرور خود راه اندازی کنید.
در ریپازیتوری های مربوطه به Cantos وب سرور Apache با نام httpd شناخته می شود برای همین برای نصب باید از دستور زیر استفاده کنید:
$ sudo dnf install httpd
با همین دستور ساده وب سرور Apache روی سرور شما نصب می شود و یک صفحه html به صورت آزمایش بر روی وب سرور شما قرار می گیرد ولی ممکن است شما از بیرون سرور نتوانید به این ضفحه دسترسی پیدا کنید برای همین موضوع شما باید دیواره آتش خودتان رو طوری تنظیم کنید تا اجازه دسترسی به وب سرور داخلی شما از بیرون را بدهد.
دستور زیر به دیواره آتش شما اعلام می کند که اجازه ورود و خرووج اطلاعات از طریق پورت مربوط به http را بدهد:
$ sudo firewall-cmd --permanent --zone=public --add-service=http
همچنین اگر می خواهید از رمز نگاری ssl در سرور خود استفاده کنید باید پورت مخصوص به https را نیز باز کنید که از طریق دستور زیر امکان پذیر می باشد:
$ sudo firewall-cmd --permanent --zone=public --add-service=https
در ادامه در مورد راه اندازی پروتوکل https بیشتر صحبت می کنیم.
در وب سرور apache شما می تواند چند سایت به صورت همزمان داشته باشید. به این صورت که هر کدام به صورت مستقل فعالیت کرده و تنها هاست یکسانی دارند.
در قسمت /var/www/ شما می تواند پوشه های مختلف ایجاد کنید و در هر یک از این پوشه ها فایل های مربوط به سایت خود را قرار دهید.
همچنین در پوشه /etc/httpd/sites-available تنظیمات مربوط به سایت خود را می توانید قرار دهید و در قسمت /etc/httpd/sites-enabled به وب سرور اعلام می کنید آیا سایت شما در دسترس هست یا خیر.
حال برای تمرین بیشتر یک سایت دلخواه به وجود می آوریم:
در ابتدا به دستور زیر پوشه مد نطر را اضافه می کنیم:
$ sudo mkdir -p /var/www/example.com/html
سپس فایل ها مربوط به سایت خود را می توانید در پوشه /var/www/example.com/html بریزید.
همچنین برای ذخیره log ها می توانید یک پوشه جدید باز کنید:
$ sudo mkdir -p /var/www/example.com/log
حال برای ایجاد تنظیمات مربوط به سایت خود باید در پوشه تنظیمات فایل جدید باز کنید:
$ sudo vi /etc/httpd/sites-available/example.com.conf
و در آن اطلاعات مربوطه به سایت خود را وارد کنید:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example.com/html
ErrorLog /var/www/example.com/log/error.log
CustomLog /var/www/example.com/log/requests.log combined
</VirtualHost>
که در قسمت بالا باید اطلاعات مربوط به سایت خود را وارد کنید. ServerName مربوط به نام سایت شما، DocumentRoot مربوطه به پوشه قرار گرفتن فایل های html سایت شما، ErrorLog مربوط به محل ذخیره سازی log ها می باشد.
دقت کنید که در این قسمت می توانید پورت مربوط به سایت خود را مشخص کنید(انتهای خط اول). به طور مثال سایت شما می تواند از طریق پورت 12345 قابل دسترس باشد. ولی باید دقت داشته باشید که در تنظیمات دیواره آتیش پورت مد نظر را باز کنید.
همچنین اگر می خواید از سایت شما https باشید باید به قسمت تنطیمات اطلاعات مربوط به private key و certificate File خود را اضافع کنید:
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.example.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>
که SSLCertificateFile آدرس certificate file شما، SSLCertificateKeyFile آدرس private key شما و SSLCertificateChainFile آدرس Bundle File شما در صورت نیاز می باشد.
حال برای آنکه وب سرور آگاهی پیدا کند که سایت شما فعال است یا خبر باید یک لینک مجازی بین تنظیمات سایت و قسمت مربوط به فعال سازی سایت ها ایجاد کنید:
$ sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
حال وب سرور از وجود سایت شما آگاه می شود. برای فعال کردن سایت خود می توانید از دستور زیر استفاده کنید:
$ sudo a2ensite example.com
همچنین برای غیر فعال کردن وب سایت نیز می توانید از دستور زیر استفاده کنید:
$ sudo a2disite example.com
بعد از انجام تغییرات باید وب سرور را restart کنید. دستورات زیر مربوط به راه اندازی وب سرور و موارد مشابه می باشد.
راه اندازی سرویس وب سرور:
$ sudo systemctl start httpd
توفق سرویس وب سرور:
$ sudo systemctl stop httpd
راه اندازی مجدد سرویس وب سرور:
$ sudo systemctl restart httpd
تنظیم کردن مجدد تنظیمات وب سرور:
$ sudo systemctl reload httpd
مشاهده کردن وضعیت فعلی وب سرور:
$ sudo systemctl status httpd
امیدوارم بتوانید از مطالب بالا برای راه اندازی سایت خود استفاده کنید.
منابع
https://www.linode.com
https://phoenixnap.com
https://www.digitalocean.com
https://www.digicert.com