Добавление самостоятельной регистрации пользователями в ownCloud 6

image image

Доброго времени суток, хабравчане!

В своей публикации хотел бы поделится с вами личным опытом добавления модуля для самостоятельной регистрации пользователями в облачный сервис. Про настройку LAMP и установку ownCloud описания не будет, поскольку инструкций и всевозможных статей на эту тему уже есть большое множество.

О настройке ownCloud я находил множество статей, и многие были с данного ресурса, но по вопросу: «как добавить возможность регистрации?» в рунете я нашел только один источник, который, на мой взгляд, показался не очень информативным и не достаточно полным. Исходя из этого и родилась идея для написании данного поста.

Начнем


Допустим, у нас есть веб-сервер с установленным ownCloud'ом на Debian Wheezy. Главным условием является, что сервис еще ни разу не запускался и не настраивался.

Теперь, идем по порядку:

1. Первым делом нам нужно скачать архив, в котором есть все необходимое:

wget http://flexible.xapient.net/wp-content/registration-final.zip

2. Распаковываем скачанный архив и копируем из него папку registration в директорию с облачным сервисом в папку core:

unzip registration-final
cp -R registration /var/www/owncloud/core/

Далее нужно так же из распакованного архива скопировать с заменой файлы:
  • db_structure.xml в основную папку облачного сервиса;
  • routes.php в папку core;
  • login.php в папку core/templates.

cp -f db_structure.xml /var/www/owncloud/
cp -f routes.php /var/www/owncloud/core/
cp -f login.php /var/www/owncloud/core/templates/

На этом все манипуляции с архивом закончились.

3. Запускаем в браузере ownCloud, регистрируем административную учетную запись, подключаем БД. После выходим из сервиса и видим на странице ввода логина и пароля снизу ссылку register. Но на этом настройка модуля не закончена.

4. Поскольку, чтобы пользователь получал письмо на свой e-mail с ссылкой для регистрации, нужно установить и настроить какой-нибудь МТA. Для этого я использовал postfix в качестве relay, чтобы он отсылал письма с моей gmail'овской почты.

Устанавливаем postfix и mailutils:

apt-get install postfix mailutils

Открываем конфиг и дополняем его строчками:

nano /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_sasl_security_options =

Открываем (создаем) файл sasl_passwd:

nano /etc/postfix/sasl_passwd

Добавляем туда строчку:

[smtp.gmail.com]:587 username:password

Далее делаем:

postmap /etc/postfix/sasl_passwd
cd /etc/postfix
chown postfix sasl_passwd*

И перезагружаем postfix:

/etc/init.d/postfix reload

Отправляем тестовое письмо для проверки работоспособности postfix'a:

echo "Test mail from postfix" | mail -s "Test Postfix" you@example.com

Если письмо не пришло, смотрим логи на ошибки:

tail /var/log/mail.log

На этом настройка закончилась, осталось проверить работоспособность самой регистрации.

Снова открываем в браузере наш облачный сервис, нажимаем на register, пишем e-mail и проверяем почту, где мы должны увидеть письмо с ссылкой для дальнейшей регистрации.

После проделанной работы результатом будет — облачный сервис с возможностью самостоятельной регистрации пользователя.

UPD: Для всех желающих добавить регистрации в свежие версии ownCloud, можно воспользоваться данным модулем. Перейдя по ссылке, Вы найдете всю необходимую информацию для добавления. Из выше приведенной статьи останется настроить только postfix.
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 3

    0
    А можно ли обойти самое главное ограничение — чтоб облако перед всеми операциями по введению регистрации не запускалось? Переставить уже нет возможности…
      0
      Такая возможность есть. Почему «важно» было не запускать и не настраивать ownСloud перед подключением формы регистрация, так это только из-за того, что при первой настройке и подключении БД добавляются все таблицы в нее из файла db_structure.xml. И если просмотреть этот файл из архива, то там есть в конце таблица pending_regist, именно ее нужно добавить в sql'ную базу (она и ответственна за форму регистрации), можете с помощью phpMyAdmin добавить эту таблицу, если используете MySQL ну или же через другие WebUI для иных БД. Для добавлении таблицы попробуйте:
      CREATE TABLE IF NOT EXISTS `pending_regist` (
        `requested` int(10) NOT NULL,
        `email` varchar(64) NOT NULL,
        `token` varchar(255) DEFAULT NULL
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      
      ALTER TABLE `pending_regist`
       ADD PRIMARY KEY (`requested`);
      

      но скрипт не проверял и гарантии дать не могу, что он с работает.
        0
        Попробуйте импортировать в свою БД и проверьте работоспособность, если заработает, то я тогда внесу это в публикацию.

    Only users with full accounts can post comments. Log in, please.