|
ВОЛГОДОНСК Свободный городской форум
|
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ntking Админ
Зарегился: 02.06.2005 Сообщения: 1224 Откуда: Волгодонск Район: В-16
|
Добавлено: 26 Мар 2013 17:23 Заголовок сообщения: Apache/PHP/MySql/FTP на CentOS 6 |
|
|
Попался мне на руки VPS-ник на халяву, вот решил приспособить его для хостинга. Мне то по сути нужен всего лишь Apache, но решил на всякий случай установить связку: Apache/PHP/MySql/FTP
Итак, у нас чистенький, только что установленный хостером VPS (сконфигурирована сеть) с CentOS 6-й версии, задал на него root пароль и подцепился по SSH с помощью PuTTY.
Решено было в первую очередь обновить ОСь:
Скачал примерно 128Мб, установил обновы.
Далее ставим Apache (если его не установил хостер, у меня в ОС он уже был установлен):
Код: | yum -y install httpd | после установки не забываем его добавить в автозагрузку: Код: | chkconfig --levels 235 httpd on | ну и собственно запустить: Код: | /etc/init.d/httpd start | После данных манипуляций при заходе на ip VPS'a по http он должен выдать заставку Apache. Значит все установлено правильно. Если не заходит, то возможно хостер не позаботился о настройке файрвола в конфиге VPS'a. Тогда собственноручно разрешаем порт 80: Код: | iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT | Как настраивать Apache на определенный домен я возможно опишу ниже, а сейчас, заставка отображается - значит все установлено правильно.
Приступаем к установке FTP . Тут не сложнее предыдущего:
Код: | yum -y install vsftpd | Установили. Редактиуем конфиг: Код: | vi /etc/vsftpd/vsftpd.conf | , для редактирования используем "i", для выхода из редактирования "Esc", для сохранения ":wq". Основное, что нам надо изменить:
anonymous_enable=NO ## Запрещаем анонимам использовать сервер
chroot_local_user=YES ## Запрещаем выходить из домашней папки (для безопасности)
force_dot_files=YES ## В конце конфига дописываем этот параметр, чтобы по FTP видеть Dote файлы (.htaccess например)
Сохранились, теперь не забываем добавить vsftpd в автозагрузку:Полдела сделано, далее еще половина. VsFTPd использует учетные записи ОСи, поэтому создаем нового юзверя:где FTPuser логин нашего пользователя, задаем теперь ему пароль: где где FTPuser имя пользователя, указанное ранее. Далее закрываем этому пользователю доступ по SSH:в конце конфига должна быть запись:
FTPuser:x:500:500::/home/FTPuser:/bin/bash
исправляем ее на:
FTPuser:x:500:500::/home/FTPuser:/sbin/nologin
Сохраняемся ":wq". Ну и собственно запускаем FTP сервер: Код: | service vsftpd start | Пробуем зайти по фтп, если не пускает, открываем 21-й порт аналогично вебсерверу: Код: | iptables -I INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT | Логинимся, заходит, радуемся.
Продолжение Следует...
Последний раз редактировалось: ntking (10 Дек 2013 17:09), всего редактировалось 3 раз(а) |
|
Вернуться к началу |
|
|
ntking Админ
Зарегился: 02.06.2005 Сообщения: 1224 Откуда: Волгодонск Район: В-16
|
Добавлено: 27 Мар 2013 12:37 Заголовок сообщения: |
|
|
Продолжение.
От себя добавлю, что выше установленной связки мне вполне хватило для моих нужд (html + JavaScript сайт), но я решил пойти дальше и установить еще поддержку PHP и баз MySQL. Итак, начнем.
Устанавливаем PHP:
Устанавливаем MySql: Код: | yum -y install mysql mysql-server | добавляем мускул в загрузку Код: | chkconfig --levels 235 mysqld on | Не забываем поженить PHP и мускул Код: | yum -y install php-mysql php-gd php-imap php-ldap php-odbc | Ну вот, почти все сделано. Можно проверить работу PHP , перезагрузив веб-сервер Код: | service httpd restart | добавив в /var/www/html/ фалик info.php, с содержимыми посетив его в браузере.
Ах да... Пароля то на мускуле нет, для этого запускаем его Код: | /etc/init.d/mysqld start | и собственно устанавливаем пароль Код: | mysql_secure_installation | По умолчанию пароля нет, поэтому в начале просто жмем "Ентер". Далее:
Set root password? [Y/n] Y ## Задаем пароль для root
Remove anonymous users? [Y/n] Y ## Запрещаем анонимов
Disallow root login remotely? [Y/n] Y ## Запрещаем конектиться root'ом удаленно
Remove test database and access to it? [Y/n] Y ## Удаляем тестовую таблицу и доступ к ней
Reload privilege tables now? [Y/n] Y ## Перезагружаем привелегии.
Ну вот вроде и все... Для того, чтобы разместить сайт и он работал, достаточно отредактировать конфиг веб-сервера Код: | vi /etc/httpd/conf/httpd.conf | следующим образом (основные моменты):
находим <Directory "/var/www/html"> изменяем на <Directory "/home/FTPuser/www/"> ## Тут у нас будут папки с сайтами, FTPuser это имя вашего пользователя, созданного в статье выше.
Ну или можно сделать так: Код: | <Directory />
Options Indexes FollowSymLinks Includes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory> | В конце конфига раскоментируем и редактируем следующие строки: Код: | NameVirtualHost *:80
<VirtualHost *:80>
# ServerAdmin webmaster @ example.com
DocumentRoot /home/FTPuser/www/example.com
ServerName example.com
ServerAlias www.example.com
# ErrorLog /home/FTPuser/logs/example.com-error_log
# CustomLog /home/FTPuser/logs/example.com-access_log common
</VirtualHost> | Теперь в корневой папке нашего пользователя, по FTP, создаем папку www, в ней папку в Вашим доменом example.com. В нее заливаем файлы сайта. Чтобы все вступило в силу, перезагружаем веб-сервер Код: | service httpd restart | Ну вот вроде бы и все. Если что-то нужно подредактировать в конфиге под себя, думаю проблем с этим не возникнет, там на все параметры есть справка.
Теперь у Вас есть полноценный веб сервер с поддержкой PHP+MySql и с FTP доступом к нему. Если мне понадобится что-то доустановить на свой сервер, то я обязательно опишу процесс установки в данной статье. Надеюсь все понятно описал и кому-то помог.
(с) ntking При использовании (копировании) данной статьи - ссылка на ntking.ru или vdforum.net обязательна.
Последний раз редактировалось: ntking (29 Мар 2013 10:46), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
ntking Админ
Зарегился: 02.06.2005 Сообщения: 1224 Откуда: Волгодонск Район: В-16
|
Добавлено: 29 Мар 2013 11:08 Заголовок сообщения: |
|
|
Код: | yum list installed >/tmp/instproglist.txt | Листинг установленных программ на CentOS в файл. Ну или копируйте сразу в свою директорию /home/FTPuser/ . |
|
Вернуться к началу |
|
|
ntking Админ
Зарегился: 02.06.2005 Сообщения: 1224 Откуда: Волгодонск Район: В-16
|
Добавлено: 10 Дек 2013 12:22 Заголовок сообщения: |
|
|
Столкнулся с проблемой, что при установки новой версии vsFTPd юзер по какой-то причине не логинится. 530 ошибка (login incorect) и все тут.
Нашел решение на забугорном форуме:
Нужно отредактировать Код: | vi /etc/pam.d/vsftpd | , закомментировав строчку:
Код: | #auth required pam_shells.so |
Логиниться пользователь начал, все работает отлично, но я все же не понял, что я сделал и не повлияет ли это на безопасность сервера в целом?
P.S. Нарыл в инете вот такое объяснение этим действиям:Цитата: Если пользователю отключить шелл, то он не сможет залогиниться на FTP сервер, его будет просто отфутболивать.
Вдумчивое чтение документации по vsFTPd рассказало мне, что доступ к FTP могут получить пользователи которые имеют работоспособный шелл т.е. /bin/bash, для того чтобы пользователи с /bin/false могли авторизироваться на нашем ftp, нам необходимо отредактировать файл /etc/pam.d/vsftpd
Последний раз редактировалось: ntking (10 Дек 2013 16:54), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
ntking Админ
Зарегился: 02.06.2005 Сообщения: 1224 Откуда: Волгодонск Район: В-16
|
Добавлено: 10 Дек 2013 16:15 Заголовок сообщения: |
|
|
Еще добавление.
Альтернативная конфигурация веб сервера Apache. Организация папок следующая: Код: |
/home/FTPuser/example.com/
/home/FTPuser/example.com/www/
/home/FTPuser/example.com/logs/
| В папке /etc/httpd/conf.d/ создаем файл example.com.conf с содержимым: Код: | <VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /home/FTPuser/example.com/www
<Directory /home/FTPuser/example.com/www>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
#лог ошибок
ErrorLog /home/FTPuser/example.com/logs/error.log
#
#лог обращений выключен по умолчанию, для включения уберите #
#CustomLog /home/FTPuser/example.com/logs/access.log common
#
</VirtualHost> | перезапускаем httpd и готово. Внутрь тегов <VirtualHost> можно даже настройки PHP вписывать и т.п., что косается этого хоста.
И еще один нюанс, который мне пришлось обдумать: это выдача сервером ошибки 403 Forbidden, при правильной конфигурации. Оказалось, что на папке /home/FTPuser/ стоял cmod 700, что впрочем и послужило основой ошибки. Зашел по FTP коммандером, поставил права 755 и сайт заработал. |
|
Вернуться к началу |
|
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы не можете скачивать файлы в этом форуме
|
|