(安裝順序在最後)php
把 php 放到最後安裝是由於在編譯 php 時,須要指定 mysql 和 apache 的路徑,若是不先安裝好 mysql 和 apache 就沒有辦法安裝 php 。而 apache 和 mysql 的安裝順序就無所謂了。html
PHP 官網下載地址:http://www.php.net/downloads.php 。搜狐鏡像:http://mirrors.sohu.com/php/php-5.6.10.tar.gz 。mysql
下載 php:sql
[root@localhost ~]# cd /usr/local/src [root@localhost src]# wget http://mirrors.sohu.com/php/php-5.6.10.tar.gz
解壓源碼包:
apache
[root@localhost src]# tar zxf php-5.6.10.tar.gz
配置編譯參數:
vim
[root@localhost src]# cd php-5.6.10 [root@localhost php-5.6.10]# ./configure \ --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-config-file-path=/usr/local/php/etc \ --with-mysql=/usr/local/mysql \ --with-libxml-dir \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-iconv-dir \ --with-zlib-dir \ --with-bz2 \ --with-openssl \ --with-mcrypt \ --enable-soap \ --enable-gd-native-ttf \ --enable-mbstring \ --enable-sockets \ --enable-exif \ --disable-ipv6
遇到錯誤:
api
error: xml2-config not found. Please check your libxml2 installation. # yum install -y libxml2-devel
error: Cannot find OpenSSL's <evp.h> # yum install -y openssl openssl-devel
error: Please reinstall the BZip2 distribution # yum install -y bzip2 bzip2-devel
error: png.h not found. # yum install -y libpng libpng-devel
error: freetype.h not found. # yum install -y freetype freetype-devel
error: freetype-config not found. # yum install -y freetype-devel
error: mcrypt.h not found. Please reinstall libmcrypt. # yum install -y libmcrypt-devel
編譯
bash
#makeapp
[root@localhost php-5.6.10]# make crypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -o sapi/cgi/php-cgi Generating phar.php Generating phar.phar PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled. pharcommand.inc directorytreeiterator.inc clicommand.inc directorygraphiterator.inc invertedregexiterator.inc phar.inc Build complete. Don't forget to run 'make test'. [root@localhost php-5.6.10]# echo $? 0
安裝
dom
# make install
[root@localhost php-5.6.10]# make install Installing PEAR environment: /usr/local/php/lib/php/ [PEAR] Archive_Tar - installed: 1.3.12 [PEAR] Console_Getopt - installed: 1.3.1 [PEAR] Structures_Graph- installed: 1.0.4 [PEAR] XML_Util - installed: 1.2.3 [PEAR] PEAR - installed: 1.9.5 Wrote PEAR system config file at: /usr/local/php/etc/pear.conf You may want to add: /usr/local/php/lib/php to your php.ini include_path /usr/local/src/php-5.6.10/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin ln -s -f phar.phar /usr/local/php/bin/phar Installing PDO headers: /usr/local/php/include/php/ext/pdo/ [root@localhost php-5.6.10]# echo $? 0
拷貝 php 配置文件
[root@localhost php-5.6.10]# cp php.ini-production /usr/local/php/etc/php.ini
修改 apache 配置文件
[root@localhost php-5.6.10]# vim /usr/local/apache2/conf/httpd.conf
找到:
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> 改成: <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory>
說明:若是不修改這個地方,咱們訪問網站會禁止訪問,顯示403。
而後找到:
AddType application/x-gzip .gz .tgz
在該行下面添加:
AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php
說明:要想支持 php 腳本解析,必需要加上對應的類型。
再找到:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
改成:
<IfModule dir_module> DirectoryIndex index.html index.htm index.php </IfModule>
說明:增長對 php 的索引,若是一個站點默認頁爲 index.php,那麼就得加上這個 index.php 的支持。
再找到:
#ServerName www.example.com:80
修改成:
ServerName localhost:80
若是不去掉#,則啓動 apache 時,會有警告信息「httpd:Could not reliably determine the server's fully qualified domain name,using localhost.localdomain for ServerName」,看起來像是錯誤,其實沒有影響。
查看配置文件是否有問題:
[root@localhost php-5.6.10]# /usr/local/apache2/bin/apachectl -t Syntax OK
啓動服務:
[root@localhost php-5.6.10]# /usr/local/apache2/bin/apachectl start
檢查是否正常啓動:
[root@localhost php-5.6.10]# ps aux|grep httpd root 7998 0.0 0.7 196260 7284 ? Ss 23:45 0:00 /usr/local/apache2/bin/httpd -k start daemon 7999 0.0 0.4 196396 4920 ? S 23:45 0:00 /usr/local/apache2/bin/httpd -k start daemon 8000 0.0 0.4 196396 4920 ? S 23:45 0:00 /usr/local/apache2/bin/httpd -k start daemon 8001 0.0 0.4 196396 4920 ? S 23:45 0:00 /usr/local/apache2/bin/httpd -k start daemon 8002 0.0 0.4 196396 4920 ? S 23:45 0:00 /usr/local/apache2/bin/httpd -k start daemon 8003 0.0 0.4 196396 4920 ? S 23:45 0:00 /usr/local/apache2/bin/httpd -k start root 8005 0.0 0.0 103316 900 pts/1 S+ 23:45 0:00 grep httpd