在Ubuntu 11.10 x64上編譯安裝php-5.4.7、mysql-5.5.27、nginx-1.3.6.tar.gz、xdebug-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