Apache 2.0.53 / SSL, PHP 5.0.3, MySQL 4.1.10 na Linuxu
MyEgo.cz
Apache 2.0.53 / SSL, PHP 5.0.3, MySQL 4.1.10 na Linuxu
Looking for English version of this article?
Dnes, kdy téměř každá distribuce Linuxu obsahuje i binární formu Apache, PHP a MySQL, se může zdát, že je zbytečné se zabývat tím, jak uvedené celky zkompilovat a konfigurovat. Pokud ovšem chcete systém přesně podle vašich potřeb, nebo máte požadavky na specifické moduly (curl, iconv, ssl), potom v řadě případů binární forma (rpm, deb) vůbec neexistuje a do kompilace se pustit musíte.
Ke kompilaci ze zdroje je vhodné přistoupit i tehdy, pokud chcete výkon systému optimalizovat pro váš hardware.
Základní popis systému:
PHP 5.0.3 bude kompilováno s podporou: bz2, cpdf, ctype, curl, dom, ftp, gd2, freetype2, gettext, iconv, libxml, mbstring, mysql, mysqli, openssl, pcre, posix, session, SimpleXML, SPL, SQLite, tokenizer, xml, xsl, a zlib.
Apache 2.0.53 bude kompilován s podporou mod_access, mod_auth, mod_auth_digest, mod_deflate, mod_env, mod_headers, mod_setenvif, mod_ssl, mod_mime, mod_imap, mod_alias a mod_rewrite.
Nezbytné nástroje:
Tento článek předpodkládá, že máte instalované nezbytné nástroje pro kompilaci.
Toto je vše, co potřebujete :
- The GNU Bourne Again shell (bash) - bash-2.05b-47.i586.rpm
- A GNU collection of binary utilities - binutils-2.15.90.0.1.1-31.i586.rpm
- A GNU general-purpose parser generator - bison-1.875-51.i586.rpm
- The C Preprocessor - cpp-3.3.3-41.i586.rpm
- A tool for creating scanners (text pattern recognizers) - flex-2.5.4a-293.i586.rpm
- Header and object files for development using standard C libraries - glibc-devel-2.3.3-98.i586.rpm
- A GNU tool which simplifies the build process for users - make-3.80-184.i586.rpm
- Header files and libraries for C++ development - libstdc++-devel-3.3.3-41.i586.rpm
- The GNU macro processor - m4-1.4o-622.i586.rpm
- The GNU cc and gcc C compilers - gcc-3.3.3-41.i586.rpm
- C++ support for gcc - gcc-c++-3.3.3-41.i586.rpm
Parametry kompilace:
Kompilace může být uzpůsobena řadou parametrů, které se předají gcc, pro moje Pentium-IV/HT/3.4GHz, je toto vhodný počáteční set parametrů:
export CFLAGS="-march=pentium4 -mfpmath=sse -msse2 -O2 -pipe -s -fomit-frame-pointer"
Seznam parametrů specifických pro Vaše CPU a Váš systém můžete nalézt na gcc.gnu.org.
Veškeré tyto skripty byly kompletně testovány pod SuSE Linuxem 9.1 s kernelem 2.6.8.1, a s gcc verze 3.3.3, a na Fedora Core 3 s kernelem 2.6.9.1, ale měly by fungovat na libovolné Linux distribuci.
Tento návod předpokládá, že zdrojové kódy jsou umístěny v /usr/local/src
adresáři,
SSL klíče v /home/ssl
adresáři, a root webu je umístěn v /home/www
adresáři.
Kompilace (Open) SSL ze zdroje:
- Budeme potřebovat Open SSL knihovnu: openssl-0.9.7e.tar.gz
Kompilace OpenSSL:
su cd /usr/local/src tar -zxvf openssl-0.9.7e.tar.gz cd openssl-0.9.7e ./config --prefix=/usr/local make make install
Vytvoření privátního klíče v adresáři /home/ssl
:
mkdir /home/ssl cd /home/ssl /usr/local/bin/openssl genrsa -des3 -rand \ velký_soubor_1:velký_soubor_2 \ -out localhost.key 1024
Následně si vytvoříme privátní klíč bez pass-phrase, je to méně bezpečné, ale zase nás to zbaví povinnosti zadávat pass-phrase při každém restartu serveru …
/usr/local/bin/openssl rsa \ -in localhost.key \ -out localhost.key.unsecure
Následně si vytvoříme požadavek na certifikační autoritu, která náš klíč autorizuje
(pokud to potřebujeme), a uložíme jej do souboru localhost.key.csr
:
/usr/local/bin/openssl req -new \ -key localhost.key \ -out localhost.key.csr
A zatímco čekáme na certifikační autoritu, můžeme si vytvořit provizorní certifikát podepsaný námi (self-signed), například pro testovací účely, platný v tomto případě po 30 dnů:
/usr/local/bin/openssl x509 -req \ -days 30 \ -in localhost.key.csr \ -signkey localhost.key \ -out localhost.cert chmod 400 localhost.cert chmod 400 localhost.key chmod 400 localhost.key.unsecure
Kompilace MySQL 4.1.10 ze zdroje:
- MySQL 4.1.10 zdroj - mysql-4.1.10.tar.gz
- libtermcap knihovna (většina distribucí již tuto knihovnu obsahuje) - libtermcap-2.0.8-35.i386.rpm
- libtermcap-devel knihovna (většina distribucí již tuto knihovnu obsahuje) - libtermcap-devel-2.0.8-35.i386.rpm
Upozornění: MySQL 4.1.10 má nový komunikační protokol, a nové PHP rozšíření, oproti MySQL 4.0 a starším. Pokud Vaše skripty s
mysqli
nepočítají, stáhněte si raději MySQL 4.0.23! Postup instalace je totožný, jen u kompilace PHP oddělejte v./configure
skriptu jeden řádek smysqli
.Nicméně, pro nový vývoj je MySQL 4.1.10 a PHP 5.0.3 rozhodně doporučeno.
Kompilace MySQL ze zdroje a vytvoření uživatele / skupiny mysql
:
cd /usr/local/src tar -zxvf mysql-4.1.10.tar.gz cd mysql-4.1.10 ./configure \ --prefix=/usr/local/mysql \ --with-unix-sock-path=/tmp/mysql.sock \ --with-charset=utf8 make make install
groupadd mysql useradd -g mysql mysql cp support-files/my-medium.cnf /etc/my.cnf cd /usr/local/mysql bin/mysql_install_db --user=mysql chown -R root . chown -R mysql var chgrp -R mysql .
MySQL konfigurační soubor /etc/my.cnf
může pro naše lokální použití
vypadat například takto:
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K net_buffer_length = 2K thread_stack = 64K skip-networking server-id = 1 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [isamchk] key_buffer = 8M sort_buffer_size = 8M [myisamchk] key_buffer = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout
Kompilace ze zdroje Apache 2.0.53 web serveru:
- Budeme potřebovat Apache 2.0.53 zdroj - httpd-2.0.53.tar.gz
- RPM: libxml2 knihovnu (většina distribucí již tuto knihovnu obsahuje) - libxml2-devel-2.6.7-28.i586.rpm
- RPM: zlib-devel knihovnu (většina distribucí již tuto knihovnu obsahuje) - zlib-devel-1.2.1-70.i586.rpm
- RPM: readline-devel knihovnu (většina distribucí již tuto knihovnu obsahuje) - readline-devel-4.3-306.i586.rpm
Vlastní kompilace a instalace :
cd /usr/local/src tar -zxvf httpd-2.0.53.tar.gz cd httpd-2.0.53 ./configure \ --prefix=/usr/local/apache2 \ --enable-so \ --enable-auth-digest \ --enable-rewrite \ --enable-setenvif \ --enable-mime \ --enable-deflate \ --enable-ssl \ --with-ssl=/usr/local \ --enable-headers make make install
Následně musíme modifikovat konfigurační soubor Apache serveru, umístěný v /usr/local/apache2/conf/httpd.conf
(tento
návod také předpokládá, že root Vašeho budoucího webu je v /home/www
):
DocumentRoot "/home/www"
Přidáme podporu pro PHP 5 (jako modul):
LoadModule php5_module modules/libphp5.so DirectoryIndex index.html index.htm index.php AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Vtvoříme základní mod_rewrite pravidla:
<Directory "/home/www"> Options Indexes Includes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory>
A zakážeme klientům přistupovat k .htaccess
:
<Files ~ "^.ht"> Order allow,deny Deny from all </Files>
Následně, pokud používáme SSL (na standardním portu 443), musíme nahradit
soubor /usr/local/apache2/conf/ssl.conf
tímto obsahem:
Listen 443 <VirtualHost _default_:443> ServerName localhost SSLEngine on SSLCertificateFile /home/ssl/localhost.cert SSLCertificateKeyFile /home/ssl/localhost.key.unsecure </VirtualHost>
Kompilace PHP 5.0.3 ze zdroje:
Pro kompilaci PHP 5 budeme potřebovat řadu externích knihoven, jako je libcurl, libiconv, libjpeg, libpng, Freetype2. GD2 knihovna je v PHP 5 vestavěná.
- PHP 5.0.3 zdroj - php-5.0.3.tar.bz2
- CURL knihovna - curl-7.12.1.tar.gz
- libiconv knihovna - libiconv-1.9.2.tar.gz
- JPEG knihovna: jpegsrc.v6b.tar.gz
- PNG knihovna: libpng-1.2.8.tar.gz
- cpdflib knihovna: clibpdf202r1.tar.gz
- Freetype 2 knihovna: freetype-2.1.9.tar.bz2
Kompilace libiconv ze zdroje:
cd /usr/local/src tar -zxvf libiconv-1.9.2.tar.gz cd libiconv-1.9.2 ./configure --prefix=/usr/local make make install
Kompilace libjpeg ze zdroje:
cd /usr/local/src tar -zxvf jpegsrc.v6b.tar.gz cd jpeg-6b ./configure --prefix=/usr/local make make install make install-lib
Kompilace libpng ze zdroje:
cd /usr/local/src tar -zxvf libpng-1.2.8.tar.gz cd libpng-1.2.8 cp scripts/makefile.linux makefile make make install
Kompilace cpdflib ze zdroje:
cd /usr/local/src tar -zxvf clibpdf202r1.tar.gz cd ClibPDF/source cp Makefile.Linux makefile make make install
Kompilace curl ze zdroje:
cd /usr/local/src tar -zxvf curl-7.12.1.tar.gz cd curl-7.12.1 ./configure --prefix=/usr/local make make install
Kompilace Freetype 2 ze zdroje:
cd /usr/local/src tar -jxvf freetype-2.1.9.tar.bz2 cd freetype-2.1.9 ./configure --prefix=/usr/local make make install
Následuje kompilace PHP, s podporou pro MySQL, iconv, curl, zlib, gd2, mbstring, SSL a další moduly, včetně debug módu:
cd /usr/local/src tar -jxvf php-5.0.3.tar.bz2 cd php-5.0.3 ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-mysql-sock=/tmp/mysql.sock \ --with-sqlite \ --enable-sqlite-utf8 \ --with-zlib \ --with-zlib-dir \ --with-bz2 \ --with-gd \ --enable-gd \ --enable-gd-native-ttf \ --with-jpeg-dir=/usr/local \ --with-png-dir=/usr/local \ --with-ttf \ --with-freetype-dir=/usr/local \ --with-iconv=/usr/local \ --with-curl=/usr/local \ --enable-track-vars \ --with-gettext \ --with-config-file-path=/usr/local/apache2/conf \ --enable-trans-id \ --enable-ftp \ --with-cpdflib=/usr/local \ --enable-mbstring \ --with-openssl=/usr/local make make install cp php.ini-dist /usr/local/apache2/conf/php.ini
Následně musíme modifikovat konfigurační soubor PHP /usr/local/apache2/conf/php.ini
:
mysql.default_socket = /tmp/mysql.sock short_open_tag = Off register_globals = Off allow_url_fopen = Off
Jak spouštět Apache a MySQL při startu serveru?
Poslední věcí je vytvořit si skript, který nastartuje Apache a MySQL automaticky
při startu serveru. Vytvoříme si soubor /etc/init.d/web
a nastavíme
mu “executable” příznak.
#! /bin/sh # # /etc/init.d/web # # (c) Radek HULAN # http://hulan.cz/ # ### BEGIN INIT INFO # Provides: apache-mysql # Default-Start: 5 # Default-Stop: 5 # Description: Starts Apache2 and MySQL 4 ### END INIT INFO case "$1" in start) /usr/local/apache2/bin/apachectl start /usr/local/mysql/share/mysql/mysql.server start ;; stop) /usr/local/apache2/bin/apachectl stop /usr/local/mysql/share/mysql/mysql.server stop ;; restart) /usr/local/apache2/bin/apachectl restart /usr/local/mysql/share/mysql/mysql.server restart ;; esac
Potom spustíme YaST, sekce “System”, sub-sekce “Run level
editor”, kde povolíme službu web
pro runlevel 3 a 5.
Testování systému ?
Nejdříve nastartujeme Apache a MySQL server:
/etc/init.d/web start
A poté vytvoříme soubor /home/www/index.php
s tímto obsahem:
<?php phpinfo(); ?>
Ve Vašem browseru zadejte URL http://localhost/
a //localhost/
,
a pokud je vše instalováno řádně, ukáže se Vám řada informací o Vaší nové Apache/MySQL/PHP
instalaci.
phpMyAdmin:
Rovněž budeme potřebovat phpMyAdmin aplikaci, pro správu MySQL serveru pomocí
browseru, zadáním http://localhost/db/
do URL:
- phpMyAdmin 2.6.1.tar.bz2 - phpMyAdmin-2.6.1.tar.bz2
Instalace phpMyAdmina do adresáře /home/www/db
:
mkdir /home/www cd /home/www tar -jxvf /usr/local/src/phpMyAdmin-2.6.1.tar.bz2 ln -s phpMyAdmin-2.6.1 db
Následně, povolíme některé rozšířené vlastnosti phpMyAdmina, pomocí modifikace
souboru /home/db/config.inc.php
:
// URL to phpMyAdmin $cfg['PmaAbsoluteUri'] = 'http://localhost/db/'; //connection settings $cfg['Servers'][$i]['connect_type'] = 'socket'; $cfg['Servers'][$i]['extension'] = 'mysqli'; // user na password $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; // PMA settings $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark'; $cfg['Servers'][$i]['relation'] = 'pma_relation'; $cfg['Servers'][$i]['table_info'] = 'pma_table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma_column_info'; $cfg['Servers'][$i]['history'] = 'pma_history'; $cfg['Servers'][$i]['verbose_check'] = FALSE; // persistent connections $cfg['PersistentConnections'] = TRUE; // do not display logo on the left $cfg['LeftDisplayLogo'] = FALSE; // show MySQL and PHP info $cfg['ShowMysqlInfo'] = TRUE; $cfg['ShowMysqlVars'] = TRUE; $cfg['ShowPhpInfo'] = TRUE; // show BLOBs $cfg['ShowBlob'] = TRUE;
Potom použijeme SQL okno phpMyAdmina ke spuštění skriptu /home/www/db/scripts/create_tables_mysql_4_1_2+.sql
,
který vytvoří základní PMA tabulky (phpMyAdmin je potřebuje pro svoji činnost).
Debugger pro PHP:
Existuje několik nástrojů a IDE pro debugování a profilování PHP kódu, nejlepší z nich je rozhodně PHPeclipse, vysoce kvalitní IDE. Pro použití PHPeclipse je nutné nejdříve zprovoznit PHP debugger.
- Budete potřebovat Nusphere DBG: dbg-2.11.32-src.tar.gz.
Instalace:
cd /usr/local/src tar -zxvf dbg-2.11.32-src.tar.gz cd dbg-2.11.32 ./deferphpize mkdir /usr/local/modules cp modules/dbg.so /usr/local/modules cp modules/dbg.la /usr/local/modules
Potom musíme modifikovat PHP konfigurační soubor /usr/local/apache2/conf/php.ini
:
; nahrání modulu debuggeru extension_dir = "/usr/local/modules" extension=dbg.so ; konfigurace debuggeru [debugger] debugger.enabled = true debugger.profiler_enabled = true debugger.JIT_host = localhost debugger.JIT_port = 10001 debugger.JIT_enabled = on ; implicitní flush - použijte jen při ladění implicit_flush = On
Potřebujete i mod_perl?
- Stáhněte si mod_perl-2.0-current.tar.gz.
Instalace a kompilace:
cd /usr/local/src tar zxvf mod_perl-2.0-current.tar.gz cd mod_perl-1.99_16 perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs make make install
Následně musíme modifikovat konfigurační soubor Apache, tedy /usr/local/apache2/conf/httpd.conf
pro použití mod_perl v adresáři /home/www/perl
:
LoadModule perl_module modules/mod_perl.so PerlModule Apache2 Alias /perl/ /home/www/perl/ <Location /perl/> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders Options +ExecCGI </Location>
Otestování instalace? Vytvořte soubor /home/www/perl/test.pl
, chmod 755 test.pl
, a jděte na URL http://localhost/perl/test.pl
.
#!/usr/bin/perl print "Content-type: text/plain\n\n"; print "mod_perl 2.0 rocks!\n";
Není mi jasná jedna věc.. Ty konfigurační postupy si každý pamatuje z hlavy, nebo na to existují nějaké "bat" soubory?
Pod Windows mi stačí změnit jeden řádek a PHP má ihned podporu té které knihovny, tady to vypadá na dost dlouho...
[1] no, ono zprovoznit curl, openssl, mod_rewrite a další taky není věcí jednoho řádku na Windows.. Nicméně, Windows jsou jedny, proto pro ně je jedna binárka (exe, dll), Linuxu jsou mraky distribucí, a pro maximální výkon a požadavané komponenty je v podstatě nutné si vše zkompilovat, protože binárku, jakou zde představuji, ta prostě normálně neexistuje. Musí se vyrobit pro každý stroj zvlášť. Odměnou je ale podstatně vyšší rychlost než na Windows..
To celé se samozřejmě, třeba i s
wget
, dá dát do jednoho skriptu, ten se pak jen spustí, a je vše automaticky hotovo :-)Už je mi to jasnější.
Například
wget
často používám i na Windows..[2] Tak moment. Ja mam svy PHP zkompilovany (na linuxu) a/nebo nastaveny (windows) tak tak aby tyhle features (gd2, curl, gettext...) nahravalo jako moduly. Na windows je to jasny, tam se mi nechce kompilovat a i v linuchu mi prijde pohodlnejsi jenom prelozit jeden modul a/nebo odkomentovat/zakomentovat radek v php.ini, kdyz neco potrebuju nebo ne. Co se tyka ostreho serveru tam jenom oznamim systemakovi co tam pouzivame za knihovny a co tam bude za extensions. A predpokladam, ze on to kompiluje jako jako jeden moloch pro apache. Ale je fakt, ze me certa stareho zajima, jak to ma udelany - hlavne ze to funguje :-).
[1] no to nastaveni kompilace php si hodis do nejakyho skriptu, souboru a pouzijes priste pri kompilaci. Pamatovat si vsechny parametry a jejich pouziti, ktery na tebe vyhodi ./configure --help je jednak neskutecna otrocina a druhak naprosta blbost :-).
Při kompilaci cpdflib:
root@router:/usr/local/src/ClibPDF# make
make: *** No rule to make target `endian.c', needed by `endian.h'. Stop.
V čem je problem!
[5] asi špatně čteš manuál, zapomněl jsi zřejmě na
cp source/Makefile.Linux makefile
Zdravicko, pri instalaci na Mandrake 10.0 se pri instalaci PHP vyskytne tato chybicka (nechal sem tam i zacatek treba je problem uz v nem), chyba je na konci
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-zlib --with-zlib-dir=/usr/local --with-bz2 --with-gd --enable-gd --enable-gd-native-ttf --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-ttf --with-freetype-dir=/usr/local --with-iconv=/usr/local --with-curl=/usr/local --enable-track-vars --with-gettext --with-config-file-path --cache-file=/home/olda/Install/erorrlogPHP
creating cache /home/olda/Install/erorrlogPHP
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for AIX... no
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking for re2c... exit 0;
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for mawk... no
checking for gawk... gawk
checking for bison... no
checking for byacc... no
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 2418: lex: command not found
configure: error: cannot find output from lex; giving up
[7] instaluje si z rpm
flex
, třeba zde:http://rpmseek.com/rpm-dl/flex-2.5.4a-21mdk.src.html?hl=com&cs=lex:PN:0:0:0:20:1321970...
Zdravicko, tak mam znovu jeden dotaz, pri instalaci mysql na Mandrake 10.0 se vyskytne tato chyba
[root@Slon mysql]# bin/mysql_install_db --user=mysql
Installing all prepared tables
/usr/local/mysql/libexec/mysqld: Can't read dir of '/root/tmp/' (Errcode: 13)
Fill help tables
/usr/local/mysql/libexec/mysqld: Can't read dir of '/root/tmp/' (Errcode: 13)
ERROR: 1153 Got a packet bigger than 'max_allowed_packet' bytes
041203 9:10:06 [ERROR] Aborting
041203 9:10:06 [Note] /usr/local/mysql/libexec/mysqld: Shutdown complete
co stim?
OT:
Dobry den,
prave rozchazim Fedoru vedle Windows. Hodne pisu v PHP (zivi me to). Rad bych proto rozchodil Apache tak, aby met DocumentRoot stejny v Linuxu i ve Windows. Aby mi bylo jedno co nabootuju, prizemz apache bude porad pracovat jen s jednema datama.
Data uz mam presunuty na partition ve Fat32. Co dal ???
Dekuji
[10] no přece v
httpd.conf
nastavitDocumentRoot
na stejnej adresář.. ;)Moc pěkný návod pro nás začátečníky, ale narazil jsem na problém při instalaci php. Nevíte někdo v čem je problém?
Díky Rad
[root@web php-5.0.2]# make install
Installing PHP SAPI module: apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp libphp5.la /usr/local/apache2/modules/
cp .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la
cp .libs/libphp5.a /usr/local/apache2/modules/libphp5.a
ranlib /usr/local/apache2/modules/libphp5.a
chmod 644 /usr/local/apache2/modules/libphp5.a
libtool: install: warning: remember to run `libtool --finish /usr/local/src/php-5.0.2/libs'
Warning! dlname not found in /usr/local/apache2/modules/libphp5.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2/modules/libphp5.so
chmod: cannot access `/usr/local/apache2/modules/libphp5.so': není souborem ani adresářem
apxs:Error: Command failed with rc=65536
.
make: *** [install-sapi] Error 1
[12] vypadá to, jako by jsi neměl nainstalovaný Apache, ten musíš zkompilovat před instalací PHP..
Tak jsem přeinstaloval FC3 a došel jsem k úplně stejnýmu výsledku.
Akorát jsem minule zapoměl napsat že první chybová hláška se objeví již při ./configure
php ( na konci konfigurace to vypíše --with-mysql=/usr/local/mysql: není souborem ani adresářem).
Apache a mysql proběhly v pohodě a určitě jsou nainstalovaný. Dík za radu
na internetu jsem našel úvahu, že tento problém vzniká tím že v /usr/lib nejsou soubory libintl.so a libxml2so. Já jsem tyto soubory nenašel vůbec. Jestli je někdo v FC3 máte řekněte mě kde se nacházej a příp. do jakýho rpm patřej Dík
docela zajimavy clanek, chybeli mi tam akorat informace o tom jak si to podepsat vlastnorucne - kdyby to nekdo hledal i nekdo jiny, tak docela zajimavy navod ja tady: http://www.garex.net/apache/
Pokousim se nainstalovat MySQL ale po zkonfigurovani viz. navod my chybi makefile.. v /usr/local/src/mysql-4.1.8# jsou mu podobne jen Makefile.am a Makefile.in ! tudiz mi nefunguje:
make
make install
prosim poradte mi nekdo co s tim,, dekuji
[15] /usr/lib/libxml2.so patri do balicku libxml2-devel. libintl.so nepotrebujes, vsetky funkcie [XXXgettext] su v glibc.
Ad init skript: hodí se tam po vzoru těch z distribuce přidat do
case
větev, díky které bude skript blbuvzdorný:*)
log_success_msg: "Usage: /etc/init.d/web {start|stop|restart}"
exit 1
;;
Cau,
mám při instalaci PHP následující problém:
linux:/usr/local/src/php-5.0.3 # make install
Installing PHP SAPI module: apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp libphp5.la /usr/local/apache2/modules/
cp .libs/libphp5.so /usr/local/apache2/modules/libphp5.so
cp .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /usr/local/src/php-5.0.3/libs'
chmod 755 /usr/local/apache2/modules/libphp5.so
[activating module `php5' in /usr/local/apache2/conf/httpd.conf]
Installing PHP CLI binary: /usr/local/bin/
Installing PHP CLI man page: /usr/local/man/man1/
Installing PEAR environment: /usr/local/lib/php/
make[.1]: *** [install-pear-installer] Illegal instruction
make: *** [install-pear] Error 2
Nevíte někdo, co je tam špatně? Všechno jsem dělal podle návodu a všechno bylo ok až na tohle. Distribuce - SuSE 9.2
[20] zkus kompilaci PHP s
--disable-pear
Díky. Tohle pomohlo.
Mám problém s instalací na Fedore3. Při nastavování mysql, konkrně při provádění příkazu bin/mysql_install_db --user=mysql mi to vypsalo toto:
[paat@localhost mysql]# bin/mysql_install_db --user=mysql
Neither host 'localhost.localdomain' nor 'localhost' could be looked up with
/usr/local/mysql/bin/resolveip
Please configure the 'hostname' command to return a correct hostname.
If you want to solve this at a later stage, restart this script with
the --force option
Tak nějak sem doufal, že to bude OK a pokračoval dál. V průběhu další instalace to už bylo vše OK. Na konci sem vytvořil ten soubor /etc/init.d/web (ve fedoře /etc/rc.d/init.d/web) a poté se ho pokusil spustit přes shell, ale vypsalo mi to toto:
[paat@localhost ~]# /etc/rc.d/init.d/web start
[Thu Mar 10 13:50:56 2005] [warn] module php5_module is already loaded, skipping
httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Po naťukání http://localhost/ se mi ve firefoxu zobrazila stránka http://localhost.be ;-( . Co s tím? Sem linuxová lama.
Zkompiloval sem apache a php s mysql podle návodu a jedou mi v pořádku do doby, než do httpd.conf přidám řádek
LoadModule php5_module modules/libphp5.so
Poté mám v errorlogu následující chybu(ono se to moc jako chyba netváří):
[Sat Mar 12 14:17:52 2005] [notice] Digest: generating secret for digest authentication ...
[Sat Mar 12 14:17:52 2005] [notice] Digest: done
Apache nejdou nastartovat. Co s tím?
[23] zkus napsat do
hosts
toto:127.0.0.1 localhost
[25] Díky, ale přišel sem na to už dřív. Stejně díky za odpověď.
Muze mi prosim nekdo poradit, instaloval jsem MySQL podle navodu a dal jsem rozbalit archiv, ./configure (vsechno v pohode), potom jsem tam hodil "make" a PCcko to asi po vic jak 20 minutach hodilo:
Unable to handle kernel paging reguest at virtual address 00001367
*pde=00000000
Oops: 0000
CPU: 0
EIP: 0010:[<00001367>] Not tainted
EFLAGS: 00010282
....
CODE: Bad EIP Value
----------------------------
Prosim poradte co s tim, v linuxech jsem celkem zacatecnik, tak rady na teto urovni ;)
Jinak jsem to instaloval na Linux SlackWare 10.1
/Prosim nekomentujte proc zacatecnik a Slackware :)
Predem moc diky za rady!
[12] Zkuste se podívat na tohle fórum http://www.linuxdeveloper.net/forum/showthread.php?t=23665...
Zkontrolujte jestli máte knihovny libintl.so a libxml2.so v /usr/lib
Muzete mi prosim poradit, mam podobny problem jak uz tu byl s libphp5.so, ty knihovny jsem zkotroloval a mam je..opravdu netusim co s tim mam delat (doufam ze nevadi ze mam MySQL instalovany z RPM balicku, podle prikazu to neslo...), prosim poradte mi nekdo....mam Mandrake 10.0
dobrý den mám otázku jaký je rozdíl v phpmyadmin nastavení utf8_czech_ci a utf8_general_ci?
Zdravim,
pouzivam FC4 a mam presne dle navodu vyse naistalovano vse popsane. Bezi to ok az do okamziku, nez se pokusim pripojit na https://localhost [:443]. Pak dostavam hlasku "Spojeni odmitnuto...". Spise to vypada, ze mam nekde zle nastaveny firewall, ale ochranu SELinux jsem vypnul a iptables maji povoleno new:https. Apache nastartuje naprosto bez problemu (nic nehlasi) a PHPInfo rika, ze mod_ssl je nacten. Netusite nekdo, kde mam hledat problem?? DIKY!!
[31]
skus si najprv zistit, ci mas vobec port 443 na masine otvoreny, teda ci ti na nom bezi apache. najjedoduchsie to zistis tak, ze si oskenujes otvorene porty na localhoste, ako root
hod prikaz 'nmap -sS localhost'
pokial nmap nainstalovany nemas, stiahni si ho napriklad z rpm a nainstaluj. alebo nudzovo mozes pouzit obycajne 'telnet localhost 443'.
pokial ti na 443 nic nebezi, pozri do httpd.conf ci mas v apache definovany SSL virtual server.
a tiez checkni iptables cez 'iptables -L' ci to tam nemas bloknute, co si myslim nemalo byt.
kurnik, teraz mi to doslo, ospravedlnujem sa za diakritiku...
[32] Díky za pomoc, SSL virtual server jsem v httpd.conf neměl. Byl jen v ssl.conf a tam to bylo k ničemu. Také jsem do httpd.conf musel přidat Listen 443. Použití nmap mi velice pomohlo. Přikládám kus svého httpd.conf pro všechny "lamy" :) a ještě dodám, že velice dobrý návod pro hloupé je přímo na stránce httpd.apache.org/docs-2.0/vhosts.
Listen 80
Listen 443
<VirtualHost _default_:80>
DocumentRoot /var/www/html
ServerName localhost
</VirtualHost>
<VirtualHost _default_:443>
DocumentRoot /var/www/html
ServerName localhost
SSLEngine on
SSLCertificateFile /home/ssl/localhost.cert
SSLCertificateKeyFile /home/ssl/localhost.key
</VirtualHost>
vše mi fungovalo, jen při kofiguraci PHP (./configure ...)
mi to napsalo chybové hlášení:
checking lex output file root... ./configure: line 2420: lex: command not found
configure: error: cannot find output from lex; giving up
Nevíte co s tím?
[34] nainstaluj si
lex
, zjevně jej nemášDobry vecer, zkompiloval jsem si na serveru gd2 a libpng, mam php 5.0.5..ovsem bez techto knihoven...kompilace probehla dle vaseho navodu v poradku, ale nevim jak aktivovat nebo jak to nazvat ty knihovny... diky za pripadnou odpoved...