lamp安裝配置詳細過程(把以前的筆記貼上來)

準備;

首先進入/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

. 在/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保存退出

打開一個瀏覽器窗口在地址欄輸入

http://127.0.0.1/info.php

如果出現配置信息的頁面,就證明整個環境配置成功.

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

(0)
s19930811s19930811
上一篇 2015-04-29
下一篇 2015-05-01

相關推薦

  • Linux哲學思想以及自己的理解

    Linux哲學思想: #1 一切接文件 #2  單一目的小程序 #3 組合小程序完成復雜任務 #4 文本文件保存配置信息 #5 盡量避免捕獲用戶接口 #6 提供機制,而非策略 自己的理解:(玩Linux時間比較短,沒什么太深刻的理解) #1 一切皆文件 我們說“Linux中一切皆文件”直觀地可以這樣理解:所有的東西,設備、內存都模擬成文件,我們可以…

    Linux干貨 2016-08-15
  • 數組

    一.數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 索引:編號從0 開始,屬于數值索引  注:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0 版本之后開始支持,bash 的數組支持稀疏格式(索引不連續) 二.數組的聲明 declare -a ARRAY_NAME decla…

    Linux干貨 2016-11-23
  • centos6.9實現網卡bonding

    centos6.9實現網卡bonding 為什么要用bonding  將多塊網卡配置同一IP地址實際中是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡被修改為相同的MAC地址,這樣可以實現多塊網卡綁定同一IP地址,對外提供服務。用于網絡負載均衡和網絡冗余。 工作模式  bonding的模式:0-6,即:7種模式,這里我們…

    2017-08-20
  • 文件管理類的命令總結

    Linux系統內針對目錄的管理命令有很多,現在我們進行逐一介紹: 1. ?mkdir – make directories,創建目錄 語法:mkdir [OPTION]… DIRECTORY…常用選項: 選項 | 含義—— | ——-p, –parents | 遞…

    2017-09-07
  • 進程管理工具:ps,top,htop,dstat

    進程列表查看,系統資源使用情況查看,比如CPU占用情況,內存使用情況,網絡IO,硬盤IO等等。本文介紹的幾款工具幫您實現。 進程是指運行中的程序的一個副本,進程的有關信息映射在/proc/#下,ps等工具通過加工/proc/下文件而顯示出進程列表。 linux內核屬于搶占式多任務式,內核將CPU處理時間按時間片分配給各個進程,這里有一個優先級的問題,優先級越…

    Linux干貨 2016-09-22
  • yum用法第一篇-簡介及常見用法使用總結

    一、簡介     yum( 全稱為:Yellow dog Updater, Modified),是紅帽(RedHat)家族(RedHat、Fedora、CentOS)中的前端shell的軟件包管理器,主要基于對RPM包的管理,能夠根據配置文件(類似于svn資源庫配置文件)從指定的服務器自動下載RPM包進行安裝,其最大的優勢就是可…

    Linux干貨 2015-09-22
欧美性久久久久