# Jak poprawnie zainstalować Apache2+PHP4+MySQL ver.4 ?

## red79

Mam problem. Od kilku dni próbuję postawić serwer www na swoim kompie i jakoś nie specjalnie mi to wychodzi. Apache i MySQL działają (ładują się w czasie startu systemu) jednak mam problem z uruchomieniem php4. Po instalacji pojawił się komunikat że niemogę używać tego php na serwerach (skompilowane jest tylko CLI)

Mod-php

```
 [33;01m*[0m Due to some previous bloopers with PHP and slotting, you may have

 [33;01m*[0m multiple instances of mod_php installed. Please look at the autoclean

 [33;01m*[0m output at the end of the emerge and unmerge all but relevant

 [33;01m*[0m instances.

 [32;01m*[0m Apache2 only detected

 [33;01m*[0m If you have both freetds and mssql in your USE flags, parts of PHP

 [33;01m*[0m may not behave correctly, or may give strange warnings. You have

 [33;01m*[0m been warned! It's recommended that you pick ONE of them. For sybase

 [33;01m*[0m support, chose 'freetds'. For mssql support choose 'mssql'.
```

PHP-4.4.0-r4

```
 [32;01m*[0m The INI file for this build is /etc/php/cli-php4/php.ini

 [33;01m*[0m If you have both freetds and mssql in your USE flags, parts of PHP

 [33;01m*[0m may not behave correctly, or may give strange warnings. You have

 [33;01m*[0m been warned! It's recommended that you pick ONE of them. For sybase

 [33;01m*[0m support, chose 'freetds'. For mssql support choose 'mssql'.

 [33;01m*[0m If you have additional third party PHP extensions (such as

 [33;01m*[0m dev-php/eaccelerator) you may need to recompile them now.

 [33;01m*[0m Please be aware that CURL can allow the bypass of open_basedir restrictions.

 [32;01m*[0m This is a CLI only build.

 [32;01m*[0m You cannot use it on a webserver.

md5sum: //root/.pearrc: No such file or directory
```

Z tymi flagami mam same problemy. Obecnie ani freetds ani mssql nie są ustawione. Czy naprawdę muszą być?

Moje falgi USE:

```
USE="7zip a52 aac acpi activefilter adsl apache2 asf atm bash-completion

     big-tables bigger-fonts bind-mysql bl bmp bootsplash browserplugin

     cdparanoia cdrom clamav clamd cluster custom-cflags dga dhcp

     divx4linux djbfft dv dvb dvd dvdread dxr3 edl emoticon extensions

     extraengine extraicons extramodules extras fat fb firefox flash

     frontbase ftp geometry gg glx gzip hfs html http id3 imap irc

     jabber jack-tmpfs javascript jfs kdeenablefinal kdepim kdexdeltas

     kerberos lame lesstif libclamav lm_sensors log4j mime mmx mp4live

     mpeg2 mpeg4 mplayer mppe-mppc msql mssql multitarget mysqli ntfs

     nvidia on-the-fly-crypt openssl password pdf pheaders php player

     plugin print rar real reiserfs rogue rrdtool rss sendmail sensord

     smime speech symlink syslog sysvipc szip tga theora tidy tlen

     unicode userlocales utf8 v4l v4l2 vcd vhosts videos vidix

     virus-scan voice web win32codecs xanim xatrix xfs xvmc -arts

     -emboss -freetds -gnome -gtk -libg++"
```

Apache2

```
 [32;01m*[0m 

 [32;01m*[0m Generating self-signed test certificate in /etc/apache2/ssl...

 [32;01m*[0m 

 [33;01m*[0m 

 [33;01m*[0m LFS support has been removed due to incompatibilites with other packages.

 [33;01m*[0m You _will_ have to re-emerge any Apache modules you have installed, or

 [33;01m*[0m they will likely misbehave/segfault.

 [33;01m*[0m 

 [33;01m*[0m 

 [33;01m*[0m Multiple MPM support has been disabled due to problems with external

 [33;01m*[0m modules.  If you have relied on this functionality you will need

 [33;01m*[0m to find another solution.  The Gentoo Apache team apologizes for

 [33;01m*[0m any inconvienence this may cause you.

 [33;01m*[0m 
```

Nigdy wcześniej nie stawiałem serwera www. Dziękuję za wszelką pomoc.

Szukam też jakiegoś dobrego serwera poczty e-mail, który z dostępnych na gentoo jest najlepszy?

----------

## czestmir

a z jakimi flgami kopilujesz PHP zobacz

```
emerge -av php
```

----------

## milu

 *red79 wrote:*   

> Szukam też jakiegoś dobrego serwera poczty e-mail, który z dostępnych na gentoo jest najlepszy?

 

Każdy, który zostanie dobrze skonfigurowany :]

A tak na serio mogę polecić postfix.

----------

## qermit

 *milu wrote:*   

> A tak na serio mogę polecić postfix.

 Jego zaletą jest prostota konfiguracji. Naprawdę polecam.

----------

## 13Homer

Ja kilka dni temu instalowałem Apache2 + MySQL + PHP na potrzeby mediawiki i miałem tylko jeden kłopot: nie mogłem uruchomić PHP. Okazało się, że trzeba w pliku configuracyjnym (/etc/conf.d/apache2) dodać "-D PHP4" do APACHE2_OPTS (było to opisane [o ile dobrze pamiętam] podczs instalacji, ale przegapiłem).

Oczywiście jest to kwestia instalacji mod_php (najprawdopodobniej z flagą USE apache2, ale głowy nie dam, w każdym razie ja mam ją ustawioną).

----------

## red79

PHP

```
[ebuild   R   ] dev-php/php-4.4.0-r4  +X +berkdb +crypt +curl -debug -doc -fdftk -firebird +flash -freetds +gd -gd-external +gdbm +gmp -hardenedphp +imap -informix +ipv6 +java +jpeg +kerberos -ldap -mcal -memlimit +mssql +mysql +ncurses +nls -oci8 -odbc +pam +png -postgres +readline -snmp +spell +ssl +tiff +truetype +xml2 -yaz 0 kB
```

Hm a jednak falga mssql jest dodana   :Embarassed: 

MySQL

```
[ebuild   R   ] dev-db/mysql-4.1.14  +berkdb +big-tables +cluster -debug -doc +extraengine +geometry -minimal +perl +readline (-selinux) +ssl -static +tcpd +utf8 0 kB
```

Apache2

```
[ebuild   R   ] net-www/apache-2.0.54-r31  +apache2 -debug -doc -ldap -mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-worker -no-suexec (-selinux) +ssl -static-modules -threads 0 kB
```

Postfixa nie mogę zainstalować bo mam już zainstalowanego ssmtp-2.61 i występuje blokada a nie wiem co jest zależne od tego ssmtpa.

Edit #1:

Idiotyczne ale właśnie zauważyłem że mod_php nie jest zainstalowany a był napewno!!!!

mod_php

```
[ebuild  N    ] dev-php/mod_php-4.4.0-r9  +X +apache2 +berkdb +crypt +curl -debug -doc -fdftk -firebird +flash -freetds +gd -gd-external +gdbm +gmp -hardenedphp +imap -informix +ipv6 +java +jpeg +kerberos -ldap -mcal -memlimit +mssql +mysql +nls -oci8 -odbc +pam +png -postgres -snmp +spell +ssl +tiff +truetype +xml2 -yaz 0 kB
```

Czy po ponownym zainstalowaniu mod_php muszę przebudować samo php?

Edit #2:

Po zainstalowaniu mod_php nie mogę go skonfigurować.

```
ebuild /var/db/pkg/dev-php/mod_php-4.4.0-r9/mod_php-4.4.0-r9.ebuild config

 * This ebuild does not have a config function.
```

Czy ktoś z was ma jakiś pomysł jak to wszystko poskładać do kupy?

Aha nieznalazłem też pliku apache.conf

..::Milu Edit: 

1. Używaj guzika edycji postów a nie piszesz post pod postem.

2. Wklejając to co wypluło Ci na konsoli używaj znacznika code a nie quote.

----------

## ziemia

Robiłem to jakiś tydzień temu według: http://wojciechbednarski.com/w/apache/ i wszystko ok

----------

## milu

 *red79 wrote:*   

> 
> 
> Postfixa nie mogę zainstalować bo mam już zainstalowanego ssmtp-2.61 i występuje blokada a nie wiem co jest zależne od tego ssmtpa. 

 

Odinstaluj ssmtp i zainstaluj postfix.

 *red79 wrote:*   

> Aha nieznalazłem też pliku apache.conf 

 

bo takowego już nie powinno być. Poszukaj: 

```
/etc/apache2/httpd.conf
```

----------

## red79

Pytanie do Ziemi: Jakie flagi ustawiłeś? (chodzi mi głównie o flagi odnoszące się do baz danych - ale pokaż wszystkie).

Milu: tak wiem że jest httpd.conf, poprostu myślałem że coś źle ustawiłem we flagach use i coś mi się nieskompilowało. Jaka jest różnica w użyciu quote i code? (serio nie wiem).

----------

## milu

 *red79 wrote:*   

> Milu: tak wiem że jest httpd.conf, poprostu myślałem że coś źle ustawiłem we flagach use i coś mi się nieskompilowało. Jaka jest różnica w użyciu quote i code? (serio nie wiem).

 

code wyświetla mniejszą, zieloną czcionką w dodatku courierem co daje znacznie lepszy wynik wizualny niż cytowanie za pomocą quote na czarno i zwykłą czcionką.

----------

## red79

Nie mogę skonfigurować bazy MySQL!!!!!!!!!!

Najpierw wykonałem sugerowane 

```
emerge --config =mysql-4.1.14
```

i ustawiłem hasło, rozpoczęło się instalowanie baz.

```
WARNING: The host 'pingwin' could not be looked up with resolveip.

This probably means that your libc libraries are not 100 % compatible

with this binary MySQL version. The MySQL daemon, mysqld, should work

normally with the exception that host name resolving will not work.

This means that you should use IP addresses instead of hostnames

when specifying MySQL privileges !

Installing all prepared tables

Fill help tables

To start mysqld at boot time you have to copy support-files/mysql.server

to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin -u root -h pingwin password 'new-password'

See the manual for more instructions.

You can start the MySQL daemon with:

cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:

cd sql-bench ; perl run-all-tests

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at

http://www.mysql.com

Support MySQL by buying support/licenses at https://order.mysql.com

Warning: Unable to load '//usr/share/zoneinfo/Asia/Riyadh87' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/Asia/Riyadh88' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/Asia/Riyadh89' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/Mideast/Riyadh87' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/Mideast/Riyadh88' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/Mideast/Riyadh89' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/posix/Asia/Riyadh87' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/posix/Asia/Riyadh88' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/posix/Asia/Riyadh89' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/posix/Mideast/Riyadh87' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/posix/Mideast/Riyadh88' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/posix/Mideast/Riyadh89' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/right/Asia/Riyadh87' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/right/Asia/Riyadh88' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/right/Asia/Riyadh89' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/right/Mideast/Riyadh87' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/right/Mideast/Riyadh88' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/right/Mideast/Riyadh89' as time zone. Skipping it.

Warning: Unable to load '//usr/share/zoneinfo/zone.tab' as time zone. Skipping it.

. * Loading "zoneinfo" this step may require few seconds

 * done
```

Nie mogę zmienić tego hasła użycie pierwszego polecenia /usr/..... daje taki komunikat

```
/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin: connect to server at 'localhost' failed

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
```

Informacje o tym błędzie znalazłem na stronie bednarskiego (adres w poście ziemi powyżej) zmiana z 127.0.0.1 nic nie dała.

Użycie drugiego polecenia powoduje natomiast:

```
 /usr/bin/mysqladmin -u root -h pingwin password 'new-password'

/usr/bin/mysqladmin: connect to server at 'pingwin' failed

error: 'Unknown MySQL server host 'pingwin' (1)'

Check that mysqld is running on pingwin and that the port is 3306.

You can check this by doing 'telnet pingwin 3306'
```

Co znowu robię nie tak? Jak to naprawić?

----------

## ziemia

red79

 *Quote:*   

> 
> 
> Informacje o tym błędzie znalazłem na stronie bednarskiego (adres w poście ziemi powyżej) zmiana z 127.0.0.1 nic nie dała. 

 

Miałem to samo  :Smile:  po tej zmianie należy jeszcze 

```
/etc/init.d/mysql restart
```

programy mam z następującymi USE:

```
[ebuild   R   ] net-www/apache-2.0.54-r31  -apache2 -debug -doc +ldap -mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-worker -no-suexec (-selinux) +ssl -static-modules -threads 0 kB

[ebuild   R   ] dev-db/mysql-4.1.14  +berkdb -big-tables -cluster -debug -doc -extraengine -geometry -minimal +perl +readline (-selinux) +ssl -static +tcpd -utf8 0 kB

[ebuild   R   ] dev-php/php-4.4.0-r4  +X +berkdb +crypt +curl -debug -doc -fdftk -firebird -flash -freetds -gd -gd-external +gdbm -gmp -hardenedphp -imap -informix -ipv6 +java +jpeg -kerberos +ldap -mcal -memlimit -mssql +mysql +ncurses +nls -oci8 -odbc +pam +png -postgres +readline -snmp +spell +ssl +tiff +truetype +xml2 -yaz 0 kB

[ebuild   R   ] dev-php/mod_php-4.4.0-r9  +X -apache2 +berkdb +crypt +curl -debug -doc -fdftk -firebird -flash -freetds -gd -gd-external +gdbm -gmp -hardenedphp -imap -informix -ipv6 +java +jpeg -kerberos +ldap -mcal -memlimit -mssql +mysql +nls -oci8 -odbc +pam +png -postgres -snmp +spell +ssl +tiff +truetype +xml2 -yaz 0 kB

```

----------

## red79

Dlaczego nie masz dodanej flagi apache2?????

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

Dodane:

Chyba nadal coś źle robię: 

1. wydałem polecenie emerge --config =mysql-4.1.14

2. ustawiłem hasło komputer zainstalował bazy

3. wydałem polecenie /etc/init.d/mysql restart (uruchomiła się baza mysql)

4. wydałem polecenie /usr/bin/mysqladmin -u root password 'new-password' ----> efekt

```
/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: NO)'
```

Czy ta kojelność jest poprawna czy czegoś brakuje?

----------

## ziemia

Sprubuj sie zalogować do mysql

```

mysql -u root -p
```

Jak sie uda zobacz jakie bazy są polecenie

```
SHOW DATABASES;
```

:

np.

```
mysql> SHOW DATABASES;

+----------+

| Database |

+----------+

| mysgl    |

| mysql    |

| test     |

+----------+

3 rows in set (0.00 sec)

mysql>            

```

Poczytaj o administracji MYSQL na poczatek: http://www.gentoo.org/doc/pl/mysql-howto.xml[/code]

----------

## red79

Ma dwie bazy

```
mysql> show databases;

+----------+

| Database |

+----------+

| mysql    |

| test     |

+----------+

2 rows in set (0.06 sec)
```

A ten dokument już czytałem. Właśnie z niego korzystałem wcześniej.

Czemu te polecenia /usr/.... do zmiany hasła nie działają ? Masz jakiś pomysł odnośnie tego?

----------

## ziemia

 *Quote:*   

> Czemu te polecenia /usr/.... do zmiany hasła nie działają ? Masz jakiś pomysł odnośnie tego?

 

Z prostej przyczyny masz już ustawione hasło  :Smile:  jak chcesz je zmienić musisz uwierzytelnić sie hasłem, teraz to polecenie powinno wygadać:

```
/usr/bin/mysqladmin -u root -p  password 'nowe haslo' 

```

podajesz stare hasło które zmienia sie na: "nowe haslo"

----------

## red79

Nadal nie działa 

```
pingwin sebastian # /usr/bin/mysqladmin -u root -p  password 'nowe haslo'

Enter password:

/usr/bin/mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: YES)'
```

Gdy zapytał o hasło podałem to które ustawiłem na początku (hasło1)

Czy w to pole 'nowe haslo' nie powinienem był czegoś wpisać i czy nie powinno tam być myślnika 'nowe-haslo' ?????

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

Dodane:

TERAZ NIEDZIAŁA JUŻ ŻANDE Z HASEŁ ANI STARE ANI NOWE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

----------

## ziemia

"nowe haslo" to jet nowe hasło  :Smile:  na króre jest zmieniane stare np.:

```
/usr/bin/mysqladmin -u root -p  password '123456'
```

zmieni Ci hasło które miałeś na: 123456

Może u Ciebie trzeba jeszcze hosta podać:

```

/usr/bin/mysqladmin -u root -p -h pingwin password '123456"

```

Jesteś pewny że wpiszuje hasło dla root z bazy MySql??

 *Quote:*   

> TERAZ NIEDZIAŁA JUŻ ŻANDE Z HASEŁ ANI STARE ANI NOWE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

Może resetowałeś kompa i nie masz bazy odpalonej 

```
/etc/init.d/mysql start
```

Dodałeś skrypt mysql do domyslnego runlevel?

----------

## red79

Baza jest uruchomiona i nie jeszcze niedodałem mysqla do runlevela.

Zrobiłem coś takiego:

```
/usr/bin/mysqladmin -u root -p -h pingwin password 'hasło2-nowe'

Enter password: TU WPISAŁEM STARE HASŁO1   --------------> efekt 

/usr/bin/mysqladmin: connect to server at 'pingwin' failed

error: 'Unknown MySQL server host 'pingwin' (1)'

Check that mysqld is running on pingwin and that the port is 3306.

You can check this by doing 'telnet pingwin 3306'
```

tutaj tak samo ustawiłem hasła

```
/usr/bin/mysqladmin -u root -p  password 'hasło2-nowe'

Enter password: hasło1-stare

/usr/bin/mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: YES)'
```

zmiana hasła1-stare na hasło2-nowe też nic niedało

Które hasło mam wpisać po pojawieniu się zapytania? Statre czy nowe?

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

Dodane:

Ok, kwestia zmiany hasła już nie ma znaczenia wszedłem do bazy i tam je zmieniłem przy pomocy polecenia

```
set password for 'root'@'localhost' =password('nowehaslo');
```

APACHE

po uruchomieniu serwera otrzymuję komunikat:

```
 * Starting apache2 ...  [OK]

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
```

Zmiana w httpd.conf zmiennej ServerName z localhost na 127.0.0.1 nic nie zmienia. Po restarcie komunikat pojawia się ponownie. Zmiana na nazwę domeny którą kupiłem też nie.

Kolejny problem

Po uruchomieniu testu php 

[code]

otrzymałem coś takiego

[code]E325: UWAGA

Znalazłem plik wymiany o nazwie "/var/www/localhost/htdocs/.test.php.swp"

   posiadany przez: root   data: Fri Dec 23 21:32:20 2005

       nazwa pliku: /var/www/localhost/htdocs/test.php

         zmieniono: TAK

        użytkownik: root   nazwa hosta: pingwin

        ID procesu: 7476

Podczas otwierania pliku "/var/www/localhost/htdocs/test.php"

(1) Pewnie inny program obrabia ten sam plik.

    Jeśli tak, bądź ostrożny, aby nie skończyć z dwoma

    różnymi wersjami jednego tego samego pliku po zmianach.

    Zakończ lub ostrożnie kontynuuj.

(2) Sesja edycji dla pliku załamała się.

    Jeśli tak, to użyj ":recover" lub "vim -r /var/www/localhost/htdocs/test.php"

    aby odzyskać zmiany (patrz ":help recovery)").

    Jeśli już to zrobiłeś, usuń plik wymiany "/var/www/localhost/htdocs/.test.php.swp"

    aby uniknąć tej wiadomości.

Plik wymiany "/var/www/localhost/htdocs/.test.php.swp" już istnieje!

[O]twórz Read-Only, (E)dytuj pomimo, O(d)twórz, (Z)akończ, (P)orzuć, (S)kasuj go: [/code]

Jak narazie wybrałem Zakończ.

----------

## ziemia

 *Quote:*   

> Zmiana w httpd.conf zmiennej ServerName z localhost na 127.0.0.1 nic nie zmienia. Po restarcie komunikat pojawia się ponownie. Zmiana na nazwę domeny którą kupiłem też nie. 

 

Może to głupie pytanie ale czy usunołeś znak # z początku lini z tym ustawieniem?

----------

## red79

Teraz już tak   :Embarassed:  A co zrobić z tym podwójnym plikiem testowym php? Co z nimi zrobić? Pojawia się tylko to ostrzeżenie. Nie widziałem ustawień serwera.

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

Dodane 26.12.2005

Odnośnie Apache'a do jakiego katalogu mam skopiować pliki utworzonej strony html, żeby była dostępna z zewnątrz przez przeglądarkę?

----------

