Покрокове налаштування вебсервера на CentOS 5.6 із використанням Nginx, MySQL 5 та PHP 5 через FastCGI. Розглянемо встановлення компонентів, їх автоматичний запуск, базовий захист бази даних, конфігурацію обробки PHP-файлів і перевірку готового сервера.
Nginx — швидкий і невимогливий до ресурсів вебсервер, який підходить для розміщення сайтів, статичних файлів і PHP-проєктів. У цій інструкції розглянемо встановлення Nginx разом із PHP 5 та MySQL 5 на сервері під керуванням CentOS 5.6.
Для прикладу використовується сервер із доменним ім’ям `server1.example.com` та локальною IP-адресою `192.168.2.222`. У власній системі ці значення потрібно замінити на актуальні.
## Встановлення MySQL
Спочатку встановлюється сервер баз даних MySQL:
```bash
yum install mysql mysql-server
```
Після завершення інсталяції службу потрібно додати до автоматичного запуску та запустити:
```bash
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
```
Перевірити, чи MySQL приймає підключення, можна командою:
```bash
netstat -tap | grep mysql
```
Якщо служба не прослуховує мережевий порт, потрібно відкрити файл конфігурації:
```bash
nano /etc/my.cnf
```
У ньому необхідно знайти параметр `skip-networking` і закоментувати його:
```ini
#skip-networking
```
Після зміни налаштувань MySQL перезапускається:
```bash
/etc/init.d/mysqld restart
```
Для початкового захисту бази даних запускається стандартний сценарій:
```bash
mysql_secure_installation
```
Під час його роботи потрібно встановити пароль адміністратора MySQL, видалити анонімних користувачів, заборонити віддалений вхід для root, видалити тестову базу та оновити таблиці привілеїв.
## Встановлення Nginx
У стандартному репозиторії CentOS 5.6 потрібний пакет Nginx був відсутній, тому в оригінальній інструкції використовується сторонній тестовий репозиторій.
Спочатку завантажується його конфігурація:
```bash
cd /etc/yum.repos.d/
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
```
У секції `KBS-CentOS-Testing` потрібно активувати репозиторій, встановивши:
```ini
gpgcheck=0
enabled=1
```
Після цього можна встановити Nginx:
```bash
yum install nginx
```
Вебсервер додається до автозапуску та запускається:
```bash
chkconfig --levels 235 nginx on
/etc/init.d/nginx start
```
Для перевірки достатньо відкрити IP-адресу сервера у браузері. Якщо сторінка завантажується, Nginx працює та приймає HTTP-запити.
## Встановлення PHP 5
У цій конфігурації PHP підключається до Nginx через FastCGI. Для запуску процесів використовується утиліта `spawn-fcgi`, яка встановлюється разом із пакетом Lighttpd FastCGI.
Особливу увагу потрібно звернути на параметр `SCRIPT_FILENAME`. У ньому має бути вказаний правильний шлях до кореневого каталогу сайту, інакше інтерпретатор PHP не знайде потрібний файл.
Після збереження конфігурації Nginx перезапускається:
```bash
/etc/init.d/nginx restart
```
## Перевірка роботи PHP
У кореневому каталозі вебсервера створюється тестовий файл:
```bash
nano /usr/share/nginx/html/info.php
```
Його вміст:
```php
<?php
phpinfo();
```
Після цього потрібно відкрити у браузері:
```text
http://192.168.2.222/info.php
```
Якщо налаштування виконано правильно, браузер покаже інформаційну сторінку PHP. У рядку Server API буде зазначена робота через FastCGI, а нижче можна перевірити наявність модуля MySQL та інших встановлених розширень.
Після завершення перевірки файл `info.php` необхідно видалити, оскільки він показує детальну інформацію про конфігурацію сервера.
CentOS 5.6, PHP 5 і використані в інструкції репозиторії давно застаріли. Матеріал підходить для ознайомлення або обслуговування старих систем, але новий сервер краще розгортати на актуальній версії Linux, PHP-FPM, Nginx і MariaDB.
{"site_name":"my-dark-master","site_description":"News, posts, articles, files and community projects.","page_not_found":"Page not found","home":"Home","content_not_found":"Content not found","materials":"Content","login":"Sign in","login_action":"Sign in","logout":"Sign out","register":"Register","forgot_password":"Forgot password?","restore_password":"Restore password","email":"Email","password":"Password","name":"Name","nickname":"Username","profile":"My profile","save_profile":"Save profile","theme":"Theme","theme_dark":"Dark","theme_light":"Light","search_placeholder":"Search the site...","search":"Search","change_theme":"Change theme","news":"News","lib":"Articles","post":"Posts","communities":"Communities","community":"Community","main_community":"Main community","community_role_owner":"Owner","community_role_admin":"Administrator","community_role_moderator":"Moderator","community_role_author":"Author","community_role_subscriber":"Member","community_status_pending":"Pending moderation","community_status_revision":"Needs revision","community_status_approved":"Approved","community_status_rejected":"Rejected","community_status_blocked":"Blocked","community_status_archived":"Archived","community_not_found":"Community not found","communities_empty":"There are no communities yet.","comments":"Comments","comments_sort":"Comment sorting","comments_new":"Newest","comments_best":"Best","comments_old":"Oldest","mail":"Mail","sections":"Sections","publications":"publications","materials_count":"items","empty_section":"There are no publications in this section yet.","back_to_section":"Back to section","read_more":"Read more","comment":"Comment","send":"Send","to_home":"Home","open_login_menu":"Open sign-in menu","open_profile_menu":"Open profile menu","language":"Language","menu":"Menu","categories":"Categories","genre":"Genre","section_disabled":"This section is temporarily disabled.","footer_sections":"Sections","footer_social":"Social networks","footer_info":"Information","comments_empty":"No comments yet.","comments_login_required":"Register and sign in to add comments.","pagination":"Pagination","pagination_back":"Back","pagination_next":"Next","admin_panel":"Control panel","admin_panel_hint":"Site management","admin_dashboard":"Dashboard","admin_add_news":"Add news","admin_add_post":"Add post","admin_add_lib":"Add article","admin_all_materials":"All content","admin_categories":"Material categories","admin_settings":"Site settings","admin_profile":"Admin settings","admin_content":"Content","admin_comments":"Comments","admin_users":"Users","admin_system":"System","admin_add_material":"Add","admin_edit_material":"Edit","admin_content_title":"Title","admin_content_genre":"Genre","admin_content_summary":"Summary","admin_content_body":"Full text","admin_content_status":"Status","admin_content_poster":"Poster","admin_category":"Category","admin_category_none":"No category","admin_content_publish":"Add content","admin_content_save":"Save changes","status_moderation":"Pending moderation","status_published":"Published","status_fixed":"Pinned and published","enabled":"Enabled","disabled":"Disabled","all":"All","section":"Section","date":"Date","delete":"Delete","add":"Add","open":"Open","save":"Save","cancel":"Cancel","admin_group":"Group","admin_group_settings":"Group settings","admin_group_settings_hint":"Groups use fixed IDs from 1 to 5. The super admin always has full access.","admin_groups_saved":"Group settings saved.","admin_groups_error":"Unable to save group settings.","group_superadmin":"Super admin","group_superadmin_hint":"Full access to all functions and settings.","group_admin":"Admin","group_admin_hint":"Site management without changing super-admin rights.","group_moderator":"Moderator","group_moderator_hint":"Content and moderation tools.","group_user":"User","group_user_hint":"Regular registered user.","group_guest":"Guest","group_guest_hint":"Visitor without access to the control panel.","permission_panel_access":"Access the control panel","permission_content_manage":"Add and edit content","permission_categories_manage":"Manage shared categories","permission_users_manage":"Manage users","permission_groups_manage":"Change group settings","permission_settings_manage":"Change site settings","admin_users_hint":"Assign one of the five groups to registered users.","admin_user_search":"Username or email","admin_users_empty":"No users found.","admin_user_not_found":"User not found.","admin_group_self_change_denied":"You cannot change your own group from the panel.","admin_superadmin_only":"Only a super admin can manage the super-admin group.","admin_last_superadmin":"The last super admin cannot be removed.","admin_user_group_saved":"The user group has been changed.","admin_you":"You","admin_permission_denied":"Your group is not allowed to perform this action.","admin_panel_limited":"Panel access is allowed, but your group cannot manage content.","created_at":"Registered","action":"Action","admin_invalid_login":"Incorrect password or this account cannot access the control panel.","admin_logged_without_access":"You are signed in as %s, but your group cannot access the control panel.","admin_my_settings":"My settings","admin_general_tab":"General","admin_security_tab":"Security","admin_nickname_locked":"Changing the username in the panel is disabled.","admin_users_section":"Users","admin_system_settings":"System","admin_optional":"optional","admin_poster_choose":"Choose image","admin_poster_hint":"JPG, PNG, GIF or WEBP up to 5 MB","news_navigation":"News navigation","post_navigation":"Post navigation","lib_navigation":"Article navigation","all_categories":"All materials","admin_categories_hint":"Categories are separated by material type and do not mix with each other.","admin_categories_all":"All categories","admin_category_add":"Add category","admin_category_edit":"Edit category","edit":"Edit","view_mode":"Content view","view_list":"List","view_grid":"Grid","search_results":"Search results","search_query":"Query","search_empty":"Nothing found.","profile_home":"Profile home","profile_avatar":"Avatar","profile_my":"My profile","profile_security":"Security","profile_welcome":"My profile","profile_avatar_change":"Change avatar","choose_avatar":"Choose image","save_avatar":"Save avatar","avatar_upload_disabled":"Avatar uploads are disabled.","avatar_required":"Choose an image.","avatar_too_large":"The image is larger than 5 MB.","avatar_invalid_type":"JPG, PNG, GIF and WEBP are allowed.","avatar_save_failed":"Could not save the avatar. Check permissions for \/img\/avatar.","avatar_saved":"Avatar saved.","search_show_all":"Show all","captcha_label":"Verification: solve the example","captcha_required":"Enter the answer to the verification example.","captcha_invalid":"The CAPTCHA answer is incorrect. Please try again.","registration_bot_blocked":"Registration was rejected by the anti-bot protection. Refresh the form and try again.","registration_ip_exists":"An account has already been registered from this IP address.","ok":"OK","reset_password":"Reset password","change_password":"Change password","new_password":"New password","current_password":"Current password","password_change":"Password change","update_password":"Update password","theme_saved":"Theme saved.","field_required":"Complete the required fields.","email_invalid":"Enter a valid email address.","password_min":"The password must contain at least 6 characters.","name_required":"Enter a username.","form_sent":"Data sent.","close_notification":"Close notification","logout_success":"You have signed out.","register_success":"Registration completed successfully.","invalid_login":"Incorrect email or password.","invalid_register":"Enter a username, valid email and a password of at least 6 characters.","registration_disabled":"Registration is temporarily disabled.","email_exists":"A user with this email already exists.","name_exists":"A user with this username already exists.","profile_required":"Username and email are required.","email_busy":"This email is already in use.","name_busy":"This username is already in use.","profile_saved":"Profile saved.","password_check_failed":"Check your current password. The new password must contain at least 6 characters.","password_changed":"Password changed.","mail_new":"New message","mail_inbox":"Inbox","mail_sent_folder":"Sent","mail_spam":"Spam","mail_to":"To (username)","mail_subject":"Subject","mail_body":"Message","mail_files":"Files","mail_send":"Send message","mail_refresh":"Refresh","mail_block":"Block sender","mail_close":"Close mail","mail_empty":"No messages yet.","mail_select":"Select a message from the list.","mail_required":"Enter a recipient and message.","mail_recipient_not_found":"No user with that username was found.","mail_self_denied":"You cannot send a message to yourself.","mail_limit_messages":"The monthly message limit has been reached.","mail_limit_attachments":"The monthly attachment limit has been reached.","mail_sent":"Message sent.","mail_not_found":"Message not found.","mail_blocked":"The user was added to your block list.","mail_system":"System","mail_welcome_subject":"Welcome","mail_welcome_body":"Hello, {name}.\n\nYour login: {email}","mail_server_error":"Server error.","mail_network_error":"Network error.","mail_error":"Mail error.","mailbox_full":"The user\u2019s mailbox is full.","mail_add_files":"Add files","mail_download":"download","added":"Added","reading_now":"Reading now","views":"Views","views_page_title":"Views","views_back_material":"Back to content","views_today":"Today","views_7_days":"Last 7 days","views_30_days":"Last 30 days","views_registered":"Users","views_guests":"Guests","views_repeat_note":"A repeat view by the same visitor is counted after the interval configured in the site settings.","views_last":"Last view","category":"Category","material_rating":"Content rating","author_rating":"Rating","bookmark":"Bookmark","profile_bookmarks":"My bookmarks","bookmarks_all":"All","bookmarks_empty":"There are no bookmarks in this section yet.","bookmark_remove":"Remove from bookmarks","bookmarked_at":"Added","share":"Share","subscribe":"Subscribe","subscribed":"Subscribed","login_required":"Sign in to vote.","delete_comment":"Archive comment","comment_deleted":"Comment archived.","comment_not_found":"Comment not found.","comment_added":"Comment added.","comment_required":"Enter a comment.","comment_too_long":"The comment is too long.","comments_disabled":"Comments are disabled for this section.","account_banned":"Your account is blocked.","reason":"Reason","ban_until":"Until","forever":"Permanent","wait_seconds":"Wait %d seconds.","daily_limit_reached":"The daily limit has been reached.","admin_category_created":"Category added.","admin_category_deleted":"Category archived.","admin_category_error":"The category could not be saved. Check the name and URL.","admin_category_not_found":"Category not found.","admin_category_required":"Enter the Ukrainian category name.","admin_category_updated":"Category updated.","admin_content_created":"Content added.","admin_content_deleted":"Content archived.","admin_content_empty":"No content yet.","admin_content_manage_hint":"Only sections allowed for your group are shown.","admin_content_not_found":"Content not found.","admin_content_required":"Enter the Ukrainian title and full text.","admin_content_save_error":"The content could not be saved.","admin_content_updated":"Content updated.","admin_forbidden":"Your group cannot access the control panel.","admin_login":"Control panel sign in","admin_login_action":"Sign in","admin_login_success":"You signed in to the control panel.","admin_profile_saved":"Profile settings saved.","admin_select_material":"Content not found.","admin_settings_error":"The settings could not be saved.","admin_settings_saved":"Site settings saved.","admin_theme_saved":"Control panel theme changed.","already_have_account":"Already have an account?","back_to_login":"Back to sign in","check_mail":"Check your email","engine_version":"Engine version","forgot_done_text":"If the address exists, recovery instructions were sent by email.","forgot_help":"Enter the email address used during registration.","get_link":"Get link","invalid_reset":"The recovery link is invalid or expired.","local_test_link":"Local test link","login_too_many":"Too many sign-in attempts. Try again later.","mod_not_found":"Module not found.","not_found_text":"The requested page was not found.","password_changed_login":"Password changed. Sign in with the new password.","permission_denied":"You do not have permission for this action.","rating_disabled":"Rating is disabled for this content.","required_language":"required language","reset_open_link":"Open password recovery","reset_sent":"The recovery link was sent.","too_many_requests":"Too many requests. Try again later.","vote_saved":"Your vote was saved.","invalid_vote":"Invalid vote value."}
Comments