PHP kézikönyv

Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Georg Richter
Damien Seguy
Jakub Vrana
2007-11-25
Philip Olson
Fordítók:
Bagi Levente László
Csontos András
Heilig Szabolcs
Hojtsy Gábor
Kontra Gergely
Papp Győző
Tóth Attila
Varanka Zoltán
Másképpen segített:
Jouni Ahto

Copyright

Copyright © 1997 - 2007 by the PHP Documentation Group. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later. A copy of the Open Publication License is distributed with this manual, the latest version is presently available at » http://www.opencontent.org/openpub/.

Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.

Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.

In case you are interested in redistribution or republishing of this document in whole or in part, either modified or unmodified, and you have questions, please contact the copyright holders at » doc-license@lists.php.net. Note that this address is mapped to a publicly archived mailing list.

The Hiányzó elemek section of the documentation is based on an initial contribution by Zend Technologies.



A magyar copyright megegyezik az angol feltételekkel. Az Open Publication License egy másolata ezen dokumentációhoz csatolva is olvasható. A PHP kézikönyv magyar fordításának oldala a » http://wfsz.njszt.hu/projektek_phpdoc.php címen található. A fordítók nevei szintén a fedlapon olvashatóak.



Előszó

A PHP, bővebben "PHP: Hypertext Preprocessor" egy széles körben használt, nyílt forráskódú, általános célú programozási nyelv, különösen jó web-fejlesztés támogatással, és HTML-be ágyazási képességekkel. A szintakszisa a C, Java és Perl nyelvekre épül, könnyen megtanulható. A nyelv fő célja lehetőséget teremteni dinamikusan generált weboldalak gyors készítésére, de a PHP ennél sokkal többre is képes.

Ez a kézikönyv legfőképpen függvény referenciaként használható, azonban a nyelvi elemek ismertetése is megtalálható benne, a főbb PHP szolgáltatások leírása, és más kapcsolódó információk mellett.

Ez a kézikönyv számos nyelven és formátumban letölthető a » http://www.php.net/download-docs.php címen. Ha érdekel, hogyan készül ez a kézikönyv, olvasd el az 'About the manual' című függeléket. Ha a PHP történetére vagy kíváncsi, olvasd el az idevontakozó függeléket.

A magyar kézikönyvet téritésmentesen készítjük, szabadidőnkben. A le nem fordított fejezetek mindig a legfrissebb angol szöveggel jelennek meg, ezért vegyes nyelvű oldalakkal igen ritkán fogsz találkozni. Időnként az azonban előfordulhat, hogy bizonyos már lefordított fejezetek nem teljesen aktuálisak. Emiatt ha mindig aktuális és pontos információra van szükséged, és értesz angolul, érdemes ezt a kézikönyvet az angol változattal párhuzamosan használni. Az esetleges kellemetlenségekért elnézést kérünk, bár felelősséget természetesen nem tudunk vállalni.

A PHP kézikönyv magyar fordítása a » Neumann János Számítógép-tudományi Társaság Webalkalmazások Fejlesztése Szakosztályának egyik projektje. A fordítás oldala a » http://wfsz.njszt.hu/projektek_phpdoc.php címen található. Ha szeretnél bekapcsolódni a fordításba, látogasd meg ezt a címet.

Szerzők és más segítők

Az utóbbi idők leginkább aktív szerzőit soroljuk fel a kézikönyv fedőlapján, de fontos megjegyeznünk, hogy sokkal több hozzájáruló segítő dolgozik jelenleg is a PHP dokumentáción, és még többen segítettek a múltban. Szintén sok névtelen személy van, akik beküldött megjegyzéseikkel, kommentárjaikkal egészítették ki a kézikönyvet, hiszen ezeket időről időre beépítjük az oldalakba. Minden alább látható lista ábécésorrendben sorolja fel a segítőket.

Szerzők és szerkesztők

A következő hozzájáruló segítők a kézikönyv írásával, kibővítésével jelentős mértékben hatottak a jelenlegi tartalomra: Bill Abt, Jouni Ahto, Alexander Aulbach, Daniel Beckham, Stig Bakken, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Hannes Magnusson, Stanislav Malyshev, Rafael Martinez, Rick McGuire, Yasuo Ohgaki, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar és Andrei Zmievski.

A következő hozzájáruló segítők jelentős munkát fektettek a kézikönyv szerkesztésébe: Stig Bakken, Gabor Hojtsy, Hartmut Holzgraefe és Egon Schmid.

Felahsználói megjegyzések kezelői

A jelenleg legaktívabb karbantartók: Mehdi Achour, Etienne Kneuss, Nuno Lopes, Hannes Magnusson, Bobby Matthis és Maciek Sokolewicz.

A következő személyeket szintén köszönet illeti jelentős részvételükért: Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Maxim Maletsky, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles és Jeroen van Wolffelaar.



Első lépések

Table of Contents


Bevezetés a PHP-be

Table of Contents

Mi az a PHP?

A PHP (rekurzív rövidítéssel "PHP: Hypertext Preprocessor") széles körben használt általános célú szkriptnyelv, amely kifejezetten alkalmas - akár HTML-be ágyazott - webalkalmazások fejlesztésére.

Egyszerű meghatározás, de mit is jelent ez valójában? Egy példán bemutatva:

Example#1 Egy bevezető példa

<html>
    <head>
        <title>Példa</title>
    </head>
    <body>

        <?php
        
echo "Helló, Én egy PHP szkript vagyok!";
        
?>

    </body>
</html>

Vedd észre, hogy ez mennyire különbözik más nyelveken (például Perl vagy C) írt hagyományos szkripttől. Sok parancsból álló programok helyett csak egy HTML fájlba kell egy kevés programkódot beépíteni, hogy a megfelelő HTML kimenetet produkálja. A PHP kódblokkokat speciális kezdő és befejező jelölések közé kell elhelyezni, és ezek biztosítják, hogy a feldolgozás során a váltogathasd a "PHP módot".

Az különbözteti meg a PHP-t a kliens oldali nyelvektől - pl. JavaScript -, hogy a kód a kiszolgálón fut. Az első példában látható oldal eredményét böngészőben megnézve, nem lehet megállapítani, hogy milyen kód állíthatta azt elő. Ezen felül a webszervert be lehet állítani úgy, hogy a PHP feldolgozzon minden HTML fájlt PHP blokkokat keresve, ezek után már tényleg nincs rá mód, hogy kitalálják, mit is rejt egy-egy programod.

A legjobb dolog a PHP használatában, hogy különösen egyszerű egy kezdő számára, de számos, fejlett szolgáltatást nyújt professzionális programozó számára is. Ne ijesszen el a PHP hosszú szolgáltatás listája. Gyors léptekkel lehet haladni a PHP használatában, és pár órán belül már egyszerű szkriptek írására is képes lehetsz.

Habár a PHP fejlesztésében a szerver-oldali programozás kapja a legnagyobb hangsúlyt, annál sokkal többet tud. Olvasd tovább ezt a fejezetet a Mit tud a PHP? című résszel folytatva, vagy ugorj el a bevezető oktatóanyagunkra, ha csupán úgy általában vagy kíváncsi a web programozására.


Mit tud a PHP?

Bármit. A PHP főleg szerver-oldali szkriptek írására készült, azaz bármire képes, amit más CGI programok el tudnak végezni, ilyen funkciók az űrlap adatok feldolgozása, dinamikus tartalom generálása, vagy sütik küldése és fogadása. De a PHP ennél sokkal többet tud.

Három fő területen használnak PHP programokat.

  • Szerver oldali programozás. Ez a hagyományos, és fő használati formája a PHP-nek. Három komponens szükséges ahhoz, hogy ezt a formát használhasd. Az első a PHP értelmező (CGI vagy szerver modul formájában), egy webszerver és egy webböngésző. Egy webszerverrel mindenképpen rendelkezni kell, megfelelően telepített és beállított PHP-vel. A PHP program kimenetét a webböngészővel lehet megtekinteni, a szerveren keresztül elérve a szkriptet. Mindezek képesek elutni a te otthoni gépeden is, ha csupán csak ismerkedni kívánsz a nyelvvel. Lásd a telepítési utasításokatc. részt további információkért!
  • Parancssori programozás. PHP programok szerver és böngésző nélkül is futtathatóak. Ha ilyen környezetben szeretnéd használni a PHP-t, csak a PHP értelmezőre van szükséged. Ebben a formában gyakran valamilyen ütemező program segítségével (cron *nix és Linux alatt, Task Scheduler Windows alatt) futtatott programokat írnak, vagy egyszerű szövegfeldolgozó szkripteket készítenek. Lásd a Parancssori használat című függeléket további információért!
  • Ablakozós alkalmazások írása. A PHP valószínűleg nem a legjobb nyelv grafikus felületű asztali alkalmazások írásához, de ha nagyon jól ismered a PHP-t, és szeretnél néhány fejlett PHP szolgáltatást használni a kliens-oldali programjaidban, a PHP-GTK-t is használhatod ilyen programok írásához. Ezt használva lehetőséged van operációs rendszerfüggetlen programok írására is. A PHP-GTK a PHP egy kiterjesztése, nem érhető el a hivatalos PHP csomagban. Ha további információkra van szükséged látogsd meg a » PHP-GTK webhelyet!

A PHP használható a legfontosabb operációs rendszereken, beleértve a Linuxot, sok Unix változatot (beleértve a HP-UX, Solaris és OpenBSD rendszereket), a Microsoft Windows-t, a Mac OS X rendszert, a RISC OS-t, és másokat. A PHP a legtöbb webszervert is támogatja, beleértve az Apache, Microsoft Internet Information Server, Personal Web Server, Netscape és iPlanet szervereket, az Oreilly Website Pro, Caudium, Xitami, OmniHTTPd, és más szervereket. A legtöbb szerverhez a PHP modul szintű támogatást nyújt, de más a CGI szabványt támogató szerverekkel is együtt tud működni CGI feldolgozóként.

Összességében a PHP használatakor szabadon választhatsz operációs rendszert és webszervert. Ráadásul a függvény-alapú és objektum orientált programozás, vagy ezek keveréke közötti választás is rajtad áll. Bár nem minden szokásos OOP szolgáltatás került megvalósításra a PHP 4-es változatában, sok eljáráskönytár és nagyobb alkalmazás is az OOP-t használja, például a PEAR könyvtár. A PHP 5-ös változata helyreteszi a PHP 4 OOP terén mutatott gyengeségeit, teljes objektum modell áll rendelkezésünkre.

A PHP képességei nem csak HTML kimenet előállítására korlátozódnak. Képeket, PDF állományokat vagy akár Flash mozikat (libswf vagy Ming kiterjesztéssel) is létrehozhatsz futásidőben. Természetesen egyszerűen generálhatsz bármilyen szöveges kimenetet, mint az XHTML vagy bármilyen más XML. A PHP elő tudja állítani ezeket az állományokat, és el tudja menteni a szerven a közvetlen kiküldésük helyett, valamilyen szerver-oldali gyorsítótárat valósítva meg ezzel.

Az egyik legjobb és legfontosabb tulajdonsága a nyelvnek az adatbázisok széles körű támogatása. Adatbázisokat kezelő weblap készítése PHP segítségével hihetetlenül egyszerű. A következő adatbázisok támogatja jelenleg:

  • Adabas D
  • dBase
  • Empress
  • FilePro (csak olvasásra)
  • Hyperwave
  • IBM DB2
  • Informix
  • Ingres
  • InterBase
  • FrontBase
  • mSQL
  • Direct MS-SQL
  • MySQL
  • ODBC
  • Oracle (OCI7 és OCI8)
  • Ovrimos
  • PostgreSQL
  • SQLite
  • Solid
  • Sybase
  • Velocis
  • Unix dbm
A PHP rendelkezik egy adatbázis absztrakciós kiterjesztéssel is (PDO), amellyel egyöntetűen és áttetsző módon lehet kezelni bármilyen adatbázist, amit ez a kiterjesztés támogat. Ezen kívül a PHP támogatja az ODBC-t, ezért bármilyen más, ezt a szabványt támogató adatbázishoz is lehet kapcsolódni.

A PHP támogatja a kommunikációt más szolgáltatásokkal is különböző protokollok segítségével, úgy mint LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (Windows rendszeren), és számos más. Sőt, nyithatsz hálózati foglalatokat is (socket) és kommunikálhatsz más protokolokkal is. A PHP támogatja a WDDX komplex adatcseréket, ami bármely más web programozási nyelvvel való kommunikációt megkönnyíheti. A PHP szintén rendelkezik a Java objektumok létrehozásának, és átlátszóan PHP objektummokként való kezelésének képességével. A CORBA kiterjesztés távoli objektumok elérésére használható.

A PHP rendkívül jó szövegfeldolgozó képességekkel rendelkezik, a POSIX és Perl reguláris kifejezésektől az XML állományok kezeléséig. Az XML dokumentumok feldologozásához és eléréséhez PHP4-ben a SAX és DOM szabványok is használhatóak, Az XSLT kiterjesztés XML dokumentumok általakítására használható. A PHP 5 az XML kapcsolatos feladatokat egységesen, a libxml2 függvénykönyvtárra támaszkodva látja el. Ezen biztos alapokon a PHP 5 bevezeti a SimpleXML és az XMLReader támogatást is.

Végül, de nem utolsósorban a PHP számos más érdekes kiterjesztéssel szolgálhat, mint például az mnoGoSearch kereső függvények, az IRC átjáró függvények, tömörítő eszközök (gzip, bz2, zip), naptár átalakítás, fordítás...

Ahogy látható, ez az oldal nem elegendő a PHP minden szolgáltatásának és előnyének felsorolásához. Lásd a PHP telepítése és a függvény referencia részeket további információkért!




Here we would like to show the very basics of PHP in a short, simple tutorial. This text only deals with dynamic web page creation with PHP, though PHP is not only capable of creating web pages. See the section titled What can PHP do for more information.

PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them the same way you normally create regular HTML pages.

What do I need?

In this tutorial we assume that your server has activated support for PHP and that all files ending in .php are handled by PHP. On most servers, this is the default extension for PHP files, but ask your server administrator to be sure. If your server supports PHP, then you do not need to do anything. Just create your .php files, put them in your web directory and the server will automatically parse them for you. There is no need to compile anything nor do you need to install any extra tools. Think of these PHP-enabled files as simple HTML files with a whole new family of magical tags that let you do all sorts of things. Most web hosts offer PHP support, but if your host does not, consider reading the » PHP Links section for resources on finding PHP enabled web hosts.

Let us say you want to save precious bandwidth and develop locally. In this case, you will want to install a web server, such as » Apache, and of course » PHP. You will most likely want to install a database as well, such as » MySQL.

You can either install these individually or choose a simpler way. Our manual has installation instructions for PHP (assuming you already have some web server set up). In case you have problems with installing PHP yourself, we would suggest you ask your questions on our » installation mailing list. If you choose to go on the simpler route, then » locate a pre-configured package for your operating system, which automatically installs all of these with just a few mouse clicks. It is easy to setup a web server with PHP support on any operating system, including MacOSX, Linux and Windows. On Linux, you may find » rpmfind and » PBone helpful for locating RPMs. You may also want to visit » apt-get to find packages for Debian.


Your first PHP-enabled page

Create a file named hello.php and put it in your web server's root directory (DOCUMENT_ROOT) with the following content:

Example#1 Our first PHP script: hello.php

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'?> 
 </body>
</html>

Use your browser to access the file with your web server's URL, ending with the "/hello.php" file reference. When developing locally this URL will be something like http://localhost/hello.php or http://127.0.0.1/hello.php but this depends on the web server's configuration. If everything is configured correctly, this file will be parsed by PHP and the following output will be sent to your browser:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <p>Hello World</p>
 </body>
</html>

This program is extremely simple and you really did not need to use PHP to create a page like this. All it does is display: Hello World using the PHP echo() statement. Note that the file does not need to be executable or special in any way. The server finds out that this file needs to be interpreted by PHP because you used the ".php" extension, which the server is configured to pass on to PHP. Think of this as a normal HTML file which happens to have a set of special tags available to you that do a lot of interesting things.

If you tried this example and it did not output anything, it prompted for download, or you see the whole file as text, chances are that the server you are on does not have PHP enabled, or is not configured properly. Ask your administrator to enable it for you using the Installation chapter of the manual. If you are developing locally, also read the installation chapter to make sure everything is configured properly. Make sure that you access the file via http with the server providing you the output. If you just call up the file from your file system, then it will not be parsed by PHP. If the problems persist anyway, do not hesitate to use one of the many » PHP support options.

The point of the example is to show the special PHP tag format. In this example we used <?php to indicate the start of a PHP tag. Then we put the PHP statement and left PHP mode by adding the closing tag, ?>. You may jump in and out of PHP mode in an HTML file like this anywhere you want. For more details, read the manual section on the basic PHP syntax.

Note: A Note on Line Feeds Line feeds have little meaning in HTML, however it is still a good idea to make your HTML look nice and clean by putting line feeds in. A linefeed that follows immediately after a closing ?> will be removed by PHP. This can be extremely useful when you are putting in many blocks of PHP or include files containing PHP that aren't supposed to output anything. At the same time it can be a bit confusing. You can put a space after the closing ?> to force a space and a line feed to be output, or you can put an explicit line feed in the last echo/print from within your PHP block.

Note: A Note on Text Editors There are many text editors and Integrated Development Environments (IDEs) that you can use to create, edit and manage PHP files. A partial list of these tools is maintained at » PHP Editors List. If you wish to recommend an editor, please visit the above page and ask the page maintainer to add the editor to the list. Having an editor with syntax highlighting can be helpful.

Note: A Note on Word Processors Word processors such as StarOffice Writer, Microsoft Word and Abiword are not optimal for editing PHP files. If you wish to use one for this test script, you must ensure that you save the file as plain text or PHP will not be able to read and execute the script.

Note: A Note on Windows Notepad If you are writing your PHP scripts using Windows Notepad, you will need to ensure that your files are saved with the .php extension. (Notepad adds a .txt extension to files automatically unless you take one of the following steps to prevent it.) When you save the file and are prompted to provide a name for the file, place the filename in quotes (i.e. "hello.php"). Alternatively, you can click on the 'Text Documents' drop-down menu in the 'Save' dialog box and change the setting to "All Files". You can then enter your filename without quotes.

Now that you have successfully created a working PHP script, it is time to create the most famous PHP script! Make a call to the phpinfo() function and you will see a lot of useful information about your system and setup such as available predefined variables, loaded PHP modules, and configuration settings. Take some time and review this important information.

Example#2 Get system information from PHP

<?php phpinfo(); ?>



Something Useful

Let us do something more useful now. We are going to check what sort of browser the visitor is using. For that, we check the user agent string the browser sends as part of the HTTP request. This information is stored in a variable. Variables always start with a dollar-sign in PHP. The variable we are interested in right now is $_SERVER['HTTP_USER_AGENT'].

Note: $_SERVER is a special reserved PHP variable that contains all web server information. It is known as a superglobal. See the related manual page on superglobals for more information. These special variables were introduced in PHP » 4.1.0. Before this time, we used the older $HTTP_*_VARS arrays instead, such as $HTTP_SERVER_VARS. Although deprecated, these older variables still exist. (See also the note on old code.)

To display this variable, you can simply do:

Example#1 Printing a variable (Array element)

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

A sample output of this script may be:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    

There are many types of variables available in PHP. In the above example we printed an Array element. Arrays can be very useful.

$_SERVER is just one variable that PHP automatically makes available to you. A list can be seen in the Reserved Variables section of the manual or you can get a complete list of them by looking at the output of the phpinfo() function used in the example in the previous section.

You can put multiple PHP statements inside a PHP tag and create little blocks of code that do more than just a single echo. For example, if you want to check for Internet Explorer you can do this:

Example#2 Example using control structures and functions

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo 
'You are using Internet Explorer.<br />';
}
?>

A sample output of this script may be:

You are using Internet Explorer.<br />

Here we introduce a couple of new concepts. We have an if statement. If you are familiar with the basic syntax used by the C language, this should look logical to you. Otherwise, you should probably pick up an introductory PHP book and read the first couple of chapters, or read the Language Reference part of the manual.

The second concept we introduced was the strpos() function call. strpos() is a function built into PHP which searches a string for another string. In this case we are looking for 'MSIE' (so-called needle) inside $_SERVER['HTTP_USER_AGENT'] (so-called haystack). If the needle is found inside the haystack, the function returns the position of the needle relative to the start of the haystack. Otherwise, it returns FALSE. If it does not return FALSE, the if expression evaluates to TRUE and the code within its {braces} is executed. Otherwise, the code is not run. Feel free to create similar examples, with if, else, and other functions such as strtoupper() and strlen(). Each related manual page contains examples too. If you are unsure how to use functions, you will want to read both the manual page on how to read a function definition and the section about PHP functions.

We can take this a step further and show how you can jump in and out of PHP mode even in the middle of a PHP block:

Example#3 Mixing both HTML and PHP modes

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() must have returned non-false</h3>
<p>You are using Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() must have returned false</h3>
<p>You are not using Internet Explorer</p>
<?php
}
?>

A sample output of this script may be:

<h3>strpos() must have returned non-false</h3>
<p>You are using Internet Explorer</p>

Instead of using a PHP echo statement to output something, we jumped out of PHP mode and just sent straight HTML. The important and powerful point to note here is that the logical flow of the script remains intact. Only one of the HTML blocks will end up getting sent to the viewer depending on the result of strpos(). In other words, it depends on whether the string MSIE was found or not.



Dealing with Forms

One of the most powerful features of PHP is the way it handles HTML forms. The basic concept that is important to understand is that any form element will automatically be available to your PHP scripts. Please read the manual section on Variables from outside of PHP for more information and examples on using forms with PHP. Here is an example HTML form:

Example#1 A simple HTML form

<form action="action.php" method="post">
 <p>Your name: <input type="text" name="name" /></p>
 <p>Your age: <input type="text" name="age" /></p>
 <p><input type="submit" /></p>
</form>

There is nothing special about this form. It is a straight HTML form with no special tags of any kind. When the user fills in this form and hits the submit button, the action.php page is called. In this file you would write something like this:

Example#2 Printing data from our form

Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.

A sample output of this script may be:

Hi Joe. You are 22 years old.

Apart from the htmlspecialchars() and (int) parts, it should be obvious what this does. htmlspecialchars() makes sure any characters that are special in html are properly encoded so people can't inject HTML tags or Javascript into your page. For the age field, since we know it is a number, we can just convert it to an integer which will automatically get rid of any stray characters. You can also have PHP do this for you automatically by using the filter extension. The $_POST['name'] and $_POST['age'] variables are automatically set for you by PHP. Earlier we used the $_SERVER superglobal; above we just introduced the $_POST superglobal which contains all POST data. Notice how the method of our form is POST. If we used the method GET then our form information would live in the $_GET superglobal instead. You may also use the $_REQUEST superglobal, if you do not care about the source of your request data. It contains the merged information of GET, POST and COOKIE data. Also see the import_request_variables() function.

You can also deal with XForms input in PHP, although you will find yourself comfortable with the well supported HTML forms for quite some time. While working with XForms is not for beginners, you might be interested in them. We also have a short introduction to handling data received from XForms in our features section.



Using old code with new versions of PHP

Now that PHP has grown to be a popular scripting language, there are a lot of public repositories and libraries containing code you can reuse. The PHP developers have largely tried to preserve backwards compatibility, so a script written for an older version will run (ideally) without changes in a newer version of PHP. In practice, some changes will usually be needed.

Two of the most important recent changes that affect old code are:

  • The deprecation of the old $HTTP_*_VARS arrays (which need to be indicated as global when used inside a function or method). The following superglobal arrays were introduced in PHP » 4.1.0. They are: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, and $_SESSION. The older $HTTP_*_VARS arrays, such as $HTTP_POST_VARS, still exist as they have since PHP 3. Az 5.0.0 változattól kezdődően az előre definiált hosszú PHP változók létrehozása kikapcsolható a register_long_arrays direktíva segítségével.
  • External variables are no longer registered in the global scope by default. In other words, as of PHP » 4.2.0 the PHP directive register_globals is off by default in php.ini. The preferred method of accessing these values is via the superglobal arrays mentioned above. Older scripts, books, and tutorials may rely on this directive being on. If it were on, for example, one could use $id from the URL http://www.example.com/foo.php?id=42. Whether on or off, $_GET['id'] is available.
For more details on these changes, see the section on predefined variables and links therein.



What's next?

With your new knowledge you should be able to understand most of the manual and also the various example scripts available in the example archives. You can also find other examples on the php.net websites in the links section: » http://www.php.net/links.php.

To view various slide presentations that show more of what PHP can do, see the PHP Conference Material Sites: » http://conf.php.net/ and » http://talks.php.net/





Telepítés és beállítás

Table of Contents


Általános telepítési szempontok

Mielőtt hozzálátnál a telepítéshez, meg kell tudnod határozni, hogy mire akarod használni a PHP-t. A Mire jó a PHP? című fejezetben leírt következő három fő területen használhatod:

  • Weboldalak és webes alkalmazások készítésére (szerveroldali programozásra)
  • Parancssori programok írására
  • Asztali (GUI) alkalmazások kifejlesztéséhez.

Az első és legszokványosabb használatához három dologra lesz szükséged: magára a PHP-re, egy webszerverre és egy webböngészőre. Valőszínűleg már rendelkezel böngészővel, és az operációs rendszer telepítésétől függően webszervered is lehet (Linux és MacOS X alatt Apache, Windows alatt IIS). Bérelhetsz tárterületet egy cégtől is, ebben az esetben neked nem kell semmit telepítened, csak a PHP szkripteket megírni és feltölteni őket a bérelt webtárhelyedre és nézni a végeredményt a böngészőben.

Ha saját magad telepíted a PHP-t, akkor kétféleképpen csatlakoztathatod a kiszolgálóhoz. A PHP-nek rengeteg kiszolgálóhoz van közvetlen modulinterfésze (SAPI). Ezek a szerverek az Apache, Microsoft Internet Information Server, Netscape és az iPlanet. Ezenkívül sok szerver támogatja az ISAPI-t, a Microsoft modulinterfészét mint pl. az OmniHTTPd. Ha PHP-nek nem létezika a webszerveredhez modul, mindig lehetőséged van CGI vagy FastCGI feldolgozóként futtatni. Ez azt jelenti, hogy úgy állítod be a webszerveredet, hogy a PHP CGI programját használja a PHP fájlokra érkezett kérések kiszolgálására.

Ha a PHP-t parancssori programozásra is szeretnéd használni (pl. offline képgenerálást végző szkript, vagy szöveges fájlok feldolgozása az átadott argumentumoktól függően), mindenképpen a futtatható állományra lesz szükséged. További információért lásd a Parancssori PHP alkalmazások írása című részt. Ebben az esetben nem lesz szükséged szerverre és böngészőre.

A PHP és a PHP-GTK kiterjesztés segítségével kliens oldali GUI alkalmazásokat is fejleszthetsz. Ez teljesen eltérő megközelítés, mint a weboldalak programozása, mivel itt nem HTML kimenetet kell generálni, hanem ablakokat és a bennük levő objektumokat kell kezelni. A PHP-GTK-ról többet is olvashatsz, ha ellátogatsz a » honlapjára. A PHP-GTK nem része a hivatalos PHP disztribuciónak.

Ettől a ponttól ez a fejezet a PHP webszerverhez történő telepítésével foglalkozik, Unix és Windows alatt, modulként és CGI feldolgozóként. A futtatható állományról is találsz információt a következő részekben.

A forráskód és a futtatható állományok Windows-ra megtalálhatóak » http://www.php.net/downloads.php címen. Ha lehet, akkor valamelyik hozzád legközelebb eső » tükörszervert vedd igénybe a letöltésekhez.



Telepítés Unix rendszerre

Table of Contents

Ez a fejezet bemutatja, hogy miként kell feltelepíteni és beállítani a PHP-t Unix rendszeren. Mielőtt elkezded a telepítést, nézd meg a rendszerednek ás szerverednek megfelelő fejezetet is!

Mint ahogy azt kézikönyvünk az Általános telepítési szempontok című részben felvázolta, ebben a részben legfőképpen a web-centrikus telepítésekkel foglalkozunk, bár a PHP parancssori használatának telepítését is tárgyaljuk.

Számos módja van a PHP telepítésének a Unix rendszereken, vagy egy fordítási és konfigurálási eljárással, vagy különböző előre-csomagolt megoldások használatával. Ez a dokumentáció legfőképpen a fordítási és konfigurálási folyamatokra fekteti a hangsúlyt. Sok Unix-féle rendszernek van valamilyen telepítőrendszere. Ez segít feltelepíteni egy általános konfigurációt, de ha különböző szolgáltatáskészleteket szeretnél (mint például egy biztonságos szerver, vagy különböző adatbázis-meghajtók), magad kell fordítanod a PHP és/vagy a webszervert. Ha nem vagy jártas saját szoftver fordításában, jobb, ha utánanézel, hogy valaki már lefordított-e egy olyan PHP csomagot, amilyet szeretnél.

A fordításhoz nélkülözhetetlen előismeretek és szoftverek:

  • Alapvető Unix ismeretek ("make" és a C fordító használata)
  • Egy ANSI C fordító
  • flex: 2.5.4-es verzió
  • bison: 1.28-as (ajánlott), 1.35-ös, vagy 1.75-ös verzió
  • A web server
  • Bármilyen modul által igényelt elem (mint például a gd vagy pdf könyvtárak, stb.)

Az alapvető konfigurálási folyamatot a configure számára átadott parancssori paraméterek szabályozzák. A ./configure --help paranccsal kérhetsz egy listát a rendelkezésreálló opciókról, rövid magyarázatokkal. Ez a kézikönyv külön tárgyalja a különböző opciókat. Az alapvető opciókat a függelékben találod, a különböző kiterjesztés-specifikus opciók pedig a referencia oldalakon vannak leírva.

Amikor a PHP konfigurálása megtörtént, elkezdheted létrehozni a modulokat és/vagy a végrehajtható állományokat. A make parancs ezt el kell tudja intézni. Ha hiba lép fel, és nem tudod elképzelni, hogy miért, olvasd el a problémákról szóló részt.

Apache 1.3.x Unix rendszereken

Ez a rész a PHP Apache-hoz történő telepítéséhez tartalmaz megjegyzéseket és javaslatokat Unix rendszerek esetén. Az Apache 2-höz tartozó útbaigazítások és javaslatok külön oldalon találhatóak.

A 10. sorban a configure-nak átadandó argumentumokat a az alapvető konfigurációs beállítások listájából valamint a kiterjesztésekhez tartozó beállításokat a kézikönyv megfelelő részeiből válogathatod ki. A verziószámokat itt elhanyagoltuk, hogy bizonyosak legyünk abban, hogy az utasítások nem helytelenek. Az 'xxx' helyébe a fájlok neveiből származó megfelelő értékeket kell majd behelyettesítened.

Example#1 Telepítési parancsok (Apache osztott modul verzió) PHP-hez

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

10. Itt konfigurálnod kell a PHP-t. Itt kell testreszabnod a PHP-t
    különféle opciókkal, mint pl. milyen kiterjesztések legyenek 
    bekapcsolva. Hajts végre egy ./configure --help parancsot, hogy
    megkapd a használható opciók listáját. Példánkban egy egyszerű
    konfigurációt készítünk Apache 1 és MySQL támogatással.
    Az apxs űtvonala különbözhet a példában szereplőtől.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    Ha a configure opciókat telepítés után szeretnéd megváltoztatni,
    csak az utolsó három parancsot kell újra kiadnod. Az új modul
    betöltéséhez, csak újra kell indítanod az Apache-t. Az Apache
    újrafordítása nem szükséges.
  
    Figyelj arra, hogy alapesetben a 'make install' a PEAR-t, 
    különböző PHP eszközöket, mint pl. phpize, a PHP CLI-t és egyebeket
    is telepít.

13. A php.ini állomány beállítása:

      cp php.ini-dist /usr/local/lib/php.ini

    PHP opciók beállításához szerkeszd az .ini fájlt. Ha szeretnéd a 
    php.ini-t máshova tenni, a 10. lépésben használd a 
    --with-config-file-path=/ut/vonal
    
    Ha a php.ini-recommended fájlt választod, ne felejtsd el elolvasni
    a változtatások listáját, mivel az befolyásolhatja a PHP működését.

14. Módosítsd a httpd.conf állommányt úgy, hogy a PHP modult töltse be.
    A LoadModule jobb oldalán szereplő útvonal a rendszereden lévő
    PHP modul útvonala kell legyen. A fenti make install parancs már
    el kellett végezze ezt helyetted, de jobb ha megbizonyosodsz róla.
        
    PHP 4 esetén:
            
      LoadModule php4_module libexec/libphp4.so

    PHP 5 esetén:
                      
      LoadModule php5_module libexec/libphp5.so
      
15. A httpd.conf AddModule részében, valahol a ClearModuleList alá
    tedd be ezt:
    
    PHP 4 esetén:
    
      AddModule mod_php4.c
      
    PHP 5 esetén:
    
      AddModule mod_php5.c

16. Meg kell mondani az Apache-nak, hogy bizonyos kiterjesztéssel
    rendelkező fájlokat a PHP-vel szerint értelmezzen. Például
    mondjuk meg az Apache-nak, hogy a .php fájlokat PHP-vel 
    interpretálja. Több kiterjesztést úgy adhatsz meg, hogy
    egyszerűen szóközzel választod el őket. Példaképpen itt még
    a .phtml-t adjuk meg.

      AddType application/x-httpd-php .php .phtml

    Elég népszerű, hogy a .phps kiterjesztést úgy állítják be, hogy
    a színezett PHP-t mutassa, ez így érhető el:
    
      AddType application/x-httpd-php-source .phps

17. Használd a normális eljárást az Apache szerver elindítására. (Le kell
    állítanod, majd elindítanod, nem elegendő a szerver újratöltése
    HUP vagy USR1 szignállal.)

A PHP-t statikus objektumként is telepítheted:

Example#2 Telepítési parancsok (Apache statikus modul verzió) PHP-hez

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-4.x.y.tar.gz | tar xf -
6.  cd php-4.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
    (Mindamellett, hogy ezen a ponton a libphp4.a nem létezik, a fenti sor
    helyes. Nem is kell léteznie, létre lesz hozva.)

12. make
    (most kell rendelkezzél egy httpd binárissal, amelyet az Apache bin 
    könyvtárába másolhatsz, ha ez az első telepítésed, majd a "make install" 
    parancsot is ki kell adnod)

13. cd ../php-4.x.y
14. cp php.ini-dist /usr/local/lib/php.ini

15. Szerkeszd a /usr/local/lib/php.ini állományt a PHP opciók beállításához. 
    Szerkeszd a httpd.conf vagy a srm.conf állományt és add hozzá ezt a sort:
    AddType application/x-httpd-php .php

Az Apache telepítéstől és a Unix változattól függően, több módon lehet a szervert leállítani vagy újraindítani. Az alábbiakban felsorolunk néhány a tipikus sorokat amelyeket különböző apache/unix konfigurációkon szerver-újraindításra használnak. Az /útvonal/ helyébe helyettesítsd a megfelelő alkalmazás útvonalát.

Example#3 Példa-utasítások az Apache újraindításához

1. Számos Linux és SysV variáns:
/etc/rc.d/init.d/httpd restart

2. Az apachectl szkriptek használata:
/útvonal/apachectl stop
/útvonal/apachectl start

3. A httpdctl és a httpsdctl (OpenSSL használata 
   esetén), hasonlóan az apachectl-hez:
/útvonal/httpsdctl stop
/útvonal/httpsdctl start

4. mod_ssl vagy más SSL szerver használata esetén, 
   kézzel kell leállítani és elindítani:
/útvonal/apachectl stop
/útvonal/apachectl startssl

Az apachectl és a http(s)dctl helyen gyakran változik. Ha van a rendszeredben locate, whereis vagy which parancs, ezek segíthetnek megtalálni a szervervezérlő programokat.

Itt egy másik példa a PHP Apache-hoz való fordítására:

./configure --with-apxs --with-pgsql

Ez létrehozza a libphp4.so osztott könyvtárat ami az Apache-ba töltödik be a httpd.conf LoadModule sora által A PostgreSQL támogatás bele van építve ebbe a libphp4.so fájlba. library.

./configure --with-apxs --with-pgsql=shared

Ez létrehoz egy libphp4.so osztott könyvtárat az Apache számára, de egy pgsql.so osztott könyvtérat is készít, amely a PHP-be a php.ini extension direktívája által vagy a szkriptben szereplő dl() függvénnyel kerül betöltésre.

./configure --with-apache=/útvonal/apache_source --with-pgsql

Ez létrehoz egy libmodphp4.a könyvtárat, egy mod_php4.c-t és néhány velejáró fájlt és bemásolja ezeket az Apache forrásfájának src/modules/php4 könyvtárába. Ezután lefordítod az Apache-t --activate-module=src/modules/php4/libphp4.a opcióval, majd az Apache fordító rendszere létrehozza a libphp4.a-t, majd statikusan belinkeli a httpd binárisba. A PostgreSQL támogatás közvetlenül ebben a httpd binárisban van benne, így a végeredmény egy egyedüli httpd bináris, ami tartalmazza az egész Apache-t és az egész PHP-t.

./configure --with-apache=/útvonal/apache_source --with-pgsql=shared

Ez hasonló az előzővel, kivéve, hogy a PostgreSQL-t nem építjük közvetlenül bele a végső httpd-be, hanem készítünk egy pgsql.so osztott könyvtárat, amit betölthetsz a PHP-be php.ini-ből, vagy a dl() függvénnyel.

Amikor a PHP különféle fordítási módjai közül választasz, figyelembe kell venned a különböző módszerek előnyeit és hátrányait. Ha osztott fájlt hozol létre, az Apache-t külön fordíthatod, és nem kell mindent újrafordítanod, ha valamit hozzá akarsz adni, vagy módosítani a PHP-ben. Ha a PHP az Apache-ba építed be, azt jelenti, hogy a PHP gyorsan töltődik be és gyorsan fut. További információkért lásd » az Apache DSO támogatásról szóló weboldalát.

Note: Az Apache alapértelmezett httpd.conf fájlja jelenleg egy hasonló részt tartalmaz:

User nobody
Group "#-1"
Amíg nem változtatod meg "Group nogroup"-ra vagy valami hasonlóra (a "Group daemon" elég általános) a PHP nem fog tudni fájlokat megnyitni.

Note: Győződj meg róla, hogy az Apache-nak a telepített verzióját adod meg a --with-apxs=/útvonal/apxs opcióban. NE használd a apache forráskódban szereplű apxs verziót, hanem azt, amelyik ténylegesen telepítve van a rendszeredre.


Apache 2.0 Unix rendszereken

Ez a rész a PHP Apache 2.0-hoz történő telepítéséhez tartalmaz megjegyzéseket és javaslatokat Unix rendszerek esetén.

Warning

Nem ajánljuk az Apache2 threaded MPM-jének alkalmazását éles környezetben. Ehelyett a prefork MPM használata, vagy az Apache 1.3-as változatának használata javallott. Ha kíváncsi vagy a miértekre, olvasd el a kapcsolódó FAQ bejegyzést: Apache2 with a threaded MPM!

Erősen ajánljuk, hogy tanulmányozd az » Apache dokumentációt, hogy alapvelően megértsd az Apache 2.0 Server működését.

Note: PHP és Apache 2.0.x kompatibilitása A PHP alábbi verziói biztosan működnek az Apache 2.0.x legújabb verziójával:

A PHP ezen verziói kompatibilisek az Apache 2.0.40-ás és későbbi verzióival.
Az Apache 2.0 SAPI-támogatása a PHP 4.2.0-ás verziójával kezdődött. A PHP 4.2.3 az Apache 2.0.39-el működik, ne használj más Apache verziót vele. Az ajánlott konfiguráció: PHP 4.3.0 vagy frissebb, és az Apache2 legfrissebb verziója.
A PHP minden említett verziója továbbra is működik az Apache 1.3.x verziójával.

Töltsd le az » Apache 2.0 legűjabb verzióját és a PHP-nek egy megfelelő verzióját a fent említett helyekről. Ez a gyors útmutató csak az alapokat tartalmazza az Apache 2.0 és a PHP használatával kapcsolatban. További információért olvasd el az » Apache dokumentációt. A verziószámokat itt elhanyagoltuk, hogy bizonyosak legyünk abban, hogy az utasítások nem helytelenek. Az 'NN' helyébe a fájlok neveiből származó megfelelő értékeket kell majd behelyettesítened.

Example#1 Telepítési parancsok (Apache osztott modul verzió) PHP-hez

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Most az Apache 2.0.NN rendelkezésedre áll a /usr/local/apache2
    könyvtárban, modul betöltés támogatással, és a standard MPM 
    prefork-al. A telepítés teszteléséhez használd a normális 
    eljárást az Apache szerver elindítására, azaz:
    /usr/local/apache2/bin/apachectl start
    majd állítsd le, hogy folytathasd a PHP konfigurálásval:
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php-NN

10. Itt konfigurálnod kell a PHP-t. Itt kell testreszabnod a PHP-t
    különféle opciókkal, mint pl. milyen kiterjesztések legyenek 
    bekapcsolva. Hajts végre egy ./configure --help parancsot, hogy
    megkapd a használható opciók listáját. Példánkban egy egyszerű
    konfigurációt készítünk Apache 2 és MySQL támogatással.
    Az apxs űtvonala különbözhet, valójában előfordulhat, hogy a
    bináris neve apxs2.
    
      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

    Ha a configure opciókat telepítés után szeretnéd megváltoztatni,
    csak az utolsó három parancsot kell újra kiadnod. Az új modul
    betöltéséhez, csak újra kell indítanod az Apache-t. Az Apache
    újrafordítása nem szükséges.
  
    Figyelj arra, hogy alapesetben a 'make install' a PEAR-t, 
    különböző PHP eszközöket, mint pl. phpize, a PHP CLI-t és egyebeket
    is telepít.

13. A php.ini állomány beállítása:

      cp php.ini-dist /usr/local/lib/php.ini

    PHP opciók beállításához szerkeszd az .ini fájlt. Ha szeretnéd a 
    php.ini-t máshova tenni, a 10. lépésben használd a 
    --with-config-file-path=/ut/vonal
    
    Ha a php.ini-recommended fájlt választod, ne felejtsd el elolvasni
    a változtatások listáját, mivel az befolyásolhatja a PHP működését.

14. Módosítsd a httpd.conf állommányt úgy, hogy a PHP modult töltse be.
    A LoadModule jobb oldalán szereplő útvonal a rendszereden lévő
    PHP modul útvonala kell legyen. A fenti make install parancs már
    el kellett végezze ezt helyetted, de jobb ha megbizonyosodsz róla.
        
    PHP 4 esetén:
            
      LoadModule php4_module libexec/libphp4.so

    PHP 5 esetén:
                      
      LoadModule php5_module libexec/libphp5.so
 
15. Meg kell mondani az Apache-nak, hogy bizonyos kiterjesztéssel
    rendelkező fájlokat a PHP-vel szerint értelmezzen. Például
    mondjuk meg az Apache-nak, hogy a .php fájlokat PHP-vel 
    interpretálja. Több kiterjesztést úgy adhatsz meg, hogy
    egyszerűen szóközzel választod el őket. Példaképpen itt még
    a .phtml-t adjuk meg.

      AddType application/x-httpd-php .php .phtml

    Elég népszerű, hogy a .phps kiterjesztést úgy állítják be, hogy
    a színezett PHP-t mutassa, ez így érhető el:
    
      AddType application/x-httpd-php-source .phps

16. Használd a normális eljárást az Apache szerver elindítására, azaz:
   
      /usr/local/apache2/bin/apachectl start
   

A fenti lépések végrehajtása után, rendelkezel egy futó Apache 2.0-al, amely támogatja a PHP-t SAPI modulként. Természetesen sokkal több konfigurációs opció létezik mind az Apache-hoz, mind a PHP-hez. További információért használd a ./configure --help parancsot a megfelelő forrásfában. Ha szeretnél egy többszálú Apache 2.0 verziót fordítani, felül kell írnod a standard MPM-Module prefork-ot worker-el vagy perchild-al. Ehhez, a 6. sorban szereplő configure-hoz add hozzá a --with-mpm=worker vagy a --with-mpm=perchild opciót. Bizonyosodj meg a következményekről és arról, hogy tudod mit csinálsz. További információért olvasd el az Apache dokumentáció » MPM-Modules című részét.

Note: Ha szeretnél tartalom-egyeztetést (content negotiation) alkalmazni, olvasd el a kapcsolódó FAQ-t.

Note: Ahhoz, hogy többszálú Apache verziót tudj készíteni, az operációs rendszered kell támogassa a szálakat. Ez a PHP-nak a kisérleti jellegű Zend Thread Safety (ZTS)-vel való fordítására is vonatkozik. Emiatt nem lesz használható minden kiterjesztés. Ajánlott az Apache-nak a standard prefork MPM-modullal való fordítása.



Caudium

PHP 4-et Pike modulként építheted be a » Caudium webszerveréhez, a PHP 3 nem támogatja ezt. A PHP 4-et az alábbi egyszerű utasításokat követve lehet telepíteni Caudium alá.

Example#1 Caudium telepítési utasítások

1.  Győződj meg arról, hogy a PHP 4 telepítése előtt már telepítve lett a Caudium.
    A PHP 4 helyes működéséhez a Pike 7.0.268 vagy ennél újabb verziójára lesz
    szükséged. A példa kedvéért feltételezzük, hogy a Caudium a /opt/caudium/server/
    könyvtárban van.
2.  Lépj át php-x.y.z könyvtárba (x.y.z a PHP verziószáma).
3.  ./configure --with-caudium=/opt/caudium/server
4.  make
5.  make install
6.  Indítsd újra a Caudium szervert, ha jelenleg fut.
7.  Lépj be a grafikus konfigurációs felületre és ott válaszd ki azt a "virtual
    server" pontot, amelyhez a PHP 4 támogatást akarsz adni.
8.  Kattints az "Add Module"-ra és keresd meg majd add hozzá a "PHP 4
    Script Support" modult.
9.  Ha a dokumentáció azt mondja, hogy 'PHP 4 interpreter isn't available',
    akkor nézd meg, biztosan újraindítottad a szervert. Ha már ellenőrizted
    az /opt/caudium/logs/debug/default.1 fájlt mindenféle PHP4.so-val 
    összefüggő hiba kapcsán, akkor nézd meg azt is, hogy a
    caudium/server/lib/[pike-verzio]/PHP4.so létezik-e.
10. Állítsd be a PHP Script Support modult, ha szükséges.

Természetesen számos kiterjesztéssel együtt fordíthatod le a Caudium szerverhez is a PHP 4-t. A kiterjesztés-specifikus opciókért nézd meg a referenciaoldalakat.

Note: Ha MySQL témogatást is szeretnél, akkor figyelj arra, hogy a normál MySQL kliens kódot használd, különben ütközések léphetnek fel, ha a Pike is rendelkezik MySQL támogatással. Ezt a MySQL telepítési könyvtárának (install directory) megadásával teheted meg: --with-mysql.



fhttpd megjegyzések

Ahhoz, hogy fhttpd modulként állítsd be a PHP-t, válaszolj "yes"-el a "Build as an fhttpd module?" kérdésre (ez a --with-fhttpd=DIR opció a configure-ban) és add meg az fhttpd könyvtárát. Ez alapbeállításban /usr/local/src/fhttpd. Ha fhttpd-t használsz, a PHP felépítése modulként jobb teljesítményt fog nyújtani, több beavatkozási lehetőséget és távoli futtatást biztosít.

Note: Az fhttpd támogatása a PHP 4.3.0-tól megszűnt.



Sun, iPlanet and Netscape servers on Sun Solaris

This section contains notes and hints specific to Sun Java System Web Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP on Sun Solaris.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to generate custom directory listings and error pages. Additional functions for Apache compatibility are also available. For support in current web servers read the note about subrequests.

You can find more information about setting up PHP for the Netscape Enterprise Server (NES) here: » http://benoit.noss.free.fr/php/install-php4.html

To build PHP with Sun JSWS/Sun ONE WS/iPlanet/Netscape web servers, enter the proper install directory for the --with-nsapi=[DIR] option. The default directory is usually /opt/netscape/suitespot/. Please also read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Install the following packages from » http://www.sunfreeware.com/ or another download site:

    • autoconf-2.13
    • automake-1.4
    • bison-1_25-sol26-sparc-local
    • flex-2_5_4a-sol26-sparc-local
    • gcc-2_95_2-sol26-sparc-local
    • gzip-1.2.4-sol26-sparc-local
    • m4-1_4-sol26-sparc-local
    • make-3_76_1-sol26-sparc-local
    • mysql-3.23.24-beta (if you want mysql support)
    • perl-5_005_03-sol26-sparc-local
    • tar-1.13 (GNU tar)

  2. Make sure your path includes the proper directories PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it available to your system export PATH .
  3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to 4).
  4. tar xvf php-x.x.x.tar
  5. Change to your extracted PHP directory: cd ../php-x.x.x
  6. For the following step, make sure /opt/netscape/suitespot/ is where your netscape server is installed. Otherwise, change to the correct path and run:

    ./configure --with-mysql=/usr/local/mysql \
    --with-nsapi=/opt/netscape/suitespot/ \
    --enable-libgcc
    

  7. Run make followed by make install.

After performing the base install and reading the appropriate readme file, you may need to perform some additional configuration steps.

Configuration Instructions for Sun/iPlanet/Netscape

Firstly you may need to add some paths to the LD_LIBRARY_PATH environment for the server to find all the shared libs. This can best done in the start script for your web server. The start script is often located in: /path/to/server/https-servername/start. You may also need to edit the configuration files that are located in: /path/to/server/https-servername/config/.

  1. Add the following line to mime.types (you can do that by the administration server):

    type=magnus-internal/x-httpd-php exts=php
    

  2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following, shlib will vary depending on your system, it will be something like /opt/netscape/suitespot/bin/libphp4.so. You should place the following lines after mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
    Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your web server config directory.

  3. Configure the default object in obj.conf (for virtual server classes [version 6.0+] in their vserver.obj.conf):

    <Object name="default">
    .
    .
    .
    .#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    .
    .
    </Object>
    
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  4. This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):

    <Object name="x-httpd-php">
    ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
    Service fn=php4_execute [inikey=value inikey=value ...]
    </Object>
    
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  5. Setup of authentication: PHP authentication cannot be used with any other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT. To configure PHP Authentication for the entire server, add the following line to your default object:

    <Object name="default">
    AuthTrans fn=php4_auth_trans
    .
    .
    .
    </Object>
    

  6. To use PHP Authentication on a single directory, add the following:

    <Object ppath="d:\path\to\authenticated\dir\*">
    AuthTrans fn=php4_auth_trans
    </Object>
    

Note: The stacksize that PHP uses depends on the configuration of the web server. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE WS/iPlanet/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the web server itself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP 3.x way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running web server without any valid CGI variables!

Note: Why are there (invalid) CGI variables in the environment?
Answer: This is because you started the web server process from the admin server which runs the startup script of the web server, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started web server has some CGI environment variables in it. You can test this by starting the web server not from the administration server. Use the command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST, etc., you should turn on register_globals in php.ini and change the variable order too (important: remove "E" from it, because you do not need the environment here):

variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the web server and insert the result in the web page. This function uses some undocumented features from the NSAPI library. On Unix the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Note: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!



CGI és parancssori verzió

Alapbeállításban a PHP CGI programként fordul le. Ez létrehoz egy parancssorból használható értelmezőt, ami CGI feldolgozásra vagy nem webbel kapcsolatos PHP programozásra is használható. Ha egy olyan webszervert futtatsz, amelyhez a PHP modul szintű támogatással rendelkezik, akkor jobb teljesítmény eléréséhez használd inkább azt a módszert. A CGI verzió azonban lehetővé teszi az Apache-ot használóknak, hogy más-más PHP oldalakat más-más user-id-kkel futtassanak.

Warning

Ha a PHP-t CGI felületen dolgoztatod, ez a szervereden bizonyos támadási felületeket nyit. Kérlek, olvasd el CGI biztonság fejezetünket, hogy megtudd, hogy tudod megvédeni magad ezen támadásokkal szemben.

As of PHP 4.3.0, some important additions have happened to PHP. A new SAPI named CLI also exists and it has the same name as the CGI binary. What is installed at {PREFIX}/bin/php depends on your configure line and this is described in detail in the manual section named Using PHP from the command line. For further details please read that section of the manual.

Tesztelés

Ha CGI programként fordítottad le a PHP-t, tesztelheted az eredményt azzal, hogy beírod make test. Mindig jól jön, ha leteszteled, mert így rögtön észlelhetsz olyan problémákat, amik esetleg csak később bukkantak volna fel.

Szintmérés (benchmarking)

Ha CGI programként fordítottad le a PHP 3-at, tesztelheted a sebességét azzal, hogy beírod a make bench parancsot. Ha a be van kapcsolva, talán nem fog jól lefutni a benchmark, a megengedett 30 másodperc alatt. Ez azért van, mert a set_time_limit() nem használható safe mode-ban. Használd a max_execution_time konfigurációs beállítást, hogy megadhasd ezt az időt a szkriptjeidnek. A make bench nem veszi figyelembe a konfigurációs fájlt.

Note: A make bench csak a PHP 3-ban érhető el.

Változók használata

Egyes szerver által biztosított környezeti változók nincsenek a jelenlegi » CGI/1.1 specifikációban definiálva. Csak a következő változók vannak itt definiálva: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL, és SERVER_SOFTWARE. Minden más 'gyártó kiterjesztésnek' minősül.



Telepítés HP-UX rendszerre

Ez a rész a PHP HP-UX rendszerre történő telepítési útmutatóját tartalmazza. (paul_mckay kukac clearwater-it pont co pont uk hozzájárulásával)

Note: Ezek a tippek a PHP v4.0.4 és Apache v1.3.9 verziókra vonatkoznak.

  1. Szükséged lesz a gzip-re. Töltsd le a http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z címről a bináris disztribúciót, tömörítsd ki, és telepítsd swinstall-al.

  2. Szükséged lesz a GNU binutils-ra. Töltsd le a http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz. címről a bináris disztribúciót, tömörítsd ki, és telepítsd swinstall-al.

  3. Szükséged lesz a GNU binutils-ra. Töltd le a http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz. címről a bináris disztribúciót, tömörítsd ki, és telepítsd swinstall-al.

  4. Szükséged lesz a bison-ra. Töltsd le a http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz, címről a bináris disztribúciót és telepítsd a fentiek szerint.

  5. Szükséged lesz a flex-re. Ennek a forráskódját kell letöltened tudod letölteni az egyik http://www.gnu.org ükörkiszolgálóról. A non-gnu könyvtárban találod az ftp helyen. Töltsd le az állományt, tömörítsd ki gunzip-pel, majd a tar -xvf paranccsal megkapod a szükséges fájlokat. Lépj be a létrejött flex könyvtárba, és hajsd végre ./configure, make, make install parancsokat.

    Ha hibaüzeneteket kapsz, feltehetően az a probléma, hogy gcc vagy egyéb eszköz nincs a PATH-ban, tehát add hozzá a PATH-hoz.

  6. Töltsd le a PHP és Apache forráskódokat.

  7. Alkalmazd rájuk a gunzip és a tar -xvf parancsokat. Módosítanod kell pár állományt, hogy helyesen leforduljanak.

  8. Először a configure nevű fájl szorul némi szerkesztésre, mivel úgy tűnik nem tudja követni, hogy HP-UX gépen vagyunk. Lesz még egy jobb módszer ennek a megoldására, de addig is egy olcsó és jól működő javítás a lt_target=hpux10.20 beillesztése a configure szkript 47286-adik soránál.

  9. A következő lépésben az Apache GuessOS fájl szorul javításra. Az apache_1.3.9/src/helpers ájlban írd át a 89. sort. Ennek jelenlegi tartalma: echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0, erre kell átirni: echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0

  10. Megosztott modulként nem telepíthető a PHP HP-UX rendszeren, ezért statikusan bele kell fordítanod a szerverbe. Ehhez kövesd az Apache oldalon található utasításokat.

  11. A PHP és Apache most már sikeresen lefordult, de az Apache nem fog elindulni. Létre kell hoznod egy új felhasználót az Apache számára, például www vagy apache néven. Utána a 252-253-ik sort kell módosítanod az Apache conf/httpd.conf in állományban, tehát ehelyett a két sor helyett:

    User nobody 
    Group nogroup 
          

    valami hasonlód lesz:

    User www 
    Group sys 
          

    Ez azért szükséges, mivel az Apache nem futtatható a nobody nevű felhasználóval HP-UX alatt. Most már az Apache és a PHP is sikeresen kell működjön.



Telepítés OpenBSD rendszerre

Ez a fejezet a PHP » OpenBSD 3.6 rendszerre történő telepítéséhez tartalmaz megjegyzéseket és javaslatokat.

Bináris csomagok használata

A PHP OpenBSD-re való telepítéséhez az ajánlott és legegyszerűbb módszer a bináris csomagok (package) használata. Az alap csomag el van választva a különböző moduloktól, és mindegyik a többitől függetlenül telepíthető és távolítható el. A szükséges fájlokat az OpenBSD CD-den vagy az FTP site-on találod.

A fő csomag, amit telepítened kell az a php4-core-4.3.8.tgz, amely az alapvető motort (és még a gettext-et és az iconv-ot) tartalmazza. Ezután következnek a modul-csomagok, mint pl. a php4-mysql-4.3.8.tgz vagy a php4-imap-4.3.8.tgz. Ezen modulok aktiválásához vagy deaktiválásához a php.ini-ben szereplő phpxs parancsot kell használnod.

Example#1 Példa OpenBSD csomagtelepítésre

# pkg_add php4-core-4.3.8.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  (mysql hozzáadása)
# pkg_add php4-mysql-4.3.8.tgz
# /usr/local/sbin/phpxs -a mysql
  (imap hozzáadása)
# pkg_add php4-imap-4.3.8.tgz
# /usr/local/sbin/phpxs -a imap
  (a mysql és a test eltávolítása)
# pkg_delete php4-mysql-4.3.8
# /usr/local/sbin/phpxs -r mysql
  (a PEAR könyvtárak telepítése)
# pkg_add php4-pear-4.3.8.tgz

Az OpenBSD bináris csomagjairól további információt a » packages(7) man oldalon találsz.

Port-ok használata

A PHP-t forráskódból is fordíthatod, a » ports tree használatával, bár ez csak az OpenBSD-ben járatos felhasználóknak ajánlott. A PHP 4 port két alkönyvtárra van osztva: core és extensions. Az extensions könyvtár minden támogatott PHP modul számára alcsomagokat generál. Ha ezek közül nem szeretnél minden csomagot elkészíteni, használd a no_* FLAVOR-t. Ha pélául az imap modult szeretnéd kihagyni, a FLAVOR-t állítsd be no_imap-re.

Általános problémák

  • Az Apache alapértelmezett telepítése egy » chroot(2) jail-ben fut, amely megtiltja a PHP szkripteknek, hióogy elérjék a /var/www alatti fájlokat. Emiatt létre kell hoznod egy /var/www/tmp könyvtárat, ahol a PHP munkamenet fájlok létrejöhetnek, vagy használj egy másik munkamenet kezelőt. Ráadásul az adatbázis socket-eket a jail-en belülre kell helyezni vagy a localhost interfészen lehet hallgatózni. Ha hálózatkezelő függvényeket használsz, egyes fájlokat az /etc könyvtárból, mint pl. az /etc/resolv.conf és az /etc/services a /var/www/etc könyvtárba kell helyezni. Az OpenBSD PEAR csomag automatikusan a helyes chroot könyvtárakba települ, tehát itt nem szükséges semmi különleges módosítás elvégzése. Az OpenBSD Apache-ról további információt az » OpenBSD FAQ-ban találasz.
  • A » gd kiterjesztéshez tartozó OpenBSD 3.6 csomag számára telepítve kell legyen az XFree86. Ha nem akarsz néhány font szolgáltatást használni, amit az X11 megkövetel, használd inkább a php4-gd-4.3.8-no_x11.tgz csomagot.

Régebbi kiadások

Az OpenBSD régebbi kiadásai a FLAVORS rendszert statikusan beillesztett PHP fordítására használta. Mivel így nehezen lehet bináris csomagokat generálni, ez a módszer nem javasolt. Továbbra is használhatod a régi stabil port tree-ket, de ezt az OpenBSD csapata nem támogatja. Ha bármilyen hozzáfűznivalód van ehhez, a port jelenlegi karbantartója Anil Madhavapeddy (avsm kukac openbsd pont org).



Telepítés Solaris rendszerre

Ez a fejezet a PHP Solaris rendszerre történő telepítéséhez tartalmaz megjegyzéseket és javaslatokat.

Szükséges programok

A Solaris telepítések gyakran nem tartalmaznak C fordítót, és a kapcsolódó eszközöket. Olvasd el ezt a FAQ-t, hogy megtudd miért szükséges ezen szoftverek GNU verzióját használni. A szükséges programok:

  • gcc (javasolt, más C fordító is jó lehet)
  • make
  • flex
  • bison
  • m4
  • autoconf
  • automake
  • perl
  • gzip
  • tar
  • GNU sed
Természetesen szükséged lehet további szoftverek telepítésére (és esetleg fordítására), ha plusz funkciókat szeretnél elérni (például Oracle vagy MySQL).

Csomagok használata

Egyszerűsítheted a Solaris telepítési eljárást, ha a pkgadd-et használod a szükséges komponensek nagyrészének telepítésénél.



Telepítés Gentoo rendszerre

Ez a rész a PHP » Gentoo Linux rendszerre történő telepítéséhez tartalmaz megjegyzéseket és javaslatokat.

A Portage (emerge) használata

Amellett, hogy a PHP forráskódot letöltheted és saját magad fordíthatod, a Gentoo csomag-rendszerének használata a legegyszerűbb és legtisztább módja a PHP telepítésének. Ha nem vagy jártas a Linux alatti szoftver-fordításban, ez lesz számodra a megfelelő módszer.

Ha már felépítetted a Gentoo rendszeredet, valószínűleg már használtad a Portage-t. Az Apache és PHP telepítése nem különbözik az egyéb rendszereszközök telepítésétől.

Az első döntés, amit meg kell hoznod, hogy Apache 1.3.x-t vagy Apache 2.x-t akarsz telepíteni. Mindamellett, hogy mindkettő használható PHP-vel, az alábbi lépések Apache 1.3.x-t fognak használni. Egy másik dolog, amit figyelembe kell venni az, hogy a Portage fád naprakész-e. Ha már rég frissíteted, mindenekelőtt érdemes futtatnod az emerge sync parancsot. Így az Apache és a PHP legfrisseb verzióit fogod használni.

Ha most minden a helyén van, használd a következő példát az Apache és a PHP telepítéséhez:

Example#1 Példa PHP telepítésére Gentoo rendszeren Apache 1.3-hoz

# emerge \<apache-2
# USE="-*" emerge php mod_php
# ebuild /var/db/pkg/dev-php/mod_php-<your PHP version>/mod_php-<your PHP version>.ebuild config
# nano /etc/conf.d/apache
  Add hozzá a "-D PHP4"-et az APACHE_OPTS-hoz
  
# rc-update add apache default
# /etc/init.d/apache start

Az emerge-ről a kiváló » Portage kézikönyvben olvashatsz, amit a Gentoo weboldalán találsz.

Ha Apache 2-t szeretnél használni, használd egyszerűen az emerge apache utasítást a példában.

A konfiguráció beállítása

Az utolsó részben a PHP aktívált modulok nélkül volt emerge-elve. Amikor ez a leírás készült, az egyetlen alapértelmezésben aktivált modul az XML, amely szüksége a » PEAR-hez. Ez valószínű nem az amit szeretnél, és hamarosán rájössz, hogy több aktivált modulra van szükséged, mint pl. MySQL, gettext, GD, stb.

Amikor a PHP-t saját magad fordítod, a configure parancs során kell aktiválnod modulokat. A Gentoo esetén egyszerűen megadhatsz USE jelzőket, amelyek automatikusan át lesznek adva a configure szkriptnek. Próbáld ki az alábbi parancsot, hogy lásd milyen USE jelzők adhatók meg az emerge-nek:

Example#2 Az érvényes USE jelzők listájának lekérése

# USE="-*" emerge -pv php

[ebuild  N    ] dev-php/php-4.3.6-r1  -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 -pdflib -png -postgres -qt -readline 
-snmp -spell -ssl -tiff -truetype -xml2 -yaz  3,876 kB

Amint a fenti kimenetből észreveheted, PHP sok USE jelzőt figyelembe vesz. Nézd meg őket közelebbről és válaszd ki amire szükséged van. Ha kiválasztasz egy jelzőt, de nem rendelkezel alkalmas könyvtárakkal, a Portage lefordítja azokat. Jó ötlet az emerge -pv újbóli használata, hogy lásd, mit fog a Portage fordítani azért, hogy használhasd a USE jelzőidet. Ha például nincs az X telepítve, és hasznnálod USE jelzőként, a Portage a PHP előtt lefordítja az X-et, ami néhány órába telhet.

Ha a PHP-t szeretnéd MySQL, cURL és GD támogatással fordítani, a parancs így fog kinézni:

Example#3 PHP telepítése USE jelzőkkel

# USE="-* curl mysql gd" emerge php mod_php

Mint ahogy a fenti példa is muatja, ne felejtsd el a php-t és a mod_php-t emerge-elni. A php a parancssori változatért felelős, a mod_php pedig az Apache modul verziójáért.

Általános problémák

  • Ha PHP szkript kimenete helyett a forráskódot kapod meg, valószínűleg megfeledkeztél az /etc/conf.d/apache fájl szerkesztéséről. Az Apache-t a -D PHP4 jelzővel kell elindítani. Ha a jelző jelen van, látnod kell a ps ax | grep apache parancs kimenetében, miközben az Apache fut.
  • Beillesztési problémák miatt, előfordulhat, hogy nem telepíthetsz több PHP verziót. Ebben az esetben a unmerge-elned kell a régi verziót a emerge unmerge mod_php-<régi verzió> paranccsal.
  • Ha nem tudod emerge-elni a PHP-t a Java miatt, próbáld meg úgy, hogy a -* karaktereket beilleszted a USE jelzők elé, mint ahogy a fenti példában látható.
  • Ha problémád akad az Apache és a PHP konfigurálásával, bármikor kereshetsz a » Gentoo fórumokban. Próbálj meg az "Apache PHP" kulcsszavakkal keresni.



Telepítés Mac OS X rendszerre

Table of Contents

Ez a fejezet a PHP Mac OS X rendszerre történő telepítésének dokumentációját tartalmazza. A Mac OS X rendszernek két némileg eltérő változata van, a kliens és szerver. Kézikönyvünk mindkét rendszerhez tartalmaz telepítési útmutatót. A PHP nem futtatható a MacOS 9 vagy korábbi verziókon.

Csomagok használata

Rendelkezésre áll néhány előre-csomagolt és előre-fordított PHP változat a Mac OS X rendszerekre. Ez sokat tud segíteni egy általános telepítés elvégzésében, de ha más funkciókra is vágysz (például biztonságos szerver funkciókra, vagy más adatbázis támogatására), előfordulhat, hogy mégis magadnak kell fordítanod a PHP-t és/vagy a szervert. Ha nem vagy tapasztalt az önálló fordításban, megéri utánanézni, hogy elkészítette-e már valaki más azt a csomagot, ami a kívánt funkciókkal rendelkezik.

A következő erőforrások könnyen telepíthető, előre lefordított PHP binárisokat ajánlanak fel Mac OS-on:


Using the bundled PHP

PHP has come standard with Macs since OS X version 10.0.0. Enabling PHP with the default web server requires uncommenting a few lines in the Apache configuration file httpd.conf whereas the CGI and/or CLI are enabled by default (easily accessible via the Terminal program).

Enabling PHP using the instructions below is meant for quickly setting up a local development environment. It's highly recommended to always upgrade PHP to the newest version. Like most live software, newer versions are created to fix bugs and add features and PHP being is no different. See the appropriate MAC OS X installation documentation for further details. The following instructions are geared towards a beginner with details provided for getting a default setup to work. All users are encouraged to compile, or install a new packaged version.

The standard installation type is using mod_php, and enabling the bundled mod_php on Mac OS X for the Apache web server (the default web server, that is accessible via System Preferences) involves the following steps:

  1. Locate and open the Apache configuration file. By default, the location is as follows: /etc/httpd/httpd.conf Using Finder or Spotlight to find this file may prove difficult as by default it's p