在CentOS 6.3 6.4/Ubuntu 11.10 x64上 编译安装 php、mysql、nginx、xdebug等开发环境

Ubuntu 11.10 x64上编译安装php-5.4.7mysql-5.5.27nginx-1.3.6.tar.gzxdebug-2.2.1以及开发IDE,jdk-6u35,phpstorm-5.0.1,netbeans-7.2和版本控制软件tortoisehg-2.5。

 //最新更新时间2013-02-04 01:05

注:下述文档为本人安装过程文档。

 

由于此版本为纯净版,所以需要下载以下扩展:

 

sudo -s LANG=C
apt-get install gcc g++ ssh automake cmake build-essential autoconf make re2c wget cron bzip2 rcconf flex vim bison m4 mawk cpp binutils libncurses5 unzip tar libncurses5 libncurses5-dev libtool libpcre3 libpcrecpp0 libssl-dev zlibc openssl libxml2-dev libltdl3-dev libpcre3 libpcrecpp0 libssl-dev zlibc openssl libxml2-dev libltdl3-dev libmcrypt-dev libcurl4-gnutls-dev(centos下需要另外安装 yum install gcc-c++ curl-devel

(如果出现部分文件不存在,请在软件源处设置下载自中国的服务器)

 CentOS:

yum install ncurses-devel autoconf automake bison cmake cpp flex gcc gcc-c++ libcurl-devel libtool libxml2-devel make unzip openssl cloog-ppl glibc-devel glibc-headers kernel-headers libgomp libidn-devel libstdc++-devel mpfr pkgconfig ppl xmlrpc-c xmlrpc-c-client zlib-devel curl glibc glibc-common libcurl libxml2

 

 

准备软件包:

php-5.4.7.tar.gz、xdebug-2.2.1.tar.gz、mysql-5.5.27.tar.gz、nginx-1.3.6.tar.gz、PhpStorm-5.0.1.tar.gz、netbeans-7.2-ml-php-linux.sh

jdk-6u35-linux-x64.bin (JDK)、mercurial-2.3.1.tar.gz、tortoisehg-2.5.tar.gz

安装PHP前:

编译安装PHP所需的支持库以及下载地址和安装方法:

libiconv-1.14.tar.gz、mcrypt-2.6.8.tar.gz、libmcrypt-2.5.8.tar.gz、mhash-0.9.9.9.tar.gz、pcre-8.20.tar.gz

以下是各下载地址:

 

 

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

http://cdnetworks-kr-1.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

http://cdnetworks-kr-1.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

http://cdnetworks-kr-1.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

http://cdnetworks-kr-2.dl.sourceforge.net/project/pcre/pcre/8.20/pcre-8.20.tar.gz

以上地址可能已经失效,其实搜索这些软件包可以Google一下全名,如果搜索“mhash-0.9.9.9.tar.gz”,就有了。

http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz
http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz

安装方法:

tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14/
./configure --prefix=/usr/local/libiconv
make
make install
cd ../

tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
cd ../

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
(CentOS6.3 请注意: http://www.cnblogs.com/huangdingding/archive/2012/11/06/2757411.html)
tar zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8/ /sbin/ldconfig ./configure make make install cd ../ tar zxvf pcre-8.10.tar.gz cd pcre-8.10 ./configure --prefix=/usr/local/pcre   #后面如果要装mongodb的话,加上参数 --enable-unicode-properties 不然报错,详见:《linux下mongodb安装和安装php扩展笔记》 make make install

现在开始安装lnmp,首先要先安装mysql-5.5.27,因为安装php的时候要用到mysql。

安装前要添加一个mysql用户组和mysql帐号并加入mysql组中

groupadd mysql
useradd -g mysql mysql

然后解压并进入目录

tar zxvf mysql-5.5.27.tar.gz
cd mysql-5.5.27

使用cmake 编译mysql-5.5.27

 

cmake -DCMAKE_INSTALL_PREFIX=/WorkSpace/app/mysql5  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8-unicode_ci -DMYSQL_DATADIR=/WorkSpace/app/mysql5/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_TCP_PORT=3306 -DWITH_READLINE=on
make && make install

 

其中,根据个人习惯,/WorkSpace/app是我的安装目录,大家自己设定。后面保持一致就ok了

目录权限变更

sudo chmod +w /WorkSpace/app/mysql5
sudo chown -R mysql:mysql /WorkSpace/app/mysql5
cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf
/WorkSpace/app/mysql5/scripts/mysql_install_db --user=mysql --basedir=/WorkSpace/app/mysql5 --datadir=/WorkSpace/app/mysql5/data

这里我选择copy的是innodb的配置文件。你可以自己看下support-files下的配置文件。

但是,一定要注意,记得看下my.cnf里的配置信息。如果选择innodb的配置文件,会跟默认的有些不同,比如:innodb中socket = /tmp/mysqld.sock,而MyISAM则是mysql.sock。

往往就这么一点小问题,会让你碰到不少麻烦的,比如用phpmyadmin链接数据库的时候会连不上,也不明确的提示什么什么错误.

在php里,使用mysql_connect()连接mysql的时候会报一个“Could not connectCan't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”的错误。

我的解决方法是建立一个软链接,

ln -s /tmp/mysqld.sock /tmp/mysql.sock

我曾经改过my.cnf中的mysqld.sock为mysql.sock,但是开始没有发现,到了后来好像用pdo连接数据库的时候,就报了个不能连接/tmp/mysqld.sock的错误(关于这个我也记不清楚的,好像是pdo链接的时候报错)。

启动的时候我还有些遇到的问题(如:Can't find messagefile '/usr/share/errmsg.sys'An old style --language……之类的

解决方法是等你启动的时侯,也最好指定下配置文件,启动方式:

 

/WorkSpace/app/mysql5/bin/mysqld_safe --defaults-file=/etc/my.cnf &

 

指定配置文件即可。

最后一个问题是命令下 mysql -uroot -p 能进入,而用mysql -h 127.0.0.1 -uroot -p 则不能链接

原因是开启了防火墙,需要是使用下面命令来关闭防火墙:

iptables -P INPUT ACCEPT

给mysql root账户添加密码:

/WorkSpace/app/mysql5/bin/mysqladmin -u root password '123456'

mysql5.5安装完成,关于如何加入环境变量在后面统一说明。

安装php 5.4.7 

(注意:后期在fedora 17(32位)中安装出现错误:

 

checking for mysql_set_server_option in -lmysqlclient... no
onfigure: error: wrong mysql library version or lib not found.

发现使用ln -s /app/mysql5/lib/libmysqlclient.so* /usr/lib/ 不能解决问题。临时解决办法是:去掉--with-mysqli=/WorkSpace/app/mysql5/bin/mysql_config

 

)

sudo ./configure --prefix=/WorkSpace/app/php5 --with-config-file-path=/WorkSpace/app/php5/etc --with-mysql=/WorkSpace/app/mysql5 --with-mysqli=/WorkSpace/app/mysql5/bin/mysql_config --with-iconv-dir=/usr/local --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-pdo_mysql

(2013-05-31 添加,安装路径有变,请自行修改)
./configure --prefix=/app/php5 --enable-fpm --with--fpm --with-fpm-user=www --with-fpm-group=www --with-curl --enable-mbstring --with-pdo-mysql --with-mysql=/app/mysql5 --with-mysqli=/app/mysql5/bin/mysql_config

{#2013-05-19 01:16修复(配置http://ciwei.cc服务器时碰到)
红色的是后期在不同的环境中编译碰到的问题:
1、有的时候想想configure的时候不需要加sudo,但是我就碰到必须要加的时候,就是在服务器上,为了安全起见,普通用户是无法得到mysql安装目录下的任何权限的。包括读取,因此在编译过程中会报一个找不到mysql什么的错误。所以必须加sudo。
2、报(configure: error: cannot compute sizeof (char *), 77)这么一个错误。并不是每一个机器上都会有这个错误。我就碰到了。去掉 --disable-rpath选项就好了。
}
make ZEND_EXTRA_LIBS='-liconv'
//如果直接make 会报一个 “undefined reference to `libiconv_close' collect2: ld returned 1 exit status”的错误
make install

如果在32位机器上装到时候可能会碰到checking size of char... configure: error: cannot compute sizeof (char)这个问题。需要去掉--disable-rpath

安装完成后,复制php.ini

cp php.ini-production /WorkSpace/app/php5/etc/php.ini
=====================
一般有php.ini-production(正式环境)和php.ini-development(本地开发环境)两个配置模板
=====================
2013-08-26修正错误,如果把php.ini放到etc目录,那么请在./configure的时候加这个选项(--with-config-file-path=/WorkSpace/app/php5/etc),否则php会无法找到php.ini,从而采用默认的配置。
如:用date没有设定datezone的话会报Warning: date() :It is not safe to rely on the system's timezone settings....然后网上这个问题的解决方法一大片,改了php.ini,重启php-fpm结果还是一样报错。。。后来发现php压根没有调用该php.ini。把php.ini移动到/WorkSpacke/app/php5/lib/php.ini就好了。
cp php.ini-production /WorkSpace/app/php5/lib/php.ini

修改php.ini里面的

extension_dir = "/WorkSpace/app/php5/lib/php/extensions/no-debug-non-zts-20100525"
关于extension_dir里的值可以执行 /WorkSpace/app/php5/bin/php-config 查看。

个人建议:开启display_errors = On

display_errors = On

memory_limit = 512M //根据需要

error_reporting = E_ALL   //这里报错级设为ALL后,对于平时书写不规范的朋友,可能会报一大堆错误,可不开,建议开启。不明确的变量都isset来控制报错

创建fastcgi配置文件

cp /WorkSpace/app/php5/etc/php-fpm.conf.default /WorkSpace/app/php5/etc/php-fpm.conf

修改php-fpm.conf

去掉下面三行的注释
pid = run/php-fpm.pid

error_log = log/php-fpm.log

log_level = notice

和修改

user = nobody
group = nobody

user = www
group = www
同时建立对应的用户于组
groupadd www
useradd -g www www

根据需要修改php-fpm启动的进程数量:

vim /WorkSpace/app/php5/etc/php-fpm.conf

pm.max_children = 5

pm.start_servers = 2

(检查方法:使用ps -ef | grep php-fpm 查看进程数量,修改后,再使用sudo /etc/init.d/php-fpm restart 重启php,再看php-fpm进程数,就跟pm.start_servers的值一样了)

cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

使用 /etc/init.d/php-fpm start 启动php

安装nginx:

tar zxf nginx-1.3.6.tar.gz

cd nginx-1.3.6

./configure --user=www --group=www --prefix=/WorkSpace/app/nginx --with-pcre=../pcre-8.20 --with-http_stub_status_module

make && make install

CentOS nginx安装淘宝开源模块nginx_concat_module

./configure --user=www --group=www --prefix=/WorkSpace/app/nginx --with-http_stub_status_module --with-pcre=../pcre-8.20 --add-module=../nginx_concat_module/

Centos 6.3设置php、mysql、nginx开机自启动

启动nginx /WorkSpace/app/nginx/sbin/nginx

现在php mysql nginx都安装完毕,开始安装php的xdebug扩展

tar zxvf xdebug-2.2.1.tgz
cd xdebug-2.2.1/
/WorkSpace/app/php5/bin/phpize ./configure --enable-xdebug --with-php-config=/WorkSpace/app/php5/bin/php-config make && make install cp modules/xdebug.so /WorkSpace/app/php5/lib/php/extensions/no-debug-non-zts-20100525/


然后开始配置php.ini
vim /WorkSpace/app/php5/etc/php.ini
在最后加入
zend_extension=/WorkSpace/app/php5/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
重启php
/etc/init.d/php-fpm restart

安装netbeans、phpstorm

安装netbeans、phpstorm都需要用到jdk,下载jdk-6u35-linux-x64.bin(位于目录/home/huangdd/soft)

mkdir /WorkSpace/app/java
cd /WorkSpace/app/java
chmod +x /home/huangdd/soft/jdk-6u35-linux-x64.bin
/home/huangdd/soft/jdk-6u35-linux-x64.bin

jdk将安装在
/WorkSpace/app/java/jdk1.6.0_35
sudo gedit /etc/profile


加入环境变量:

#set java environment
export JAVA_HOME=/WorkSpace/app/java/jdk1.6.0_35
export JRE_HOME=/WorkSpace/app/java/jdk1.6.0_35/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile    //重载

到这一步已经安装好jdk了

安装phpstorm 和 安装netbeans比较简单
下载 netbeans-7.2-ml-php-linux.sh和PhpStorm-5.0.1.tar.gz
chmod +x netbeans-7.2-ml-php-linux.sh
./netbeans-7.2-ml-php-linux.sh
接下来如果windows下一样安装。
tar zxvf PhpStorm-5.0.1.tar.gz
cd PhpStorm-121.215/bin
chmod +x phpstorm.sh
./phpstorm.sh

最后来安装
mercurial-2.3.1和tortoisehg-2.5
安装前需要安装python
sudo apt-get install python-iniparse python-nautilua python-dev


tar zxvf mercurial-2.3.1.tar.gz
cd mercurial-2.3.1/
python setup.py build
python setup.py install

这里我是将tortoisehg-2.5.tar.gz解压在/WorkSpace/app/下
tar zxvf tortoisehg-2.5.tar.gz
cd tortoisehg-2.5/
python setup.py build
python setup.py install

安装好后,可以使用命令
./thg
运行tortoisehg

 

为了方便起见,可以把这个路径加入到环境变量里去。

sudo gedit /etc/profile

打开文件,加入(请根据自己实际情况来添加):

#set java environment
export JAVA_HOME=/WorkSpace/app/java/jdk1.6.0_35
export JRE_HOME=/WorkSpace/app/java/jdk1.6.0_35/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

#set Common environment
export PATH=/WorkSpace/app/cmd:$PATH:.

#set Mysql environment
export PATH=/WorkSpace/app/mysql5/bin:$PATH:.

#set Phpstorm environment
export PATH=/WorkSpace/app/PhpStorm-121.215/bin:$PATH:.

#set netbeans environment
export PATH=/WorkSpace/app/netbeans-7.2/bin:$PATH:.

#set Tortoisehg environment
export PATH=/WorkSpace/app/tortoisehg-2.5:$PATH

让其生效:

source /etc/profile

注意:这边在普通用户里,永远可以直接使用这边定义的环境变量,但是如果你是在root下,每次用前第一次要使用以上命令载入。退出root,再进入时又得执行一次。

 

 

本博客所有文章如无说明,则均为作者黄丁丁原创
转载请注明出处:http://www.cnblogs.com/huangdingding

本文地址:http://www.cnblogs.com/huangdingding/archive/2012/10/25/2739220.html

 

转载于:https://www.cnblogs.com/huangdingding/archive/2012/10/25/2739220.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值