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

最近要转PHP了,迷上了Ubuntu,不想通过apt-get搭建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
=mysql




chmod 
+/etc/init.d/mysqld
vi 
/etc/init.d/mysqld (编辑此文件,查找并修改以下变量内容:)
basedir
=/usr/dev/mysql
datadir
=/var/mysql/data

chkconfig –add mysqld
chkconfig –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


原文地址:https://www.cnblogs.com/mxw09/p/2123182.html