在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM