Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam, skonfigurowałem FTPa (PureFTPd z baza mysql ) wszystko hula jak należy, jednak chciałem dać możliwość użytkownikom posiadania własnej strony http://localhost/~user. Zainkludowałem moduł userdir dla apacha, stworzyłem katalog public_html i niestety - wywołanie http://localhost/~user la uzytkownika z bazy nie działa. Dodam tylko, że wszystko działa dla uzytkownika systemowego - tworze public_html i http://localhost/~usersystemowy działa. Proszę o pomoc
Offline
djjanek - oczywiście - jak pisałem dla uzytkowników systemowych działa bez problemu, dla uzytkowników z bazy niestety nie.
Znalazłem jeszcze na forum wątek : http://forum.dug.net.pl/viewtopic.php?id=14185
Powiesz mi jak mam aktywować ten moduł?
plik Makefile wygląda u mnie tak:
APXS=/usr/bin/apxs2 #APXS=/usr/local/apache/bin/apxs LIBS=libmysqlclient -lz -L/usr/lib/ LDFLAGS=-I/usr/include/mysql ACTIVATE=-a PROG=mod_mysql_userdir $(PROG).so: $(PROG).c $(APXS) -c -o $@ $(LDFLAGS) $(LIBS) $< -shared install: $(PROG).so $(APXS) -i $(ACTIVATE) $< clean: rm -rf *.lo *.slo *.so *.o .libs/ *~ core
wydaję polecenie make :
root@debian:/home/lukasz/mod_mysql_userdir-1.2# make /usr/bin/apxs2 -c -o mod_mysql_userdir.so -I/usr/include/mysql libmysqlclient -lz -L/usr/lib/ mod_mysql_userdir.c -shared /usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static i486-linux-gnu-gcc -prefer-pic -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_REENTRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I/usr/include/mysql -c -o mod_mysql_userdir.lo mod_mysql_userdir.c && touch mod_mysql_userdir.slo mod_mysql_userdir.c: In function ‘strcopy’: mod_mysql_userdir.c:555: warning: ignoring return value of ‘realloc’, declared with attribute warn_unused_result /usr/share/apr-1.0/build/libtool --silent --mode=link --tag=disable-static i486-linux-gnu-gcc -o mod_mysql_userdir.la -rpath /usr/lib/apache2/modules -module -avoid-version mod_mysql_userdir.lo libmysqlclient -lz -L/usr/lib/ -shared
nastepnie make install
root@debian:/home/lukasz/mod_mysql_userdir-1.2# make install /usr/bin/apxs2 -c -o mod_mysql_userdir.so -I/usr/include/mysql libmysqlclient -lz -L/usr/lib/ mod_mysql_userdir.c -shared /usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static i486-linux-gnu-gcc -prefer-pic -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_REENTRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I/usr/include/mysql -c -o mod_mysql_userdir.lo mod_mysql_userdir.c && touch mod_mysql_userdir.slo mod_mysql_userdir.c: In function ‘strcopy’: mod_mysql_userdir.c:555: warning: ignoring return value of ‘realloc’, declared with attribute warn_unused_result /usr/share/apr-1.0/build/libtool --silent --mode=link --tag=disable-static i486-linux-gnu-gcc -o mod_mysql_userdir.la -rpath /usr/lib/apache2/modules -module -avoid-version mod_mysql_userdir.lo libmysqlclient -lz -L/usr/lib/ -shared /usr/bin/apxs2 -i -a mod_mysql_userdir.so /usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' mod_mysql_userdir.so /usr/lib/apache2/modules /usr/share/apr-1.0/build/libtool --mode=install cp mod_mysql_userdir.so /usr/lib/apache2/modules/ libtool: install: cp mod_mysql_userdir.so /usr/lib/apache2/modules/mod_mysql_userdir.so cp: cannot stat `mod_mysql_userdir.so': No such file or directory apxs:Error: Command failed with rc=65536 . make: *** [install] Błąd 1
Ok, poradziłem sobie z w/w błędami, zmieniłem plik Makefile jak z wątku który podałem na początku tzn mam teraz tak:
APXS=/usr/bin/apxs2
#APXS=/usr/local/apache/bin/apxs
LIBS=libmysqlclient -lz -L/usr/lib/mysql
LDFLAGS=-I /usr/include/mysql
ACTIVATE=-a
PROG=mod_mysql_userdir
$(PROG).so: $(PROG).c
$(APXS) -c -o $@ $(LDFLAGS) $(LIBS) $< -shared
install: $(PROG).so
$(APXS) -i $(ACTIVATE) $<
clean:
rm -rf *.lo *.slo *.so *.o .libs/ *~ core
po make pojawił się katalog .lib, przekopiowałem wszystkie pliki do głownego katalogu make install - poszło, restart apacha i błąd:
root@debian:/home/lukasz/mod_mysql_userdir-1.2# /etc/init.d/apache2 restart
apache2: Syntax error on line 203 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/mysql_userdir.load: Cannot load /usr/lib/apache2/modules/mod_mysql_userdir.so into server: /usr/lib/apache2/modules/mod_mysql_userdir.so: undefined symbol: mysql_select_db
Action 'configtest' failed.
The Apache error log may have more information.
failed!
W logach info
Feb 8 14:50:13 debian kernel: mod_mysql_userd[20292]: segfault at 1 ip 00000001 sp bfb89ad4 error 4 in mod_mysql_userdir.so[b7774000+3000]
Ostatnio edytowany przez stepien86 (2013-02-08 14:58:30)
Offline
Witam
Ja u siebie wykorzystuje aliasy, które wskazują na odpowiedni katalog użytkownika. Aliasy mam w katalogu:
/etc/apache2/conf.d
Podam Ci przykład jednego z nich:
Nazwa pliku: --------------------------- alias-user1 Zawartość: --------------------------- Alias /user1 /home/ftp/user1/public_html <Directory /home/ftp/user1/public_html> Options Indexes FollowSymLinks AllowOwerride None #zmieniamy na All, gdy ma działać modrewrite Order allow,deny allow from all </Directory>
Jak podam teraz nazwę: www.strona.pl/user1, to wczytywana jest strona z katalogu user1.
Offline
lulus81 - dziękuję za odpowiedź - fakt rozwiązanie jest, które działa, które aktualnie będę wykorzystywał, ale zastanawiam się jak to jest w przypadku firm hostingowych - Wydaje mi się, że lepiej trzymać userów w bazie, niż zakładać konto jako uzytkownik systemowy ale bez możliwości logowania się poprzez ssh.
Djjanek widziałem, że miałeś podobny problem ale udalo Ci się wdrożyć mod_mysql_userdir mogę liczyć na Twoją pomoc?
Offline
Ja u siebie wykorzystuję FTP-a vsFTPd i użytkowników właśnie mam w bazie danych mysql, nie w systemie. Im tylko tworzę w systemie katalog, na który mogą wchodzić i umieszczać swoje pliki.
Przez SSH nikt, poza specjalnie utworzonym użytkownikiem systemowym, nie może się logować.
Klienci mogą się logować tylko przez jakiegoś klienta FTP, np. Total Commandera.
Zastanawiałem się kiedyś nad użyciem PureFTPd, ale po analizie bezpieczeństwa i opinii różnych użytkowników, wyszło na to, że jednym z najbezpieczniejszych FTP-ów jest vsFTPd i nie żałuję wyboru. Wszystko ładnie śmiga i dość prosto się konfiguruje.
Polecam fajne HOWTO, na którym się opierałem -> http://www.howtoforge.com/virtual-hosting-with-vsft … ebian-squeeze
Offline
Witam, to prawie tak samo jak u mnie z tym, że ja używam pureFTPd. lulus81 można ustawić tak aliasy by automatycznie po stworzeniu katalogu public_html w katalogu usera mozna by wystawic jego strone na swiat: www.strona.pl/user1 ( bez konieczności tworzenia kolejnego pliku alias-userX )
Ostatnio edytowany przez stepien86 (2013-02-10 14:23:39)
Offline