Instalacja oprogramowania przeprowadzona została wg. poniższych wskazówek pomyślnie na dystrybucjach : debian sarge oraz slackware 10.0
znak : # - oznacza iż polecenie wykonywane było jako użytkownik root.
użytkownik [user] : oznacza zwykłego użytkownika - nie mającego praw root'a. Użytkownika takiego możemy stworzyć poprzez wykonanie jako root następującego polecenia :
Cytat:
# adduser
i odpowiedzeniu na wyświetlane pod konsolą pytania takie jak : nazwa użytkownika, hasło itp.
jeżeli nie chcemy aby dostęp do mysql był rónież z zewnątrz ( poza localhost ) w /etc/my.cnf dokonujemy małych modyfikacji, dopisujemy w sekcji [mysqld] :
# su - c [user]
# wget http://www.openssl.org/so...l-0.9.7g.tar.gz
# exit
# tar -zxvf openssl-0.9.7g.tar.gz
# cd openssl-0.9.7
# ./config --prefix=/usr/local/ssl
# make
# make install
po zainstalowaniu SSL'a zabieramy się za naszego apache2 :
Cytat:
# tar -zxvf httpd-2.0.54.tar.gz
# cd httpd-2.0.54
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-modules=rewrite --enable-shared=rewrite --enable-ssl --enable-rewrite
# make
# make install
po zainstalowaniu serwera apache2, zaczynamy zabawę z naszym httpd.conf, w tym celu zaprzęgamy do roboty nasz ulubiony edytor tekstu, u mnie był to debianowy nano, ale modyfikacji można równie dobrze dokonywać z poziomu edycji w MC ( midnight commander ). Poniżej załączam opis - jak powinny wyglądać odpowiednie linijki w httpd.conf
teraz należy jeszcze co niego zmodyfikować plik : /usr/local/apache2/conf/ssl.conf i zahashować co poniektóre linijki, ponieważ obsługe virtualhosta z SSL ustawiać będziemy w httpd.conf
jak rownież dołożymy odpowiednią linijke do rc.local lub naszego debianowego skryptu initialization aby po restarcie maszyny serwer został zainicjowany :
Cytat:
=> dla slackware :
# echo '/usr/local/apache2/bin/apachectl startssl' >> /etc/rc.d/rc.local
=> dla debian'a :
# echo '/usr/local/apache2/bin/apachectl startssl' >> /etc/init.d/initialization
oraz co się tyczy stricto Debiana : o ile nie zrobiliśmy już tego wcześniej aby nasz skrypt startowy wogóle był skryptem startowym systemu, wywołać musimy następującą komende :
Cytat:
# update-rc.d /etc/init.d/initialization defaults
Zainstalowaliśmy wcześniej openssl'a tak więc teraz kiedy mamy rownież zainstalowany serwer www, damy mu możliwość współpracy z SSL.
generujemy główny certyfikat dla naszego serwera :
Cytat:
# openssl genrsa -des3 -out server.key 1024
:roll2: pamietaj jakie ustawiasz hasło dla certyfikatu
usuwamy haslo z klucza aby umożliwić automatyczny start apache2
Cytat:
# openssl rsa -in server.key -out server.pem
:roll2: podajemy to samo hasło które wpisaliśmy podczas generowania certyfikatu
wypełniamy pola : country, state, city
w momencie kiedy zostaniemy zapytani o 'organization unit' zostawiamy to pole puste [ enter ]
pole common name - w nim powinniśmy podać albo adres ip naszego serwera albo jego domene, zalecam domene. pola 'a challenge password' nie musimy wypełniać.
generujemy tzw. self-signed certificate - certyfikat podpisany 'przez siebie' (podajemy takie samo hasło jakie podawalismy podczas generowania server.pem )
Aby nasz mod_rewrite z którym skompilowaliśmy apache2 funkcjonował poprawnie należy w httpd.conf dokonać następujących modyfikacji :
Wyedytujemy httpd.conf w okolicach linijki 335 zaraz pod DocumentRoot "/home/www", struktura musi być następująca jeżeli chcemy mieć możliwość korzystania z mod_rewrite z poziomu .htaccess
<Directory "/home/www">
Options Indexes FollowSymLinks
AllowOverride FileInfo
Order allow,deny
Allow from all
</Directory>
W dowolnym miejscu w httpd.conf dorzucamy jeszcze następujące linijeczki :
httpd.conf napisał/a:
# mod_rewrite support
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "/usr/local/apache2/logs/rewrite.log"
RewriteLogLevel 9
</IfModule>
Aby przetestować czy mod_rewrite działa poprawnie, należy do katalogu dla VirtualHosta, którego sobie utworzymy wprowadzić plik .htaccess o następującej zawartości :
.htaccess napisał/a:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^.*$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/ [R]
Dzięki dobrodziejstwu .htaccess i mod_rewrite po wejściu na url, dla którego DocumentRoot wskazuje na katalog zawierający .htaccess z powyższą zawartością zostaniemy przekierowani na adres www.domain.com
2.2 obsługa CGI
Aby mieć możliwość uruchamiania na naszej maszynie skryptów perl'a ( .cgi .pl ) należy w pliku konfiguracyjnym httpd.conf dokonać paru małych modyfikacji :
oraz określamy w jakich katalogach maja być parsowane pliki .cgi oraz .pl - jako skrypty CGI, w naszym przypadku wszystkie katalogi cgi-bin we wszystkich podkatalogach * w katalogu /home/www
<Directory "/home/www/*/cgi-bin">
Options +ExecCGI
</Directory>
Teraz sprawdźmy czy nasze skrypty CGI aby napewno działają poprawnie, otwieramy nasz ulubiony edytorek i wpisujemy :
Cytat:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, Im a CGI script and Im gonna print You some environment variables to make You belive that Im working fine \n";
print "<br><br>";
Nasz kod zapisujemy jako plik .cgi lub .pl w miejscu w którym nadaliśmy mozliwość parsowania plików jako skrypty CGI.
Następnie nadajemy odpowiednie prawa dla pliku :
teraz sprawdzamy już tylko w przeglądarce czy wszystko działa poprawnie podając w url'u scieżkę do naszego skryptu cgi
np. : http://nasze_ip/cgi-bin/skrypt.cgi.
Jeżeli wszystko działa poprawnie w przeglądarce powinno pokazać się co nieco zmiennych środowiskowych
instalacja tych elementów to prawie zawsze samo :
./configure + make + make install
ale przed wykonaniem powyższego należy się upewnić wydając polecenie ./configure --help
Pamiętać również należy o tym aby nasz pliczek /etc/ld.so.conf zawierał w sobie między innymi :
Cytat:
/lib
/usr/lib
/usr/local/lib
/usr/local/ssl/lib
co sprawi iż aplikacje które będziemy instalować ( nie tylko to co tutaj w tym tutorialu ale też cokolwiek innego kiedykolwiek ) będą posiadać informacje na temat środowiska bibliotek naszego systemu - krócej - plik ld.so.conf zawiera informacje dla środowiska bibliotek systemu w jakich katalogach leżą biblioteki które należy uwzględnić - po dopisaniu powyższych linijek do ld.so.conf wydajemy polecenie # ldconfig
wszystko w jednej linijce ! u mnie wyglądało to tak : ( jeżeli na serwerze macie zainstalowanego jakiegoś MTA ( mail transport agent ) z obsługą imap'u to do poniższego configure dołączyć możecie --with-imap --with-imap-ssl
teraz zapewne jako iż instalowaliśmy php4 jako moduł do apache2 w pliku : /usr/local/apache2/conf/httpd.conf - powinna znajdować się linijka odpowiedzialna za załadowanie modułu :
LoadModule php4_module modules/libphp4.so
do httpd.conf dorzucamy jeszcze samą obsługę parsowania php - ponieważ samo załadowanie modułu nie wystarcza, tak więc dopisujemy np. pod LoadModule php4_module modules/libphp4.so linijki :
Cytat:
dopisujemy do DirectoryIndex : index.php index.php4
oraz powiedzmy pod LoadModule php4_module :
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
teraz skoro mamy już obsługę php4, sprawdźmy czy działa ona poprawnie :
wywołujemy w przeglądarce plik phpinfo.php i naszym oczom powinna się ukazać ładna informacja na temat php4
2.4 obsługa php5
obsługę php5 w tym przypadku zamontujemy jako CGI. kwestia dwóch wersji php jako modułów na jednym porcie bez żadnych ProxyPass'ów itp itd. jest dla mnie kwestią ciężką do przegryzienia jak narazie, no ale może poprostu porzebuje troche więcej czasu, jeżeli uda mi się to zrobić, zamieszczę poprawke w tutorialu, a jeżli udało się komuś z Was to zrobić i macie jakieś konkretne i też zaraz proste rozwiązanie - napiszcie do mnie PW, przeczytam, potestuję i jeżeli faktycznie będzie wszystko ok, wprowadzę poprawkę do tego tutka
ściągamy źródła, rozpakowywujemy i instalujemy na pokładzie php5 jako CGI
Cytat:
# apache2 stop
# su - c [user]
# wget http://pl.php.net/distributions/php-5.0.4.tar.gz
# tar -zxvf php-5.0.4.tar.gz
# cd php-5.0.4
configure u mnie wyglądało tak, ale to czego obsługa ma być zainstalowana to już wiadomo - jak komu pasuje
tak jak ostatnim razem - jeżeli na naszym systemie posiadamy oprogramowanie pozwalające na dołączenie funkcji --with-imap --with-imap-ssl, dołączamy je
# ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5 --sysconfdir=/usr/local/php5 --with-mysql=/usr/local/mysql --with-zlib --with-bzip --with-gd --enable-force-cgi-redirect --enable-bcmath --enable-calendar --enable-ctype --enable-dbase --enable-discard-path --enable-exif --enable-filepro --enable-ftp --enable-gd-imgstrttf --enable-gd-native-ttf --enable-inline-optimization --enable-mbstr-enc-trans --enable-mbstring --enable-mbregex --enable-track-vars --enable-versioning --enable-wddx --enable-bz2 --with-dom=/usr/include/libxml2 --with-ftp --with-gettext --with-gmp --with-jpeg-dir=/usr/local --with-mcal=/usr/include --with-mcrypt --with-mhash --with-png-dir=/usr/lib --with-iconv --with-ncurses --with-xml --with-xslt-sablot=/usr/lib --enable-xslt --with-kerberos --enable-fastcgi --with-openssl=/usr/local/ssl --with-tiff-dir=/usr/local --with-curl
# make
# make install
teraz musimy wyedytować ponownie /usr/local/apache2/conf/httpd.conf i dorzucamy do niego taki wpis :
Cytat:
AddType application/x-httpd-php5 .php5
ScriptAlias /php/ "/usr/local/php5/bin/"
Action application/x-httpd-php5 "/php/php"
oraz oczywiście do DirectoryIndex dorzucamy index.php5
następnie pozostaje już tylko start apache2 ( # apache2 startssl ) i utworzenie pliku w /home/www/localhost/phpinfo.php5 z zawartością <? phpinfo(); ?>
warto mieć również na względzie pliki php.ini i dyrektywe : disable_functions która u mnie zawiera następującą zawartość :
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum