Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [linux]APACHE2+SSL+MOD_REWRITE+CGI +PHP4+PHP5+MySQ
Forum PHP.pl > Forum > Serwery WWW > Apache
Stron: 1, 2
Fo
Chwila wolnego w robocie, fajeczka, kaweczka i pisze teraz to co chiałem od jakiegoś czasu dla forumowiczów napisać smile.gif

Niniejszy tutorial zaznaczam iż piszę :

=> aby początkującym użytkownikom linux'a pomóc.
=> aby od osób które znają się na serwerach i montażu oprogramowania usłyszeć - lepsze propozycje dotyczące instalacji niżej opisanego oprogramowania, aby więcej się nauczyć i jednocześnie sprawdzić czy ja sam nie zrobiłem tutaj gdzieś niedociągnięć.

słowo wstępu :

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 :

[quote]# adduser[/quote]

i odpowiedzeniu na wyświetlane pod konsolą pytania takie jak : nazwa użytkownika, hasło itp.

tongue.gif 1. instalacja bazy danych MySQL
=> źródła : http://dev.mysql.com/downloads/mysql/4.0.html
==> instalowana wersja przez mnie : http://dev.mysql.com/get/Downloads/MySQL-4...om/pick#mirrors
=> dokumentacja : http://dev.mysql.com/doc/

pierwszym krokiem będzie pobranie źródeł oraz dodanie grupy i użytkownika systemowego pod którym uruchamiany jest serwer baz danych MySQL

[quote]# su - c [user]
# wget http://sunsite.icm.edu.pl/mysql/Downloads/...l-4.0.24.tar.gz
# exit

# groupadd mysql
# useradd -g mysql mysql
[/quote]

następnie rozpakowywujemy pobrane źródła:

[quote]# tar -zxvf mysql-4.0.24.tar.gz[/quote]

przechodzimy do katalogu do którego ów źródła zostały rozpakowane i przystępujemy do procesu kompilacji:

[quote]# cd mysql-4.0.24
# ./configure --prefix=/usr/local/mysql --with-charset=latin2
# make
# make install
[/quote]

po pomyślnej instalacji bazy danych, musimy zainstalować jeszcze bazę danych mysql - bez której nasz mysql nie będzie poprawnie funkcjonować :

[quote]# ./scripts/mysql_install_db[/quote]

po zainstalowaniu się w katalog /usr/local/mysql/var bazy mysql zmieniamy właściciela i grupę katalogu w którym egzystuje mysql :

[quote]# chown -R mysql /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
[/quote]

dzięki temu zabiegowi nasz serwer baz danych będzie uruchamiany z prawami normalnego użytkownika ( mysql ).

następnie do katalogu, który określiliśmy przy kompilacji parametrem --sysconfdir kopiujemy plik my.cnf

[quote]# cp ./support-files/my-medium.cnf /etc/my.cnf [/quote]

uruchamiamy serwer mysql :

[quote]# /usr/local/mysql/bin/mysqld_safe &[/quote]

i sprawdzamy czy rzeczywiście zaczął on funkcjonować :

[quote]# /usr/local/mysql/bin/mysqladmin ping [/quote]
powinna zostać wyświetlona następująca informacja :
[quote]# mysqld is alive[/quote]

zdefiniujemy teraz hasło do naszego serwera mysql tak aby nie pozostał on otwarty :

[quote]# /usr/local/mysql/bin/mysqladmin -u root password nasze_hasło[/quote]

aby uprościć sobie dostęp do najważniejszych narzędzi, utworzymy do nich symboliczne dowiązania :

[quote]# ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin/mysql.admin
# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql.console
[/quote]

zobaczmy jeszcze czy aby napewno do naszego serwera nie można się dostać bez hasła :

[quote]# mysql.console
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)[/quote]

tak więc bez hasła nikt na root'a mysql się nie dostanie, sprawdźmy jeszcze tylko czy my możemy się do niego dostać :

[quote]# mysql.console -u root -p
Enter password : *****

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13 to server version: 4.0.23a-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
# exit [/quote]

aby nasz serwer mysql po restarcie maszyny został uruchomiony dokładamy odpowiedni wpis :

[quote]=> dla slackware :
# echo '/usr/local/mysql/bin/mysqld_safe &' >> /etc/rc.d/rc.local

=> dla debian'a :
# touch /etc/init.d/initialization
# echo '/usr/local/mysql/bin/mysqld_safe &' >> /etc/init.d/initialization[/quote]

jeżeli nie chcemy aby dostęp do mysql był rónież z zewnątrz ( poza localhost ) w [B]/etc/my.cnf
dokonujemy małych modyfikacji, dopisujemy w sekcji [mysqld] :

[quote="/etc/my.cnf"][mysqld]
bind-address = 127.0.0.1[/quote]

koniec instalacji MySQL.

biggrin.gif 2. instalacja serwera www - apache2
=> źródła : http://httpd.apache.org/download.cgi
==> instalowana przeze mnie wersja : http://www.apache.net.pl/httpd/httpd-2.0.54.tar.gz
=> dokumentacja : http://httpd.apache.org/docs-2.0/

apache2 instalować będziemy z obsługą SSL'a - tak więc pobieramy dotknięciem się do źródeł apache2, instalujemy najnowszą wersję OpenSSL

=> źródła : http://www.openssl.org/source/
==> instalowana przeze mnie wersja : http://www.openssl.org/source/openssl-0.9.7g.tar.gz
=> dokumentacja : http://www.openssl.org/docs/

[quote]# su - c [user]
# wget http://www.openssl.org/source/openssl-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
[/quote]

po zainstalowaniu SSL'a zabieramy się za naszego apache2 :

[quote]# 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
[/quote]

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

[quote="/usr/local/apache2/conf/httpd.conf"]"ServerRoot /usr/local/apache2"
Listen nasze_ip:80
Listen nasze_ip:443

ServerName nasze_ip

DocumentRoot "/home/www"
- powiedzmy że takie

<Directory "/home/www">
Options Indexes FollowSymLinks
....
</Directory>

DirectoryIndex index.html index.htm

AddDefaultCharset ISO-8859-2
( tej linijki w httpd.conf nie znajdziemy, trzeba ją dopisać )

NameVirtualHost nasze_ip:80
NameVirtualHost nasze_ip:443


[sekcja virtualhost - przykładowy nowy Vhost bez obslugi SSL]

<VirtualHost nasze_ip:80>
ServerAdmin admin@space
DocumentRoot /home/www/localhost
ServerName nasze_ip
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common
</VirtualHost>


[przykładowy nowy Vhost z obsługą SSL]

<VirtualHost nasze_ip:443>
DocumentRoot /home/www/localhost
ServerName nasze_ip:443
ServerAdmin root@space
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
SetEnvIf User-Agent "."MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
[/quote]

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 smile.gif

[quote]#Listen 443
#<VirtualHost _default_:443>
#   General setup for the virtual host
#DocumentRoot "/home/www/"
#ServerName nasze_ip:443
#ServerAdmin root@space
#ErrorLog /usr/local/apache2/logs/error_log
#TransferLog /usr/local/apache2/logs/access_log
#SSLEngine on
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
#SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
#SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
#<Files ~ "\.(cgi|shtml|phtml|php3?)$">
#    SSLOptions +StdEnvVars
#</Files>
#<Directory "/usr/local/apache2/cgi-bin">
#    SSLOptions +StdEnvVars
#</Directory>
#SetEnvIf User-Agent ".*MSIE.*" \
#         nokeepalive ssl-unclean-shutdown \
#         downgrade-1.0 force-response-1.0
#</VirtualHost>
[/quote]

ok modyfikacji dość, teraz zrobimy sobie dla wygody linka do apachectl

[quote]# ln -s /usr/local/apache2/bin/apachectl /usr/local/bin/apache2[/quote]

jak rownież dołożymy odpowiednią linijke do rc.local lub naszego debianowego skryptu initialization aby po restarcie maszyny serwer został zainicjowany :

[quote]=> 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[/quote]

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 :

[quote]# update-rc.d /etc/init.d/initialization defaults [/quote]

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 :
[quote]# openssl genrsa -des3 -out server.key 1024[/quote]

:roll2: pamietaj jakie ustawiasz hasło dla certyfikatu

usuwamy haslo z klucza aby umożliwić automatyczny start apache2
[quote]# openssl rsa -in server.key -out server.pem[/quote]

:roll2: podajemy to samo hasło które wpisaliśmy podczas generowania certyfikatu

generujemy podpis certyfikatu
[quote]# openssl req -new -key server.pem -out server.csr[/quote]

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 )
[quote]# openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt[/quote]

ok, kiedy wszystko już mamy przygotowane, zabieramy sie do instalacji naszego prywatnego klucza oraz certyfikatu do apache2 :

[quote]# mkdir /usr/local/apache2/conf/ssl.crt
# cp server.crt /usr/local/apache2/conf/ssl.crt/server.crt

# mkdir /usr/local/apache2/conf/ssl.key
# cp server.pem /usr/local/apache2/conf/ssl.key/server.key
[/quote]

kiedy wszystko już praktycznie jest gotowe, sprawdzamy czy nie mamy jakichś błędów w httpd.conf :

[quote]# apache2 -t
Syntax OK
[/quote]

jeżeli wszystko jest ok, włączamy naszego apache2 z obsługą SSL
[quote]# apache2 startssl[/quote]

spojrzmy dla pewnosci w procesy i wywolajmy url w przegladarce aby mieć pewność że serwer pracuje prawidłowo.

w procesach widnieć powinno kilka pozycji podobnych do poniższej :
[quote]nobody   14682  0.0  1.0 15296 5168 ?        S    09:05   0:00 /usr/local/apache2/bin/httpd -k start -DSSL [/quote]

:roll2: 2.1 obsługa mod_rewrite

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

[quote="httpd.conf"]<Directory />
Options FollowSymLinks
AllowOverride FileInfo
</Directory>[/quote]

kawałek dalej :

[quote="httpd.conf"]<Directory "/home/www">
Options Indexes FollowSymLinks
AllowOverride FileInfo
Order allow,deny
Allow from all
</Directory>[/quote]

W dowolnym miejscu w httpd.conf dorzucamy jeszcze następujące linijeczki :

[quote="httpd.conf"]# mod_rewrite support

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "/usr/local/apache2/logs/rewrite.log"
RewriteLogLevel 9
</IfModule>[/quote]

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 :

[quote=".htaccess"]RewriteEngine On
RewriteCond %{HTTP_HOST} ^.*$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/ [R][/quote]

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

blink.gif 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 :

[quote="/usr/local/apache2/conf/httpd.conf"]modyfikujemy linijke DirectoryIndex
DirectoryIndex index.html index.htm index.cgi index.pl

dodajemy linijeczke :
AddHandler cgi-script .cgi .pl

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>
[/quote]

Teraz sprawdźmy czy nasze skrypty CGI aby napewno działają poprawnie, otwieramy nasz ulubiony edytorek i wpisujemy :

[quote]#!/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 smile.gif \n";
print "<br><br>";

foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}
[/quote]


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 :

[quote]# chmod 755 /home/www/localhost/cgi-bin/skrypt.cgi
# chmod +x /home/www/localhost/cgi-bin/skrypt.cgi
[/quote]

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 smile.gif

cool.gif 2.3 obsługa php4

=> źródła : http://www.php.net/downloads.php
==> instalowana przez mnie wersja : http://pl.php.net/distributions/php-4.3.11.tar.gz
=> dokumentacja : http://pl.php.net/manual/pl/

zatrzymujemy serwer apache :

[quote]# apache2 stop[/quote]

następnie pobieramy źródła, rozpakowywujemy je i przystępujemy do kompilacji.
php4 zainstalujemy jako moduł dla apache2

moja instalacja php4 była non-standard - tak więc doinstalowałem wcześniej rzeczy takie jak :

Zlib 1.2.2 - http://prdownloads.sourceforge.net/libpng/...tar.gz?download
curl 7.13.1 - http://curl.haxx.se/download.html
gd 2.0.33 - http://www.boutell.com/gd/
libmcrypt 2.5.7 - http://sourceforge.net/project/showfiles.p...lease_id=178782
mcrypt 2.6.4 - http://sourceforge.net/project/showfiles.p...lease_id=178780
mhash 0.9.2 - http://sourceforge.net/project/showfiles.php?group_id=4286
libiconv 1.9.2 - ftp://ftp.gnu.org/gnu/libiconv/
libjpeg-6b - http://site.n.ml.org/info/libjpeg/
libtiff 3.7.1 - http://dl.maptools.org/dl/libtiff/

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 :

[quote]/lib
/usr/lib
/usr/local/lib
/usr/local/ssl/lib
[/quote]

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

[quote]# su -c [user]
# wget http://pl.php.net/distributions/php-4.3.11.tar.gz
# exit
# tar -zxvf php-4.3.11.tar.gz
# cd php-4.3.11.tar.gz

aarambo.gif wszystko w jednej linijce ! u mnie wyglądało to tak : ( exclamation.gif 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

# ./configure --prefix=/usr/local/php4 --with-config-file-path=/usr/local/php4 --sysconfdir=/usr/local/php4 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl --enable-discard-path --enable-debug --enable-track-vars --enable-versioning --with-openssl=/usr/local/ssl --with-xml --enable-bcmath --with-bz2 --enable-calendar --with-jpeg-dir=/usr/local --with-png-dir=/usr/lib --with-tiff-dir=/usr/local --with-ttf=/usr/lib --with-curl --with-db --with-dbase --with-pear --enable-exif --enable-ftp --with-gettext --with-iconv --with-iconv-dir=/usr/local --enable-mbstring --with-mcrypt --with-mhash --with-zlib --with-gd --with-gd-native-ttf --with-xslt-sablot=/usr/lib --enable-xslt --enable-wddx --with-kerberos --with-ncurses

# make
# make install
[/quote]

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 :

[quote]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
[/quote]

teraz skoro mamy już obsługę php4, sprawdźmy czy działa ona poprawnie :

[quote]# apache2 startssl
# touch /home/www/localhost/phpinfo.php
# echo '<? phpinfo(); ?>' >> /home/www/localhost/phpinfo.php
[/quote]

wywołujemy w przeglądarce plik phpinfo.php i naszym oczom powinna się ukazać ładna informacja na temat php4 smile.gif

winksmiley.jpg 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 winksmiley.jpg

=> źródła : http://pl.php.net/downloads.php
==> instalowana przeze mnie wersja : http://pl.php.net/distributions/php-5.0.4.tar.gz
=> dokumentacja : http://pl.php.net/manual/pl/

ściągamy źródła, rozpakowywujemy i instalujemy na pokładzie php5 jako CGI

[quote]# 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 smile.gif
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 smile.gif
# ./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
[/quote]

teraz musimy wyedytować ponownie /usr/local/apache2/conf/httpd.conf i dorzucamy do niego taki wpis :

[quote]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[/quote]


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ść :

[quote]disable_functions = shell_exec, system, passthru, escapeshellcmd, escapeshellarg[/quote]

tak więc wypada na to że to już wszystko smile.gif
Teraz na naszej maszynie powinno sprawnie funkcjonować :
Apache2+SSL+CGI+PHP4+PHP5+MySQL-4.0

pisząc ten mini tutorial, jeszcze raz podkreślam, że chodziło mi o :
- pomoc początkowym użytkownikom linuxa w instalacji w/w oprogramowania
- słowo krytyki konstruktywnej w moją stronę odnośnie tego co i jak tutaj zostało opisane. Wiadomo - ja również uczyłem się sam lub z tego podobnych artykółów i cały czas swoją widzę rozwijam i chcę rozwijać - dlatego nie boje się słów krytyki winksmiley.jpg z chęcią wysłucham wskazówek i wprowadzę poprawki do tego artykułu.

ps. nie ma tutaj wiadomo : co zrobić jeśli nie działa mi ..... i pisze .... ale jeżeli coś nie funkcjonuje poprawnie to proponuje napisać co i jak ( opis problemu ) a ja dołącze do tego tematu możliwe rozwiązanie o ile będe wiedział w czym problem a jeżeli nie będe wiedział to mam nadzieje że dojdziemy do rozwiązania wspólnie na forum Serwery www => Apache smile.gif

pozdrawiam,
Artur Kwiatkowski alias Fo
dr_bonzo
Kod
# ln -s /usr/local/apache2/bin/apachectl /usr/local/apache2

/usr/local/apache2/bin/apachectl
/usr/local/apache2


linkujesz plik pod istniejacy katalog?

moze chodzilo o
Kod
# ln -s /usr/local/apache2/bin/apachectl /usr/local/bin/apache2

?
Fo
aaa racja racja, musiałem się nieco zamieszać, już poprawiam.
DeyV
przylejam temat, choć zastanawiam się , czy tego typu arty nie lepiej byłoby publikowac na wiki.
dr_bonzo
@deyv: dopracujemy go i bedzie mozna przeniesc / umiescic na wiki
DeyV
ale nie sądzisz, że to co mówisz jest nieco nielogiczne?
Czy nie łatwiej jest "dopracowywać" jakikolwiek materiał na wiki, gdzie w każdej chwili możesz poprawić jakieś błędy, niż wymieniać je i rozmawiać na ten temat na forum.
dr_bonzo
Ok, zgadza sie -- mam za male doswiadczenie z wiki. Myslalem o tym zeby wrzucic na wiki juz gotowy i w pelni sprawny artykul smile.gif
Fo
mhm, jasne, wsadzmy to na wiki ( o ile jeszcze to tam nie trafilo smile.gif ) - fakt - duzo prosciej bedzie ten artykul rozwijac wlasnie tam smile.gif

pozdrawiam,
Fo
Fo
extra, dzieki bardzo bakus, ale na wiki brakuje łamania linii i sie sajt rozjeżdża tongue.gif cool.gif
dr_bonzo
Bo to jest <pre> i lamie linie dopiero po enterze lub <br />. Mozna by sprobowac dac zwyklego spana/diva z fontem monospace.
Bakus
temat wiki jest juz poruszony w innym wątku na forum, a temat artu można przedyskutować w:
http://wiki.php.pl/index.php?title=Dyskusj...QL_pod_Linuksem
bmoll
Witam, to moje pierwsze logowane wejscie na forum.

Nie znam sie na sprawach linuksowo-serwerowych, ale mysle, ze warto wspomniec o koniecznosci posiadania zainstalowanego flexa (http://sourceforge.net/project/showfiles.php?group_id=72099) zanim zabierze sie do configure php.

To tak z moich obserwacji (kiedy korzystalem z tego poradnika - duze dzieki za niego).

Pozdrawiam.
Radarek
Hm a co ma piernik do wiatraka? Po kiego flex?
Fo
chyba jak się montuje z obsługą mcrypta albo mhasha - już nie pamiętam niestety ...

Cytat("flex")
flex is a tool for generating programs that recognize patterns in text. Pattern recognition is useful in many applications. From a set of rules on what to look for flex makes a program that looks for those patterns. The reason to use flex is that it is much easier to specify the rules for than to write the actual pattern-finding program.
tedew
witam

bardzo dobry opis smile.gif

pojawił mi się problme podczas instalacji Mysql , a dokładnie z tym aby startował po restarcie sad.gif nie wiem dlaczego nie chce się podnieść
mam w pliku rc.local taki wpis:

Kod
/usr/local/src/mysql/bin/mysqld_safe &


wywala coś ze nie moze znaleść mysqld - jakby nie brało pod uwagę dalszej częsci od
_safe

jak przejde do /usr/local/src/mysql/ i wpisze
Kod
./bin/mysqld_safe &


to działa


questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?

wszytsko robione jest na Slackware 9.1

pozdr.
dr_bonzo
Cytat
Jak przejde do /usr/local/src/mysql/ i wpisze

Bo tak sie powinno robic wg. instrukcji instalacyjnej.
tedew
witam:)

@dr_bonzo

oki , wiem że tak trzeba - ale czy nie można tego jakoś zrobić żeby było AUTOSTART questionmark.gif

pozdr.
dr_bonzo
smile.gif
Rozwiazanie jest TRYWIALNE, wlasciwie to na nie wpadles:
w rc.local
dopisz
cd /usr/local/src/mysql/
przed
./bin/mysqld_safe &

LOL?
Marcin_m
No niestety, mi wyskoczyło pare błedów w przypadku tej instalacji, może to kwestia tego że pracuje na Mandriva Le (czyli Mandrake 10.2)... w każdym razie, po skonfiguorwaniu mysql, wywala bład przy próbie łączenia, że brakuje mu gniazda (socket cośtam), postanowiłem sie tym nie przejmować, ponieważ instaluje sobie mysql z RPMa i wszystko jest ok. Gorzej jest za to z php5.4.0, gdzie już przy ./configure wywala błąd:

Kod
configure: warning: You will need bison if you want to regenerate the php parsers.
checking for flex... lex
checking for yywrap in -ll... no
checking lex output file root... ./configure: line 2422: lex: command not found
configure: error: cannot find output from lex; giving up


Może musze coś doinstalować (jak zawsze) ale kompletnie nie wiem co. Aha, mam pytanie, skoro już mam zainstalowane php4, apache2 i mysql4 , a wszystko to z wnętrza Madrivy (czyli RMPy) to czy musze konfigurować php5 --with-apache... --with-mysql itp ? Cholernie mi zależy aby zacząć powoli pracować na php5 , bo przecież trzeba skończyć dłubać w starej wersji...
Fo
niewiem jak sprawa wygląda na mandarynie ! szczerze nie wyznaje jakoś tej dystrybuji, kiedyś miałem z nią styczność i jakoś tak wypadło, że już później to tylko slackware lub debian winksmiley.jpg

ale odnośnie tego Twojego błędu to tam jak byk pisze, że będziesz potrzebował czegoś takiego jak bison ....

http://www.gnu.org/software/bison/bison.html#TOCdownloading

try it ya ! winksmiley.jpg

chociaż tak jak to czytam drugi raz to wypada na to że z flex'em masz jakiś błąd... poczytaj - na grupach dyskusyjnych google napewno coś powinno być albo w samym google to już napewno winksmiley.jpg

przemęczony bywam ... :/
Marcin_m
No, udało mi się skonfiguorwać, zrobić make i make install (oczywiście potrzebne były pliki bisona, flex i libxml2) Linki (jakby ktoś potrzebowałsmile.gif

Bisonbison
FLEXflex

libxml2 powinien być w pakietach (np. u mnie na Madrivie był).

Teraz tylko mam problem z odpalaniem skryptów, skopiowałem linijki do httpd.conf:

AddType application/x-httpd-php5 .php5
ScriptAlias /php/ "/usr/local/php5/bin/"
Action application/x-httpd-php5 "/php/php"

no i po odpaleniu skryptu pisze mi:
Kod
You don't have permission to access /php/php/ind.php5 on this server.


edit

Ponieważ nie potrafiłem sobie z tym proadzić zrobiłem tak (też wam tak zalecam). Normalnie zainstalowałem apache+php4 i dałem nasłuchiwanie na porcie 88, potem doinstalowałem XAMPPA i tam mam php5 i jest cacy.

XAMPP

Bardzo fajna sprawa. Aha, jakby ktoś nie wiedział, to aby odpalać na poszczególnych portach należy wpisywać http:\\localhost:88 lub http:\\localhost:80 (lub bez 80, bo to domyślny port).
templar_of_steel
witam sadsmiley02.gif
ja mam taki dziwny problem. skompilowalem wszystkie te rzeczy ktore wymieniliscie. zrobilem ./configure i super poszlo. wpisuje make, i teraz na poczatku zaczyna od errorow. tak to wyglada:
Kod
home/templar/Downloads/php/php-4.3.11/Zend -g -Wall -c /home/templar/Downloads/php/php-4.3.11/ext/iconv/iconv.c -o ext/iconv/iconv.lo
/home/templar/Downloads/php/php-4.3.11/ext/iconv/iconv.c: In function `zm_startup_miconv':
/home/templar/Downloads/php/php-4.3.11/ext/iconv/iconv.c:124: error: `_libiconv_version' undeclared (first use in this function)
/home/templar/Downloads/php/php-4.3.11/ext/iconv/iconv.c:124: error: (Each undeclared identifier is reported only once
/home/templar/Downloads/php/php-4.3.11/ext/iconv/iconv.c:124: error: for each function it appears in.)
/home/templar/Downloads/php/php-4.3.11/ext/iconv/iconv.c: In function `php_iconv_string':
/home/templar/Downloads/php/php-4.3.11/ext/iconv/iconv.c:267: warning: implicit declaration of function `libiconv'
make: *** [ext/iconv/iconv.lo] Błąd 1


pomozecie worriedsmiley.gif
Fo
Twoja biblioteka iconv może wymagać upgrade'u - sprawdź.
templar_of_steel
Cytat(Fo @ 2005-07-16 19:07:28)
Twoja biblioteka iconv może wymagać upgrade'u - sprawdź.

hmm. a jak to sprawdzic. zainstalowalem 1.9.2 guitar.gif

------------------------------------------------------------------------

doinstalowalem gettext (mam linuxa SuSE) i poszlo troche dalej z kompilacja, ale ten blad z iconv dalej jest worriedsmiley.gif

------------------------------------------------------------------------

zainstalowalem jeszcze raz libiconv z prefixem /usr i poszlo owiele dalej. ten blad juz nieaktualny.

teraz mam kolejny (po kilku minurach kompilacji):

Kod
-Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/mysql/lib/mysql -Wl,--rpath
-Wl,/usr/local/ssl/lib
/usr/local/lib/libsablot.so: undefined reference to `libiconv_open'
/usr/local/lib/libsablot.so: undefined reference to `libiconv_close'
/usr/local/lib/libsablot.so: undefined reference to `libiconv'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Błąd 1


worriedsmiley.gif
patrick
wszystko ok instalowalem wedlug intrukukcji stad php5. I wszystko ok ale apache mowi nie.
I przy odpaleniu skryptu .php5 wyskakuje

Error message:
Premature end of script headers: php

Moze ktos wie co nie tak jest snitch.gif
templar_of_steel
a powiedzcie mi, jak zrobic zeby (na SuSE) to apache i mysql sie uruchamial przy starcie. bo zrobilem tak jak napisane (dokladnie tak jak w wiki) ale niedziala worriedsmiley.gif
popo
templar_of_steel nie wiem ktora wersje suse posiadasz ale u mnie wszystko zaskoczylo z rpmow tylko php5 musialem recznie doinstalowac (bawie sie suse 9.3)
jesli masz apacza z rpma to instalator suse (yast) bezproblemowo pozwala wlaczyc usluge jesli nie to podaj mi ktora wersje suse posiadasz poniewaz roznie mialy skrypty startowe rozne wersje zrobione (moge podac jak mam to odpalone w 9.3 jak by co)
templar_of_steel
ja mam suse 9.2
Fo
Cytat("")
bo zrobilem tak jak napisane (dokladnie tak jak w wiki) ale niedziala


tak tylko dla pełnej jasności jeszcze raz : tam jest wzmianka na praktycznie samym początku iż instalacja przebiegła poprawnie na dystrybucjach linuxa : debian oraz slackware winksmiley.jpg

ale jeżeli uda się wam postawić powyższą przeze mnie opisaną kombinację - dajcie to śmiało na wiki - napewno userom suse'go przyda się Wasze doświadczenie i informacje.

pozdrawiam,
Fo
popo
standartowy skrypt startowy przy instalacji z rpm'a (u mnie dziala)
odpalanie mysqla
(prostrze rozwiazanie ponizej skryptu)
Kod
#!/bin/sh
# Copyright (c) 1995-2002 SuSE Linux AG Nuernberg, Germany.
#
# Author: Lenz Grimmer <feedback@suse.de>
#
# /etc/init.d/mysql
#
#   and its symbolic link
#
# /usr/sbin/rcmysql
#
### BEGIN INIT INFO
# Provides:       mysql
# Required-Start: $network $remote_fs
# Required-Stop:
# Default-Start:  2 3 5
# Default-Stop:
# Description:    Start the MySQL database server
### END INIT INFO

# Shell functions sourced from /etc/rc.status:
#      rc_check         check and set local and overall rc status
#      rc_status        check and set local and overall rc status
#      rc_status -v     ditto but be verbose in local rc status
#      rc_status -v -r  ditto and clear the local rc status
#      rc_failed        set local and overall rc status to failed
#      rc_failed <num>  set local and overall rc status to <num>
#      rc_reset         clear local rc status (overall remains)
#      rc_exit          exit appropriate to overall rc status
. /etc/rc.status

# First reset status of this service
rc_reset

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.

# Test, if mysqld or mysql-max actually exist
unset MYSQLD
if test -x /usr/sbin/mysqld-max
then
        MYSQLD=/usr/sbin/mysqld-max
elif test -x /usr/sbin/mysqld
then
        MYSQLD=/usr/sbin/mysqld
fi
test "$MYSQLD" || { echo "Nor /usr/sbin/mysqld nor /usr/sbin/mysqld-max exists"; rc_failed 5; rc_status -v; rc_exit; }

# The following section has been taken from
# the original MySQL init script
basedir=/usr
datadir=/var/lib/mysql
mysql_daemon_user=mysql
mysql_daemon_group=mysql
pid_file=/var/lib/mysql/mysqld.pid
socket=/var/lib/mysql/mysql.sock
MYADMIN=/usr/bin/mysqladmin

if test -z "$basedir"
then
  basedir=/usr
  bindir=/usr/bin
else
  bindir="$basedir/bin"
fi

if test -z "$pid_file"
then
  pid_file=$datadir/`/bin/hostname`.pid
else
  case "$pid_file" in
    /* );;
    * )  pid_file="$datadir/$pid_file";;
  esac
fi

mode=$1 # start or stop

parse_arguments() {
  for arg do
    case "$arg" in
      --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`;;
      --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`;;
      --pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'`;;
          --socket=*)   socket=`echo "$arg" | sed -e 's/^[^=]*=//'`;;
    esac
  done
}

# Get arguments from the my.cnf file, groups [mysqld] and [mysql_server]
if test -x ./bin/my_print_defaults
then
  print_defaults="./bin/my_print_defaults"
elif test -x $bindir/my_print_defaults
then
  print_defaults="$bindir/my_print_defaults"
elif test -x $bindir/mysql_print_defaults
then
  print_defaults="$bindir/mysql_print_defaults"
else
  # Try to find basedir in /etc/my.cnf
  conf=/etc/my.cnf
  print_defaults=
  if test -r $conf
  then
    subpat='^[^=]*basedir[^=]*=\(.*\)$'
    dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`
    for d in $dirs
    do
      d=`echo $d | sed -e 's/[  ]//g'`
      if test -x "$d/bin/my_print_defaults"
      then
        print_defaults="$d/bin/my_print_defaults"
        break
      fi
      if test -x "$d/bin/mysql_print_defaults"
      then
        print_defaults="$d/bin/mysql_print_defaults"
        break
      fi
    done
  fi

  # Hope it's in the PATH ... but I doubt it
  test -z "$print_defaults" && print_defaults="my_print_defaults"
fi

parse_arguments `$print_defaults $defaults mysqld mysql_server`

# Safeguard (relative paths, core dumps..)
cd $basedir

case "$1" in
    start)
        # exit gracefully, if we are already running
        checkproc $MYSQLD && echo -n "Starting service MySQL" && \
        rc_status -v && rc_exit

        # Test, if safe_mysqld actually exists
        SAFE_MYSQLD=/usr/bin/mysqld_safe
        test -x $SAFE_MYSQLD || { echo "$SAFE_MYSQLD does not exist"; rc_failed 5; rc_status -v; rc_exit; }

    # check for ISAM tables
    tables=`find $datadir -name '*.ISM' | sed "s@$datadir/*@@; s@.ISM@@; s@/@.@;"`
    if test "$tables"; then
        echo
        echo "Some tables still use ISAM format, please convert them to something"
        echo "better (eg. MyISAM). ISAM support will be dropped in future releases."
        echo "You can use mysql_convert_table_format script to do this conversion."
        echo
        echo "Tables using ISAM are:"
        echo "  $tables"
        echo
    fi

    # this file was used in past, but it's batter to place it youtside database directory
    if test -f $datadir/mysql/stamp-4.1; then
        rm $datadir/mysql/stamp-4.1
    fi

        # We assume a fresh install if the directory $datadir/mysql
        # does not exist and create the privilege database
        if test ! -f $datadir/update-stamp-4.1; then
                echo "Creating/Updating MySQL privilege database..."
                mysql_install_db --user=$mysql_daemon_user || rc_failed

        echo "Fixing privilege tables..."
        (echo 'USE mysql;'; cat /usr/share/mysql/mysql_fix_privilege_tables.sql) \
                | sed '/^---\? /D; s/#.*//; s/;$/#/' | tr '\n' ' ' | tr '#' '\n' \
                | /usr/sbin/mysqld \
            --bootstrap \
            --skip-innodb \
            --skip-bdb \
            --skip-grant-tables \
            --user=$mysql_daemon_user \
            --pid-file=$pid_file \
            --socket=$socket \
            --datadir=$datadir 2>/dev/null

        touch $datadir/update-stamp-4.1

                # Fix ownerships and permissions for $datadir
                chmod 755 $datadir
                chown -R $mysql_daemon_user.$mysql_daemon_group $datadir
        fi

        echo -n "Starting service MySQL"

        $SAFE_MYSQLD \
            --user=$mysql_daemon_user \
            --pid-file=$pid_file \
            --socket=$socket \
            --datadir=$datadir &>/dev/null &

        for((i=0; i<50; i++)); do
           sleep 0.2
           test -S $socket && i='' && break
        done

        test -z "$i" || rc_failed

        # Rmember status and be verbose
        rc_status -v
      ;;

    stop)
        echo -n "Shutting down service mysql"
        killproc -p $pid_file -TERM $MYSQLD

        # Remember status and be verbose
        rc_status -v
      ;;

    try-restart)
        ## Stop the service and if this succeeds (i.e. the
        ## service was running before), start it again.
        ## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
        $0 status >/dev/null &&  $0 restart

        # Remember status and be quiet
        rc_status
      ;;

    restart|force-reload)
        echo "Restarting service MySQL"
        $0 stop
        $0 start

        rc_status
      ;;

        reload)
        echo -n "Reloading service MySQL"
        killproc -p $pid_file -HUP $MYSQLD
        touch $pid_file
        rc_status -v
      ;;

    check|status)
        echo -n "Checking for service MySQL: "
        ## Check status with checkproc(8), if process is running
        ## checkproc will return with exit status 0.

        # Status has a slightly different for the status command:
        # 0 - service running
        # 1 - service dead, but /var/run/  pid  file exists
        # 2 - service dead, but /var/lock/ lock file exists
        # 3 - service not running

        # NOTE: checkproc returns LSB compliant status values.
        checkproc $MYSQLD
        rc_status -v
      ;;

    *)
        echo "Usage: $0 {start|stop|status|reload|restart|try-restart|force-reload}"
        exit 1
      ;;
esac
rc_exit

# vim: ft=sh

ale prosciej stworzyc wlasny skrypt startujacy baze robisz
Cytat
# touch /etc/rc.d/MsqlApaczeStart
# echo '/usr/local/mysql/bin/mysqld_safe &' >> /etc/rc.d/MsqlApaczeStart
# echo '/usr/local/apache2/bin/apachectl startssl' >> /etc/rc.d/MsqlApaczeStart

i potem w podkatalogach /etc/rc.d/rc.3 (konsola multiuser) i /etc/rc.d/rc.5 (xwindow multiuser) tworzysz symlinki o nazwie S16mysqlap
Cytat
# ln -s /etc/rc.d/MysqlApaczeStart /etc/rc.d/rc.3/S16mysqlap
# ln -s /etc/rc.d/MysqlApaczeStart /etc/rc.d/rc.5/S16mysqlap

tak prosty skrypcik zadba o odpalenie apacza i mysqla gdy system bedzie dzialal na 3 lub 5 lvlu nie wylaczy ich jednak przy zmianie lvlu serwisy trzeba zatrzymac recznie lub lekko zmienic skrypcik i dodac symlinki z litera K na poczatku do wyzej wymienionych katalogow (cyfry po S i K w symlinkach okreslaja w jakiej kolejnosci dane symlinki sa przetwarzane przy wejsciu na dany lvl (S) lub jego opuszczeniu (K) jesli na lvlu ktory opuszczamy i na tym na ktory przechodzimy wystepuje symlink z SXXnazwa to nic nie jest robione podczas zmiany lvlu standartowo powinny tez byc symlinki do zatrzymywania uslug ale bez nich tez powinno dzialac

jak cos moge wstawic oryginalny skrypt od startowania apacza ale jest on powiazany z kilkoma innymi ktorych raczej nie bedziesz mial jesli kompilowales apacza ze zrodel lub zmodyfikowany ten minimalny zeby zatrzymywal uslugi
templar_of_steel
oooooooooo! dzieki, zaraz to wyprubuje, bo jaknarazie to musze od nowa zainstalowac linuxa, bo cos zepsulem tongue.gif

i sproboje przy okazji napisac kilka wskazowek dla userow suse, z tym ze mam jeden problem z ktorym sobie nieporadzilem i oposcilem to przy kompilacji php - mianowicie o sablot, tak jak kilkapostow wyzej pisalem worriedsmiley.gif
Fo
@templar_of_steel : http://www.protonicdesign.com/tutorial/faq.php oblookaj aarambo.gif
popo
tak nawiasem mowiac to w suse 9.3 instalacja z ftp jako rpm jest MySQL 4.1.10a, apache 2.0.53, PostgreSQL 8.0.1, php 4.3.10-14.4, openssl 0.9.7e.
Do apacza dolaczone sa nastepujace moduly(dla v4)
gd,gettext,
  • bcmath,bz2
  • calendar,ctype,curl
  • dbase,dbx,domxml
  • exif
  • fastcgi,filepro,ftp
  • gd,gettext,gmp
  • iconv,imap
  • ldap,libphp4
  • mbstring,mcal,mcrypt,mhash,mime_magic,mysql
  • php,php_any,pear,pgsql
  • qtdom
  • recode
  • servlet,session,shmop,snmp,sockets,swf,sysvsem,sysvshm
  • unixODBC
  • wddx
  • xslt
  • yp
  • zlib
lub php 5.0.3-14.4 z jak mi sie zdaje kompletem modulow
i jesli korzystamy tylko z jednej wersji php to wszystko procz SSL i recode (jakis konflikt z mysql) dziala od razu. Jedyne co trzeba zrobic by dzialalo SSL to przeedytowac 1 plik konfiguracyjny apacza (w dystrybucji suse apacz z rpma ma konfik pociety na chyba 20 pliczkow w kilku podkatalogach) i wygenerowac certyfikaty SSL dla serwera jest tez phpMyAdmin 2.6.1-pl3
wiec jesli ktos ma suse i jest bardzo zielony to polecam z rpmow zainstalowac)
Major
Instaluje własnie z tego opisu baze mysql i mam pare błędów
Wywyloanie mysqld zwraca:
Cytat
050827 18:49:34  Warning: Can't create test file /var/lib/mysql/000b2b10a7ac.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 2)
050827 18:49:34  Aborting

050827 18:49:34  mysqld: Shutdown Complete

Jak stworzyłem ten folder pojawił sie taki blad
Cytat
Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
050827 18:49:51  Aborting

050827 18:49:51  mysqld: Shutdown Complete

Jeżeli wpisze
/usr/local/mysql/bin/mysqld_safe &
wyskakuje
Cytat
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/000b2b10a7ac.pid
050827 18:55:32  mysqld ended


[1]+  Done                    /usr/local/mysql/bin/mysqld_safe

Jeżeli wpisze
mysql start wyskakuje
Cytat
RROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)


Noi mysql nie chodzi, ma ktos jakies pomysły?
Dodam że moj linux to 'Manadrynka' winksmiley.jpg
xeryph
Hi!
A mi to nie dziala, robie wszystko tak jak jest napisanie i nic.
php4 dziala ok, php5 nie.

Uzywam:
Apache 2.0.55
php 5.0.5
php 4.3.11

Oto moj plik httpd.conf ( w sumie jego fragmenty ):

LoadModule php4_module /usr/lib/apache/libphp4.so
LoadModule frontpage_module /usr/lib/apache/mod_frontpage.so
LoadModule perl_module /usr/lib/apache/mod_perl.so
#LoadModule php5_module /usr/lib/apache/libphp5.so

AddType application/x-tar .tgz
AddType application/x-httpd-php .inc .php .php4
#AddType application/x-httpd-php5 .php5
#AddType application/x-httpd-php5 .php5
AddType application/x-httpd-php-source .phps

#ScriptAlias /php/ "/usr/local/php5/bin/"
#Action application/x-httpd-php5 "/php/php"

AddType application/x-httpd-php5 .php5
ScriptAlias /php/ "/usr/local/php5/bin/"
Action application/x-httpd-php5 "/php/php"

Kiedy odhaszuje, czyli bedzie:
LoadModule php5_module /usr/lib/apache/libphp5.so

to nie dziala zarowno php4, jak i php5.

Ogolnie to php4 chodzi, moge zobaczyc phpinfo i dziala strona. Jak zrobie phpinfo.php5 wyswietla sie Internal Server Error.

Prosze o pomoc.

Dzieki.
rsobczuk
A mi wyrzuca coś takiego...:

checking for libmcrypt-config... /usr/local/bin/libmcrypt-config
checking for libmcrypt - version >= 2.5.0... no
*** Could not run libmcrypt test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding LIBMCRYPT or finding the wrong
*** version of LIBMCRYPT. If it is not finding LIBMCRYPT, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
***
configure: error: *** libmcrypt was not found

... a libmcrypta zainstalowałem prawidłowo...

mcrypta instalowałem z poleceniem:
./configure --with-libmcrypt-prefix=/usr/local

Jakies pomysły?
PS. Libmcrypta mam w wersji 2.5.7...
Fo
heja,

Cytat("Major")
Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!


winksmiley.jpg
takie magiczne słówko smile.gif ROOT smile.gif man dont run mysqld as root winksmiley.jpg

rozwiazaniem dla Ciebie było by:

/usr/local/mysql/bin/mysqld_safe --user=mysql

tylko się upewnij czy aby napewno dodałeś usera i grupę mysql

a nexte,

Cytat("rsobczuk")
you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system

sprawdź jak wygląda twój /etc/ld.so.conf i czy aby napewno zawiera się w nim ścieżka do miejsca do którego została zainstalowana biblioteka libmcrypt

besides,

mcrypta możesz instalować bez --prefix= i co ważniejsze /usr/local samo, nie jest zbyt dobrym pomysłem. defaultowo biblioteki instalowane są w /usr/lib - i to jest ich miejsce, lub ew. /lib /usr/lib /usr/local/lib

tak więc, zobacz co masz w /etc/ld.so.conf, zobacz czy aby napewno są tam ścieżki które definiują miejsca w których istnieją biblioteki systemowe. jeżeli będziesz dokonywać zmian w tym pliku, np. dopiszesz sobie /usr/lib to wykonaj komende "ldconfig"

And thats all folks.

Pozdrawiam,
Fo
rsobczuk
A mi wszystko poszło bez problemów...
Niezła instrukcja!!!
killer69
Próbował ktoś zainstalować Apache 2.2 z openssl 0.9.8a questionmark.gif

Już drugi dziń sie zmagam i niestety...

przy konfiguracji httpd trzeba bylo dodac sciezkę instalacji ssl

Cytat
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-modules=rewrite --enable-shared=rewrite --with-ssl=/usr/local/ssl --enable-ssl --enable-rewrite


ale wysypuje blędy przy make

Co poradzicie questionmark.gif
dr_bonzo
LOL, moze bys podal w ktorym miejscu sie wysypuje.
killer69
sorry, juz podaje:

Cytat
Making all in support
make[1]: Entering directory `/dl/httpd-2.2.0/support'
make[2]: Entering directory `/dl/httpd-2.2.0/support'
/usr/local/apache2/build/libtool --silent --mode=link gcc -g -O2 -pthread    -L/usr/local/apache2/lib -L/usr/local/ssl/lib  -o ab  ab.lo  -lm /dl/httpd-2.2.0/srclib/pcre/libpcre.la /usr/local/apache2/lib/libaprutil-1.la -lexpat /usr/local/apache2/lib/libapr-1.la -lrt -lcrypt -lpthread -ldl -lssl -lcrypto
/usr/local/ssl/lib/libcrypto.a(sha256.o)(.text+0x0): In function `SHA256_Update':
: multiple definition of `SHA256_Update'
/usr/local/apache2/lib/libapr-1.a(sha2.o)(.text+0x2e0):random/unix/sha2.c:451: first defined here
/usr/bin/ld: Warning: size of symbol `SHA256_Update' changed from 305 in /usr/local/apache2/lib/libapr-1.a(sha2.o) to 761 in /usr/local/apache2/lib/libapr-1.a(sha2.o)
/usr/local/ssl/lib/libcrypto.a(sha256.o)(.text+0x300): In function `SHA256_Final':
: multiple definition of `SHA256_Final'
/usr/local/apache2/lib/libapr-1.a(sha2.o)(.text+0x420):random/unix/sha2.c:500: first defined here
/usr/bin/ld: Warning: size of symbol `SHA256_Final' changed from 514 in /usr/local/apache2/lib/libapr-1.a(sha2.o) to 401 in /usr/local/apache2/lib/libapr-1.a(sha2.o)
/usr/local/ssl/lib/libcrypto.a(sha256.o)(.text+0x560): In function `SHA256_Init':
: multiple definition of `SHA256_Init'
/usr/local/apache2/lib/libapr-1.a(sha2.o)(.text+0x0):random/unix/sha2.c:267: first defined here
/usr/bin/ld: Warning: size of symbol `SHA256_Init' changed from 126 in /usr/local/apache2/lib/libapr-1.a(sha2.o) to 93 in /usr/local/apache2/lib/libapr-1.a(sha2.o)
/usr/local/ssl/lib/libcrypto.a(sha256.o)(.text+0x7c0): In function `SHA256_Transform':
: multiple definition of `SHA256_Transform'
/usr/local/apache2/lib/libapr-1.a(sha2.o)(.text+0x80):random/unix/sha2.c:371: first defined here
/usr/bin/ld: Warning: size of symbol `SHA256_Transform' changed from 596 in /usr/local/apache2/lib/libapr-1.a(sha2.o) to 36 in /usr/local/apache2/lib/libapr-1.a(sha2.o)
collect2: ld returned 1 exit status
make[2]: *** [ab] Błąd 1
make[2]: Leaving directory `/dl/httpd-2.2.0/support'
make[1]: *** [all-recursive] Błąd 1
make[1]: Leaving directory `/dl/httpd-2.2.0/support'
make: *** [all-recursive] Błąd 1
son
Ja zainstalowałem Apache i MySql i wszystko działa. Ale jak próbuję zainstalować php5 to już nie działa. Wszystko instalowałem ze źródeł tak jest to w wiki. Przy instalacji nie ma żadnego błędu. Nie jestem pewien, czy plik httpd.conf jest dobrze skonfigurowany, ale robiłem wszystko zgodnie z instrukcją na wiki.
angel2953
@killer69: mi to wygląda na błąd w bibliotece Crypt. Spróbuj może uaktualnić ją do najnowszej wersji...
FPawlak
Mam Apacha2. Do tego instaluje php-5.1.2:
Kod
'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-mysql' '--enable-bcmath' '--with-config-file-path=/etc'


I niestety w /etc nie mam plliku php.ini nigdzie go nie moge znalesc. Macie jakies pomysły??

Z góry dzięki za pomoc.
dr_bonzo
Plik php.ini znajduje sie w katalogu ze zrodlami php: php.ini-dist (albo podobnie), wgraj go do /etc (tam gdzie wskazuje --with-config-file-path)
mateu_eu07_pl
Witam,
Mam drobny problem z mysqlem.
Cytat
root@misiaq:/usr/local/mysql/var# /usr/local/mysql/bin/mysqld_safe &
[1] 12353
root@misiaq:/usr/local/mysql/var# Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/misiaq.pid
060204 16:38:38  mysqld ended

ls
misiaq-bin.001  misiaq-bin.index  misiaq.err  mysql/  test/
[1]+  Done                    /usr/local/mysql/bin/mysqld_safe

plik err
Cytat
060204 16:34:37  mysqld started
060204 16:34:37  InnoDB: Operating system error number 13 in a file operation.
InnoDB: See http://dev.mysql.com/doc/mysql/en/InnoDB.html
InnoDB: for installation help.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
060204 16:34:37  mysqld ended

I nie wiem co jest grane. To powyzej, to mysql 4.0.24, probowalem tez z 4.1.16, ale tam podczas uruchamiania mysql_install_db wywalal blad syntaxa. System to Slack 10.1. Sprzet to PIV 2,26, 512 mb ram, dysk 80 gb. Nie wiem co jest grane, gdyz ostatnio gdy instaloawlem to samo na tym samym sprzecie wszystko bzykalo jak nalezy. Sprobuje zrobic jeszcze jednego reinstalla i bezposrednio instalowac 4.0.24, moze to cos da... Dam znac za jakies 30 min.
Pozdrawiam
dr_bonzo
Przeciez pisze:
"The error means mysqld does not have the access rights to the directory."
/usr/local/mysql/var

nadaj odpowiednie prawa dla tego katalogu dla usera na ktorym chodzi mysql.
FPawlak
Niestety wklejenie php.ini nie pomoglo
Jak wezme phpinfo() to w master value nie ma zmian jak zmienie w php.ini pokazuje tylko no value
mateu_eu07_pl
Kod
060204 19:34:45  mysqld started
060204 19:34:45  InnoDB: Started
060204 19:34:45 /usr/local/mysql/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
060204 19:34:45 Fatal error: Can't open privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
060204 19:34:45 Aborting

060204 19:34:45  InnoDB: Starting shutdown...
060204 19:34:47  InnoDB: Shutdown completed
060204 19:34:47 /usr/local/mysql/libexec/mysqld: Shutdown Complete

060204 19:34:47  mysqld ended

A co z tym?
Goglowalem i nic...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.