Skocz do zawartości
Merlin

Apache2+PHP5-FCGI + SuExec + SFTP...

Polecane posty

Witam,
mam taki problem i szukam jasnej jednoznaczniej (p)odpowiedzi, a niestety w tutorialach dotyczących konfiguracji nie do końca udało mi się ją znaleźć.
Nie koniecznie chodzi mi o gotowca (choć pewnie by znacznie przyspieszył rozwiązanie moich problemów)
tylko o wskazówki przy samodzielnym skonfigurowaniu i zrozumieniu gdzie obecnie jest błąd i dlaczego ;) Jakieś naprowadzenie czego powinienem szukać i gdzie.
Założenie jest takie:
  • serwer z pełną obsługą htaccess i php5 i indywidualny plik php.ini dla każdego vhosta
  • dostep do vhostów/domen każdy z poziomu innego użytkownika.
  • ma być możliwie wydajny i bezpieczny.
  • docelowo obsługa też memcached
  • docelowo obsługa kilku stron www
By to zrealizować póki co w środowisku maszyny wirtualnej (symulacja VPSa) z lokalnym serwerem nazw uruchomiłem:
  • Debian7 + apache2.2 z PHP-FCGI + SuExec
  • dostęp do plików tylko po SSH i SFTP
Znalazłem w sieci kilka tutoriali, na bazie których uruchomiłem apache i kilka vhostów, ale nie jestem zadowolony z efektów.
Efektem końcowym moich działań jest to, że na vhoście można zainstalować np. WordPressa, ale przy uploadowaniu jakiegoś pliku przy pomocy przeglądarki otrzymuję info, że nie mam wystarczających uprawnień do zapisu (np. dodając media w WP, albo aktualizując pluginy).
Logując się jako użytkownik-właścicel vhosta muszę zmienić uprawnienia do folderów i jedynie prawa 777 dają możliwość zapisu do folderu dla operacji prowadzonych przez przeglądarkę. No a wiadomo 777 nie należą do najbezpieczniejszych w tym przypadku.

Chciałbym docelowo osiągnąć sytuację w której problem z niewłaściwymi uprawnieniami do plików i folderów nie występuje. No i ciekawi mnie jak powinna wyglądać konfiguracja apache, by tak, jak to widać na niektórych hostingach, folder cgi-bin, czy fcgi był pusty a zarazem skrypty PHP były wykonywane jako FCGI. No i przede wszystkim jak wykonać taką konfigurację by zachować możliwie wysokie bezpieczeństwo serwera przy zachowaniu wysokiej wydajności.
Docelowo chcę tę konfigurację przenieść na dość wydajnego VPSa, ale wiadomo najpierw dopracować w lokalnym środowisku.
To jest pierwsza część problemu.

Druga to właściwa konfiguracja dostępu SFTP.
Chciałbym by dla użytkownika logującego się do swojego folderu domowego (w którym np. są foldery strony strony www), folder ten był najwyższym folderem do którego ma dostęp. Czyli by z poziomu właściciela vhosta nie było możliwości przejścia do / czy np. /etc lub by nie było możliwości podejrzenia zawartości tych folderów nie mówiąc już o możliwości ich modyfikacji.

Teraz może troszkę o tym jak dokładnie wygląda obecnie konfiguracja.
Z tego co widzę, główny proces apache2 domyślnie uruchomiony jest przez użytkownika www-data
Na potrzeby vhostów utworzyłem kilka grup i kilku użytkowników: u1, g1 i u2, g2
Vhosty są skonfigurowane według schematu:

<VirtualHost *:80>
SuexecUserGroup u1 g1
<Location /fcgi/php5>
SetHandler fastcgi-script
Options +ExecCGI
</Location>
<Directory /var/www/domena.pl/htdocs/fcgi >
Options FollowSymLinks
AllowOverride None
# Options None
Order allow,deny
Allow from all
</Directory>
AddHandler php5-fastcgi .php
Action php5-fastcgi /fcgi/php5
AddType application/x-httpd-php .php
DocumentRoot /var/www/domena.pl/htdocs/
ServerName domena.pl
ErrorLog ${APACHE_LOG_DIR}/domena.pl-error_log
CustomLog ${APACHE_LOG_DIR}/domena.pl-access_log common
</VirtualHost>

W pliku /etc/apache2/suexec/www-data
/var/www
htdocs/fcgi
W strukturze plików vhosta jest htdocs/fcgi/php5
z zawartością:
#!/bin/sh
export PHP_FCGI_CHILDREN=4
export PHP_FCGI_MAX_REQUESTS=200
export PHPRC="/var/www/domena.pl/php.ini"
exec /usr/bin/php5-cgi
Macie może jakieś sugestie, czy konkretne wskazówki co zmienić? Jak wyglądają Wasze konfiguracje
Z góry dzięki za sugestie, pomoc i w ogóle :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×