首页 > 代码库 > Ubuntu编译源码搭建PHP开发环境

Ubuntu编译源码搭建PHP开发环境

准备源码:

1.mysql的源码:mysql-5.5.15.tar.gz 

2.apache的源码:httpd-2.2.19.tar.gz 

3.php的源码:php-5.3.6.tar.gz 

 

第一步,安装MySql 

groupadd mysql                                添加一个mysql用户组
useradd -g mysql mysql                  添加一个mysql到用户,此用户属于mysql组


 
tar -xzvf mysql-5.5.15.tar.gz
cd mysql-5.5.15
cmake -DCMAKE_INSTALL_PREFIX=/usr/dev/mysql \     使用cmake编译而不是make编译,如果没有安装cmake则需要通过apt-get安装cmake再执行此步
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/var/mysql/data \
-DMYSQL_USER=mysql




make
make install

chmod +/usr/dev/mysql
chown -R mysql:mysql /usr/dev/mysql


mkdir -p /var/mysql/
mkdir -p /var/mysql/data/
mkdir -p /var/mysql/log/
chown -R mysql:mysql /var/mysql/

cd /usr/dev/mysql/support-files
## 可能还需要执行这一步:mkdir /etc/mysql
cp my-large.cnf /var/mysql/my.cnf(如果是debian,my.conf需要放在/etc/mysql/下面)

cp mysql.server /etc/init.d/mysqld

cp /usr/dev/mysql/scripts/mysql_install_db /usr/dev/mysql/.
chmod 777 /var/mysql/data

/usr/dev/mysql/scripts/mysql_install_db \--defaults-file=/etc/mysql/my.cnf \--basedir=/usr/dev/mysql \--datadir=/var/mysql/data \--user=mysqlchmod +x /etc/init.d/mysqldvi /etc/init.d/mysqld (编辑此文件,查找并修改以下变量内容:)basedir=/usr/dev/mysqldatadir=/var/mysql/datachkconfig –add mysqldchkconfig –level 345 mysqld on

 

 

 

 

第二步,安装apache

tar -xzvf httpd-2.2.19.tar.gz
cd httpd-2.2.19

# 编译和安装 apr 1.2
cd srclib/apr
./configure --prefix=/usr/dev/apr-httpd/
make
make install

# 编译和安装 apr-util 1.2
cd ../apr-util
./configure --prefix=/usr/dev/apr-util-httpd/ --with-apr=/usr/dev/apr-httpd/
make
make install

# 配置 httpd
cd http://www.cnblogs.com/

#不知到这一句到效果会不会被下面那一句覆盖,会的话就不用执行这一句 ./configure --with-apr=/usr/dev/apr-httpd/ --with-apr-util=/usr/dev/apr-util-httpd/

#如果报错“apache  APR-util version 1.2.0 or later is required”(已经安装的apr-util的版本明明是1.3.12,却报这个错) 可尝试如下编译语句:./configure --with-apr=/program/apr-httpd/ --with-apr-util=/program/apr-util-httpd/ --with-included-apr --prefix=/program/apache --enable-rewrite=shared --enable-speling=shared

#很可能会报错,最好先make clean
./configure --prefix=/usr/dev/apache \
--enable-rewrite=shared \
--enable-speling=shared

make && make install

 

 

第三步,安装php

如果没有安装libxml2-dev,需要先安装libxml2-dev:
apt-get install libxml2-dev


tar -xzvf php-5.3.6.tar.gz
cd php-5.3.6
 ./configure --prefix=/usr/dev/php5.3.6 --with-apxs2=/usr/dev/apache/bin/apxs --with-mysql=/usr/dev/mysql
make
make install 

cp php.ini-development /usr/dev/php5.3.6/lib/php.ini



编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 表达式右边的路径必须指向 系统中的 PHP。以上的 make install 命令可能已经完成了这些,但务必要检查。

LoadModule php5_module modules/libphp5.so

告知 Apache 将特定的扩展名解析成 PHP,例如,让 Apache 将扩展名 .php 解析成 PHP。为了避免潜在的危险,例如上传或者创建类似exploit.php.jpg的文件并被当做 PHP 执行,我们不再使用 Apache 的 AddType 指令来设置。参考下面的例子,你可以简单的将需要的扩展名解释为 PHP。我们演示为增加.php。

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch

 

 

 

建议:网上的资料比较杂,安装apache 和 php可以结合参考官方的手册比较好。

 

最后附上windows下的php环境搭建:

1.先装mysql
安装mysql-5.5.14-win32.msi   27.7M

2.再装apache
安装httpd-2.2.19-win32-x86-openssl-0.9.8r.msi 5.56M

3.安装PHP
下载 php-5.2.17-Win32-VC6-x86.zip(vc6非线程安全版本) 10M,不用安装,解压到D:\php_5.2.17

4.配置apache使之支持php
LoadModule php5_module "D:/php_5.2.17/php5apache2_2.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "D:/php_5.2.17"

5.配置php.ini使之支持mysql
进入目录D:/php_5.2.17,将php.ini-dist复制到当前目录并且改名为php.ini
打开php.ini,设置 extension_dir = "D:\PHP_5.2.17\ext"
去掉;extension=php_mysql.dll最前面的;,让php加载mysql的dll
在环境变量里加入以下两个路径:

;D:\PHP_5.2.17;D:\PHP_5.2.17\ext  

 

还有第二种更为干净的配置方法(其实就是下载MySql绿色版,不用安装,个人比较喜欢这种方式):

1.再装apache

安装httpd-2.2.19-win32-x86-openssl-0.9.8r.msi 5.56M

 

2.安装PHP
下载 php-5.2.17-Win32-VC6-x86.zip(vc6非线程安全版本) 10M,不用安装,解压到D:\php_5.2.17

 

 

3.安装mysql(下载不用安装版的mysql)
下载 mysql-5.5.15-win32.zip  133M   不用安装,解压到D:\Program Files\MySql_5.5.15
4.配置apache使之支持php
LoadModule php5_module "D:/php_5.2.17/php5apache2_2.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "D:/php_5.2.17"

5.配置php.ini使之支持mysql
进入目录D:/php_5.2.17,将php.ini-dist复制到当前目录并且改名为php.ini
打开php.ini,设置 extension_dir "D:\PHP_5.2.17\ext"
去掉;extension=php_mysql.dll最前面的;,让php加载mysql的dll