Как создать и настроить свой веб-сервер на VDS (05 сен 2024)

Осенью самое время заняться установкой и тюнингом своего веб-сервера. Не правда ли?

Amazon Web Services для новичков

Больше
9 года 8 мес. назад - 7 года 10 мес. назад #1 от Aleksej
Aleksej создал тему: Amazon Web Services для новичков
Данная тема призвана послужить анонсом серии статей блога, которую также возможно было бы озаглавить, пожалуй, следующим образом - Amazon Web Services для новичков. Вы сможете прочесть материалы , посвященных как самому Amazon Web Services, так и разнообразным руководствам по конфигурированию Red Hat Enterprise Linux 7 - если перейдете по указанным ссылкам. В блоге же легко ориентироваться по меткам внизу странички. Успеха!



Итак, начинаем настройку нашего web-сервера. Все команды приведены исходя из предположения, что среди нескольких сотен AMI Амазона вы выбрали именно Red Hat Enterprise Linux 7.1. Что такое AMI? - о, это очень просто:

Amazon Linux AMI
Amazon Linux AMI – это поддерживаемый и обслуживаемый образ Linux, предоставляемый сервисом Amazon Web Services для использования в Amazon Elastic Compute Cloud (Amazon EC2). Он предназначен для обеспечения стабильной, безопасной и высокопроизводительной среды для выполнения приложений, работающих в Amazon EC2. Он также включает в себя пакеты, которые позволяют обеспечить простую интеграцию с AWS, среди которых инструменты конфигурации запуска, а также многие популярные библиотеки и инструменты AWS. Amazon Web Services с целью обеспечения текущей безопасности и обслуживания обеспечивает обновление всех инстансов, на которых используется Amazon Linux AMI. Amazon Linux AMI предоставляется пользователям Amazon EC2 без дополнительной оплаты.


Итак, поехали. Для начала, безусловно -

Code:
sudo yum update

И уже можно сразу поставить апач. Что нам мешает это сделать? - да ничто не мешает, все уже работает, буквально из коробки:

Code:
sudo yum install httpd

Далее пропишем автостарт сервиса и сразу его включаем:

Code:
sudo systemctl enable httpd.service
Code:
sudo systemctl start httpd.service


Теперь очередь за базой данных. Не правда ли, мы двигаемся очень быстро и без малейших проблем? У станавливаем mysql, хотя на самом деле будет инсталлирован mariadb:

Code:
sudo yum install mariadb-server
Code:
sudo systemctl enable mariadb

Запускаем и проверяем:

Code:
$ sudo service mariadb start Redirecting to /bin/systemctl start mariadb.service [ec2-user@ip-XXX-XX-XX-XX ~]$ systemctl status mariadb mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled) Active: active (running) since Ср 2015-04-15 12:21:32 EDT; 7s ago Process: 11068 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS) Process: 10989 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) Main PID: 11067 (mysqld_safe) CGroup: /system.slice/mariadb.service ├─11067 /bin/sh /usr/bin/mysqld_safe --basedir=/usr └─11226 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --...



Давайте, пока не забыли, посмотрим, что у нас тут...

Code:
mysql -u root > use mysql > select host,user from user;

Оказывается, много чего:

Code:
+---------------------------------------------+------+ | host | user | +---------------------------------------------+------+ | 127.0.0.1 | root | | ::1 | root | | ip-XXX-XX-XX-XX.us-west-2.compute.internal | | | ip-XXX-XX-XX-XX.us-west-2.compute.internal | root | | localhost | | | localhost | root | +---------------------------------------------+------+ 6 rows in set (0.00 sec)

Ок, сейчас мы все это поправим.... но сначала необходимо выйти:

Code:
MariaDB [mysql]> quit

и далее запускаем этот скрипт, посредством которого удалим ненужные демки и сделаем кое-какие настройки безопасности. Внимание, в ходе работы скрипта нам придется ответить на ряд вопросов:

Code:
$ sudo /usr/bin/mysql_secure_installation /usr/bin/mysql_secure_installation: line 379: find_mysql_client: команда не найдена NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!



Как видите, в ходе работы - мы с вами, в том числе, назначили рутовый пароль.И теперь уже получаем возможность войти, введя новый pass:

Code:
$ sudo mysql -u root -p

Можно проверить, все ли ненужное мы удалили:

Code:
> select host,user from user; ERROR 1046 (3D000): No database selected

или же, скажем,

Code:
MariaDB [mysql]> show databases;


Да, это все, сервер установлен и работает, вы можете его перезагрузить. Отлично! А дальше - по сссылкам в начале топика. :)
Последнее редактирование: 7 года 10 мес. назад пользователем p.rishard.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 2
Больше
9 года 6 мес. назад #2 от serge
serge ответил в теме Amazon Web Services для новичков
ДОбавлю от себя. Во избежание наводящих вопросов.
Время от времени, и нередко, возникает необходимость : импортировать в MySQL большую базу данных через phpMyAdmin. По дефолту, связка Apache2/PHP/MySQL/phpMyAdmin позволяет импортировать дамп БД размером не более 2Мб. Что же делать? -
  1. Увеличиваем в файле php.ini значение параметра upload_max_filesize.
  2. Увеличиваем в файле php.ini значение параметра post_max_size.
  3. sudo service httpd restart
Все работает.

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
9 года 5 мес. назад #3 от superlamer
superlamer ответил в теме Amazon Web Services для новичков

Aleksej пишет: Amazon Web Services для новичков.


а вот сколько хостинг на Амазоне будет стоить через год, когда бесплатности кончатся, кто бы сказал..... ;)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
9 года 5 дн. назад #4 от serge
serge ответил в теме Amazon Web Services для новичков

superlamer пишет: а вот сколько хостинг на Амазоне будет стоить через год, когда бесплатности кончатся, кто бы сказал.....


Сложно сказать, особенно на фоне все более и более теплеющих отношений с Украиной, Турцией, Египтом, Сирией, странами ОПЕК, Европой, Америкой... полагаю, демпинговать для России Амазон точно пока не собирается. :woohoo:

И тем не менее, продолжаем палить тему. Итак:


Amazon. Как восстановить EC2 Instance из снапшота

Наиболее подробная, на мой взгляд, инструкция по теме Как восстановиться из снапшота Амазона. Даже слишком подробная, на мой взгляд. Третий шаг можно вообще пропустить, если создавать новый инстанс в том же регионе, что и восстанавливаемый. Привожу как есть, man полностью актуальный и рабочий. Хотя и не понимаю, зачем такие сложности: ни к чему создавать новый инстанс "with parameters similar ", можно сделать гораздо проще: остановить рабочий инстанс (если он у вас есть, конечно) -> Force Detach Volume -> затем переходим в Snapshots -> и из контекстного меню нужного нам снапшота выбираем Create Volume, далее Create -> еще далее Go to volumes, выбираем только что созданный volume и, наконец, Attach volume, в Device field пишем /dev/sda1 -> и последнее, Click “Attach”. Далее нужно только стартовать старый (и единственный) наш инстанс, и восстановление на этом завершено (наш Elastic IP не изменился, по прежнему асcоциирован со старым инстансом). Вот так, и тем не менее:


How to restore EC2 Instance from Snapshot

To restore EC2 Instances from the snapshot(s) in the same or different AWS region follow these steps:

1. Create a new EC2 Instances with parameters similar to the instance from which the snapshot(s) was taken. If possible, the best practice would be to take an AMI of the existing EC2 and create a new instance based on that AMI. The new instance can be created in any AWS region.

2. Identify the snapshot that was taken from the root (C: drive) EBS volume:

  • To identify root snapshot go to the AWS Management Console
  • Under EC2 section, click “Instances”
  • Select the source instance
  • In the Description section, click “Root device type”
  • Copy or Note EBS ID
  • Restore EC2 Instance from Snapshot
  • Go to Snapshots section
  • In the Search field type or paste the EBS ID
  • On the list you should see the snapshots created from the root volume
  • Restore EC2 Instance from Snapshot

3. If the new instance will be launched in different AWS region, copy the root snapshot to destination region, otherwise skip this step:
  • To copy a snapshot to a different region go to the AWS Management Console
  • Under EC2 section go to Snapshots and select the “root snapshot”
  • From the menu, select “Copy”
  • Restore EC2 Instance from Snapshot
  • Choose the destination region and click “Copy”
  • Restore EC2 Instance from Snapshot

4. Stop the new EC2 Instance.

5. Detach the root volume from the Instance:
  • To identify root volume follow steps [a-d] from #2
  • Go to volumes
  • Type the volume ID in “Search Volumes” field
  • Restore EC2 Instance from Snapshot
  • Check the root volume on the list
  • From “Action” select “Force Detach Volume”
  • Restore EC2 Instance from Snapshot

6. Create a new volume based on the snapshot identified in #2:
  • Go to snapshots
  • Find the new snapshot
  • From “Actions” select “Create Volume”
  • Restore EC2 Instance from Snapshot
  • Select appropriate type of Volume (Standard or IOPS)
  • You can enter the bigger size if needed
  • Availability zone must be the same as the one where a new EC2 instance was launched in
  • Click “Create”
  • Restore EC2 Instance from Snapshot


7. Attach the new volume:
  • Go to volumes
  • Select the volume that was created in #6
  • From “Actions” select “Attach volume”
  • Restore EC2 Instance from Snapshot
  • In Instance field select the instance created in #1
  • In Device field type /dev/sda1
  • Click “Attach”
  • Restore EC2 Instance from Snapshot

8. Start Instance.


А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 5 мес. назад #5 от superlamer
superlamer ответил в теме Amazon Web Services для новичков

serge пишет: И тем не менее, продолжаем палить тему. Итак:


Я, пожалуй, решусь попробовать Amazon... вот только у меня нет Visa, можно ли будет заплатить Maestro?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 5 мес. назад #6 от serge
serge ответил в теме Amazon Web Services для новичков

superlamer пишет: можно ли будет заплатить Maestro?



Сделай себе виртуальный MasterCard на Яндекс-Деньгах, это бесплатно.
И без проблем Amazon ежемесячно будет списывать с него деньги.

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 3 мес. назад - 8 года 3 мес. назад #7 от Aleksej
Aleksej ответил в теме Amazon Web Services для новичков
Всем снова здравствуйте. Народ, кто в теме, объясните мне эту шутку юмора... пожалуйста. Реально, нифига понять не могу, уж простите за тупость. В трех словах, в репах редхата уже года два лежит php v.5.4.16, а нового по сей день нет. Я уж молчу про то, что не поддерживается эта версия давно, но там еще и злостная уязвимость имеет место, тысячи сайтов на Joomla пострадали от нее:

Version 3.4.7 Joomla is released to address two reported security vulnerabilities and includes security hardening of the MySQLi driver to help prevent object injection attacks.
The Joomla Security Strike team has been following up on the critical security vulnerability patched last week. Since the recent update it has become clear that the root cause is a bug in PHP itself. This was fixed by PHP in September of 2015 with the releases of PHP 5.4.45, 5.5.29, 5.6.13 (Note that this is fixed in all versions of PHP 7 and has been back-ported in some specific Linux LTS versions of PHP 5.3). The only Joomla sites affected by this bug are those which are hosted on vulnerable versions of PHP. We are aware that not all hosts keep their PHP installations up to date so we are making this release to deal with this issue on vulnerable PHP versions.


Взгляните, как здорово: bugzilla.redhat.com/show_bug.cgi?id=CVE-2015-6835 часть типа того что пофикшена, остальная, что в проверке инпута пользователя - говорят проверяйте в пыхе. Не врубаюсь, это новый у них прикол такой? rhn.redhat.com/errata/RHSA-2016-0457.html Можно обновить пых to 5.6 или к семерке только из неофициальных репов - Webtatic там, или у Remi взять. А больше, походу, и негде:

Code:
$ sudo yum info php Загружены модули: amazon-id, rhui-lb, search-disabled-repos Доступные пакеты Название: php Архитектура: x86_64 Версия: 5.4.16 Выпуск: 36.3.el7_2 Объем: 1.4 M Источник: rhui-REGION-rhel-server-releases/7Server/x86_64 Аннотация: PHP scripting language for creating dynamic web sites Ссылка: http://www.php.net/ Лицензия: PHP and Zend and BSD Описание: PHP is an HTML-embedded scripting language. PHP attempts to make it : easy for developers to write dynamically generated web pages. PHP also : offers built-in database integration for several commercial and : non-commercial database management systems, so writing a : database-enabled webpage with PHP is fairly simple. The most common : use of PHP coding is probably as a replacement for CGI scripts. : : The php package contains the module (often referred to as mod_php) : which adds support for the PHP language to Apache HTTP Server.


Any ideas? вот на форуме php.ru мне советуют Red Hat Software Collections :

sudo subscription-manager repos --list | egrep rhscl


, только нет у меня на Амазоне этой подписки. И у других, походу, в плане Amazon аналогичная история:

Павел Алексеев (aka Pahan-Hubbitus):: ну поддержки не было на бесплатном периоде, а потом я уже и не спрашивал. А на форуме они не ответили по проблеме.


Так что вот. Неприятная история, согласитесь. Легальному пользователю Amazon, соответственно, сгодится и старенький уязвимый php, а новые версии пакетов только за дополнительную плату, как-то так. Кризис? - но все равно, не очень все это красиво.
Последнее редактирование: 8 года 3 мес. назад пользователем Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 года 2 дн. назад #8 от Nguen
Nguen ответил в теме Amazon Web Services для новичков
Спустя ровно месяц вернулся в Yoomoney замороженный при регистрации аккаунта на Amazon Web Service $1 :
 

Сумма возврата
98,48 RUB
 
Где был платёж
LUX, aws.amazon.co

 
Кто знает, это что, у них курс рубля такой нев***енный??

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум