準備;
首先進入/usr/local/目錄
#cd /usr/local
刪除所有安裝過的php mysql apache 以及libxml
首先查看目前 /usr/local目錄下面的內容
#ls –l
如果看到php5 php apache2 apache mysql mysql5 libxml libxml2字樣的目錄都將其刪除具體命令如下
#rm –rf php5 刪除php5目錄
#rm –rf libxml2 刪除libxml2目錄
進入home目錄
#cd /home
刪除已經解壓縮的的安裝程序
首先查看已經解壓縮了那些程序
#ls –l
注意藍色的字樣的都為已經解壓縮的目錄
將其刪除
如:
#rm –rf http-2.2.11
#rm –rf php-5.2.3
#rm –rfmysql-5.0.41-linux-i686
#rm –rf libxml2-2.6.30
刪除完畢后,最好重新啟動下linux操作系統
#reboot
1:安裝apache2。
1. 進入/home目錄(如果虛擬機的,先從別的地方拷到這個目錄home/xxxx/下)
# cd /home
2. 對apache2安裝文件包進行解壓縮 解壓httpd-2.2.11.tar.gz
#tar –zvxf httpd-2.2.11.tar.gz
解壓完畢后,進入httpd-2.2.11目錄
# cd httpd-2.2.11
3 . 在/usr/local/下面創建一個要安裝過去的目錄apache2
# mkdir –p /usr/local/apache2
4 .配置安裝環境( 設置apache的安裝路徑)
# ./configure–prefix=/usr/local/apache2 –enable-modules=so–enable-rewrite
(–enable-dav 安裝mod_dav模塊);
5 .編譯(make)和安裝(make install)
# make; make install
編譯安裝完畢后啟動apache2服務器
#/usr/local/apache2/bin/apachectl -k start
用瀏覽器查看http://127.0.0.1,得到it works,說明apache已經配置成功了。
系統啟動時自動加載Apache:
1. 在/etc/rc.d/rc.local中增加啟動apache的命令,例如:/usr/local/httpd/bin/httpd
2.cp/usr/local/apache/bin/ httpd /etc/rc.d/init.d/httpd
3.可以用servicehttpd start啟動
正常啟動: /usr/local/apache2/bin/httpdstart apaceh啟動
/usr/local/apache2/bin/apachectlstop 停止
/usr/local/apache2/bin/apachectlrestart 重啟
6. apache以指定的用戶運行;
安裝的時候,apache自動以daemon用戶運行。如果想以自定義用戶如www-data運行:
$ useradd www-data
$ vi httpd.conf
修改其中的內容:
user daemon 改為 user www-data
group daemon 改為 group www-data
2:安裝mysql
2.1 Mysql resource的安裝
進入home目錄
#cd /home
對mysql安裝文件進行解壓縮
# tar -zvxfmysql-5.0.41-linux-i686.tar.gz
進入mysql解壓的源碼文件目錄:
#cd /home/hguisu/mysql-5.0.14
#設置mysql的安裝路徑:
./configure–prefix=/usr/local/mysql
編譯,進行安裝:
make && make install
2.2 Mysql binary的安裝
進入home目錄
#cd /home
對mysql安裝文件進行解壓縮
# tar -zvxf mysql-5.0.41-linux-i686.tar.g
#移動解壓縮的內容到要安裝的目錄
#mv mysql-5.0.41-linux-i686 /usr/local/mysql)
(cp /home/hguisu/mysql-5.0.41-linux-i68/* /usr/local/src/mysql
添加mysql用戶及用戶組
# groupadd mysql –應該已經存在了
#useradd –d/usr/local/mysql/data –s /sbin/nologin –g mysql mysql –應該已經存在了
進入/usr/local/mysql目錄中
#cd /usr/local/mysql
修改mysql目錄權限
# chown -R root/usr/local/mysql
# chown -R mysql/usr/local/mysql/data
# chgrp -R mysql/usr/local/mysql
生成mysql系統數據庫
# ./scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql
(basedir是mysql的安裝目錄)
由這個basedir參數指定二進制數據位置!
啟動mysql服務
#/usr/local/mysql/bin/mysqld_safe –user=mysql &
如出現 Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常啟動mysql服務了, 按Ctrl + C 跳出
設置自動啟動
#cp./support-files/mysql.server /etc/rc.d/init.d/mysqld
若提示覆蓋則按y
修改權限
#chmod 700/etc/rc.d/init.d/mysqld
#chkconfig –add mysqld
測試mysql的安裝
#/usr/local/mysql/bin/mysqladminping
#/usr/local/mysql/bin/mysqladminversion
#/usr/local/mysql/bin/mysql
進入mysql:cd /usr/local/mysql/bin ./mysql執行,ctrl+c退出
8、為根用戶創建密碼
用SET PASSWORD命令
#/usr/local/mysql/bin/mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
用mysqladmin
./mysqladmin -u root password "newpass"
如果root已經設置過密碼,采用如下方法
./mysqladmin -u root password oldpass "newpass"
用UPDATE直接編輯user表
./mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password =PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
在丟失root密碼的時候,可以這樣
./mysqld_safe –skip-grant-tables&
./mysql -u root mysql
mysql> UPDATE user SETpassword=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;
我只測試了前2種,第三種不知道怎么樣
錯誤:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
解決方法:
由于mysql 默認的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系統總是去/tmp/mysql.sock查找,所以會報錯
[root@localhost ~]# find / -name mysql.sock
/var/lib/mysql/mysql.sock
1.直接指定mysql通道
[root@localhost ~]# mysql –socket=/var/lib/mysql/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 2 to server version: 5.0.22
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
2. 創建符號連接:
為mysql.sock增加軟連接(相當于windows中的快捷方式)。
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
eg:
root@localhost ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@localhost ~]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
[root@localhost ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 3 to server version: 5.0.22
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
我覺得這兩個方法挺好用的
2.3 apt-get安裝:
apt-get install mysql-server
apt-get install mysql-server-core-5.1
配置文件:/etc/mysql/my.cnf
啟動文件位置:/etc/init.d/mysql
執行文件:/usr/bin
啟動:/etc/init.d/mysql start 或者service mysql restart
問題:遠程訪問局域網內的mysql時出現ERROR 2003 (HY000): Can't connect to MySQL server on (10061)
解決:my.ini(my.cnf)默認的bind-address是127.0.0.1,這樣的話就算你創建的用戶有可以remote訪問的話 也不能通過-h 來訪問。 mysql只接受localhost。 所以把bind-address屏蔽掉即可。
3:安裝libxml2,php5必須有libxml2支持!
進入home目錄
# cd /home
解壓縮libxml2-2.6.30.tar.gz
# tar -zxflibxml2-git-snapshot.tar.gz
進入剛解壓縮出來的文件目錄
# cd libxml2-git-snapshot
配置安裝目錄信息
# ./configure –prefix=/usr/local/libxml2
【configure: error: cannot find macrodirectory `m4' 】
# mkdir/home/hguisu/libxml2-git-snapshot/m4 就OK 了。
編譯和安裝
# make; make install
rpm-ivhlibxml2-2.6.23-1.2.i386.rpm
rpm-ivh libxml2-devel-2.6.23-1.2.i386.rp
或者yum install libxml2-devel.x86_64
4 .安裝php5
進入home目錄
# cd /home
解壓縮php-5.2.3.tar.gz
# tar -zvxf php-5.2.3.tar.gz
創建/usr/local/php安裝目錄
# mkdir /usr/local/php
進入剛解壓縮出來的目錄
# cd php-5.2.3
配置安裝信息
# ./configure–prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql/ –with-libxml-dir=/usr/local/libxml2
(mysql=/usr/local/mysql/ 加載mysql模塊, –with-apxs2=/usr/local/apache2/bin/apxs配置http.conf,添加LoadModule)
編譯安裝
# make;make install
復制配置文件php.ini
# cp php.ini-development/usr/local/php/lib/php.ini
5:重新配置apache2讓他支持php。
如果安裝php的時候,configure選項帶有 –with-apxs2=/usr/local/apache2/bin/apxs,就不用以下這些手工配置了。
配置 httpd.conf 讓apache支持PHP
# vi/usr/local/apache2/conf/httpd.conf
在vi中的命令狀態(按esc可以到命令狀態)按/AddType查找到下面內容
找到 AddType application/x-gzip .gz .tgz 在其下添加如下內容(注意vi命令模式下 按鍵盤上的i鍵 進入插入編輯狀態)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
添加完畢后 按esc到命令狀態輸入:wq保存退出
重啟apache
#/usr/local/apache2/bin/apachectl stop
#/usr/local/apache2/bin/apachectl start
在/usr/local/apache2/htdocs目錄里建一內容為 PHP文件info.php
#vi /usr/local/apache2/htdocs/info.php
進入vi環境后 按i進入編輯模式
輸入一下內容
<?php
echo phpinfo();
?>
然后按esc退出編輯模式到命令模式輸入:wq保存退出
打開一個瀏覽器窗口在地址欄輸入
如果出現配置信息的頁面,就證明整個環境配置成功.
6、問題
6.1、無法加載 mysql 擴展,請檢查您的 PHP 配置。
大體方法是進入php 的源碼目錄下的 ext/moduledir, 也就是你想要編譯的模塊的源碼目錄下, 然后以絕對 路徑的方式調用已經編譯好的php 的目錄下的 bin/phpize 這個程序.
1.進入php到源目錄:
cd home/hguisu/php-5.3.2/ext/mysql
2. 執行phpize:/usr/local/php/bin/phpize
這樣, 就會在php-5.3.2/ext/mysql 目錄下, 產生一系列可以單獨進行configure 和 make 的 文件 (如果要清理掉它們, 運行 /php/bin/phpize –clean ).
3. 之后 我們運行:
./configure–with-php-config=/php/bin/php-config –with-mysql
如果提示錯誤:configure: error: Cannot find MySQL header files under yes.
解決:在 ./configure 下參數指定 header file 的位置(即mysql安裝目錄),加上如下語句:
–with-mysql=/usr/local/mysql
4. 編譯make
5 .安裝 make install
整個過程也就基本完成了.
注意, 編譯好的模塊, 一般是自動安裝到大概這種關系的路徑下 (我的是 bsd 系統, 別的系統或許不 一樣):
/php/lib/php/extensions/no-debug-non-zts-20060613
另外, win 下編譯好的模塊擴展名一般是dll, 而 unix 之類的系統則通常為 so.
6.設置 php.ini
在php.ini加入:extension=mysql.so,
設置擴展路徑:extension_dir ="/usr/local/php/ext/".
把/php/lib/php/extensions/no-debug-non-zts-20060613/下的mysql.so拷到/usr/local/php/ext/"
然后重啟 http 服務器就行了
6.2、無法加載 mcrypt 擴展,請檢查您的 PHP 配置。
解決:
安裝 libmcrypt
下載libmcrypt-2.5.8.tar.gz
解壓tar zxvf libmcrypt-2.5.8.tar.gz
配置./configure
編譯 make
安裝 make install
注意,這里配置的時候不需要指定安裝位置,否則在以后步驟中可能出錯
進入php的安裝源文件,進入php-5.3.0/ext/mcrypt
運行/usr/local/php/bin/phpize
這時可能說沒有autoconf這個軟件,就裝一下apt-get install autoconf,當然自己編譯也可以
再次運行/usr/local/php/bin/phpize
會產生configure等文件
然后配置./configure –with-php-config=/usr/local/php/bin/php-config
編譯make
安裝 make install
會出現提示說在某個文件夾里面產生了一個文件mcrypt.so,這時要把這個文件移動到extension_dir里面,具體extension_dir是那個,可以參照剛安裝完php之后測試時顯示的信息
然后重新編譯php,回到php安裝的(4)這時的配置參數要加一個–with-mcrypt
重新編譯安裝php,然后成功后,重啟apache進行測試
6.3、找不到mbstring
解決:
進入php的安裝源文件,進入php-5.3.0/ext/mbstring
運行:
/usr/local/php/bin/phpize
會產生configure等文件
然后配置./configure –with-php-config=/usr/local/php/bin/php-config
編譯make
安裝 make install
會出現提示說在某個文件夾里面產生了一個文件mbstring.so,這時要把這個文件移動到extension_dir里面,具體extension_dir是那個,可以參照剛安裝完php之后測試時顯示的信息
這次不用編譯了,到php的配置文件,在extension里面添加extension=mbstring.so,然后保存后重新啟動apache,如果沒有達到效果,那么在后面添加絕對路徑
6.4如果自己用libmcrypt、mhash、mcrypt編譯mcrypt
那么記得前面個兩個配置時要用默認配置,不要加參數,配置mcrypt 時安裝到指定位置,這樣方便重新編譯php,如果在編譯前面2個時用了指定位置,可能在編譯mcrypt時出現以下問題
6.3.1
描述:
libmcrypt cannot be found
解決:
cp /usr/local/lamp_other/libmcrypt/lib/libmcrypt.*/usr/lib/
ln -s/usr/local/lamp_other/mhash/lib/libmhash.so.2 /usr/lib/libmhash.so.2
這里/usr/local/lamp_other/libmcrypt/就是安裝libmcrypt的指定路徑
6.3.2
描述:
"You need at least libmhash 0.8.15to compile this program.
這個問題不知道怎么解決,有的說在編譯mcrypt時用LD_LIBRARY_DIR=<mhash安裝路徑> ./configure –prefix=/usr/local/mcrypt,不過我沒有成功過
最直接的解決辦法就是得前面個兩個配置時要用默認配置,不要加參數
轉自:http://blog.csdn.net/hguisu/article/details/7298973
原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/3074