среда, 18 января 2012 г.

Web файлохранилище XtraFile на Debian

Мне кажется время от времени всем хочется иметь сервис хранения файлов по типу RapidShare, DepositFiles, iFolder и прочего, но только без лишних проблем, ограничения скорости и подобных неприятностей. Но всё ни как не доходили руки написать, или хотябы поискать готовые решения. На самом деле готовые решения уже есть omploader, XtraFile, Jyraphe, FileZ.

Сегодня я хотел бы рассказать об одном из таких сервисов. Я решил остановиться на XtraFile хоть он уже давненько не развивается, но чем то он мне приглянулся.

Для начала установим всё что нужно
apt-get update
apt-get install -y unzip php5 php5-cli  php5-mysql mysql-server \ 
 mysql-client apache2 libapache2-mod-php5 libfcgi-dev libmhash-dev sudo
a2enmod actions rewrite
/etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Если у вас Debian 6 Squeeze то вам прийдётся понизить версию php5.3 до php5.2



Загрузим XtraFile
cd /usr/src/
wget http://xtraupload.assembla.com/spaces/xtraupload/documents/an9g7MvtWr3OrCeJe5afGb/download/XtraUpload_v2-Beta4.zip
unzip XtraUpload_v2-Beta4.zip
cp -a ./xu2/* /var/www/
chown -R www-data:www-data /var/www/
cd /var/www/
chmod 0666 ./system/application/config/config.php
chmod 0666 ./system/application/config/database.php
chmod 0666 ./setup/includes/config/database.php
chmod 0777 ./filestore
chmod 0777 ./temp
chmod 0777 ./system/cache
chmod 0777 ./thumbstore
chmod 0777 ./system/logs
Активируем VirtualHost
cat > /etc/apache2/sites-available/XtraFile.conf <<EOF
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews +ExecCGI
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    

        AccessFileName /var/www/htaccess.txt 
    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug 

    CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

EOF

a2dissite default
a2ensite XtraFile.conf
/etc/init.d/apache2 restart
Создадим базу данных
mysql -uroot -p <<EOF
 
create database xu2db;
CREATE USER 'xu2user'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON xu2db.* TO 'xu2user'@'localhost' WITH GRANT OPTION;
 
EOF
Настроим php.ini, и обратите внимание, я не с проста указал в конфиге значение 2047M а не 2048M. Просто это максимально возможное значение для адекватной работы php. Если значение окажется выше, можно огрести много горести. Так же осознаём прискорбный факт того, что более объёмистые файлы мы загружать не сможем.
sed -i -e 's/^upload_max_filesize.*M$/upload_max_filesize = 2047M/g' /etc/php5/apache2/php.ini
sed -i -e 's/^post_max_size.*M$/post_max_size = 2047M/g' /etc/php5/apache2/php.ini
sed -i -e 's/^max_execution_time.*$/max_execution_time = 600/g' /etc/php5/apache2/php.ini
sed -i -e 's/^max_input_time = .*$/max_input_time = 600/g' /etc/php5/apache2/php.ini
sed -i -e 's/^memory_limit = .*$/memory_limit = 320M/g' /etc/php5/apache2/php.ini

Настало время приступить к настройке через WEB
Откройте свой любимый браузер, и открыть ссылку http://Адрес_Сервера/setup/









Теперь можем удалить директорию установки, и обновлений, поскольку в будущем обновлений не планируется.
rm -Rf /var/www/setup/ /var/www/upgrade/ 

Всё система готова к использованию.

Enhanced by Zemanta