以前在網上找的一些大牛們的源碼安裝lamp環境的文章,老是達不到他們實現的效果,因而決定本身總結一篇源碼安裝LAMP環境的文章,以供本身之後做爲參考資料以及幫助像我這樣的linux系統小白學習分享,大神看了請輕噴,謝謝!php
操做系統環境:CentOS6.6 X86_X64 FINALhtml
源碼安裝LAMP環境mysql
首先上傳源碼包到/usr/local/src/lamp目錄下,版本是httpd-2.2.16.tar.gz mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz php-5.3.28.tar.gzlinux
而後使用tar -xzvf 解壓源碼包c++
tar -xzvf httpd-2.2.16.tar.gzweb
tar -xzvf mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gzsql
tar -xzvf php-5.3.28.tar.gzshell
開始安裝mysql數據庫
下載:apache
wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
把解壓完的數據移動到/usr/local/mysql
[root@localhost src]# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql
創建mysql用戶
[root@localhost src]# useradd -s /sbin/nologin mysql
初始化數據庫
[root@localhost src]# cd /usr/local/mysql
[root@localhost mysql]# mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
--user 定義數據庫的所屬主, --datadir 定義數據庫安裝到哪裏,建議放到大空間的分區上,這個目錄須要自行建立。這一步驟很關鍵,若是看到兩個 「OK」 說明執行正確,不然請仔細查看錯誤信息
錯誤信息爲./bin/mysqld: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
使用yum -y install epel-release
使用yum -y install *libstdc++*安裝依賴包
拷貝配置文件
[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf
拷貝啓動腳本文件並修改其屬性
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
修改啓動腳本
[root@localhost mysql]# vim /etc/init.d/mysqld
須要修改的地方有 「datadir=/data/mysql」 (前面初始化數據庫時定義的目錄)
把啓動腳本加入系統服務項,並設定開機啓動,啓動mysql
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# service mysqld start
若是啓動不了,請到 /data/mysql/ 下查看錯誤日誌,這個日誌一般是主機名.err. 檢查mysql是否啓動的命令爲:
[root@localhost mysql]# ps aux |grep mysqld
將mysql自帶命令放入$PATH
[root@localhost ~]# PATH=$PATH:/usr/local/mysql/bin/#當前有效,重啓shell就失效
[root@localhost ~]# echo "export PATH=$PATH:/usr/local/mysql/bin/" >>/etc/profile
安裝Apache
apache官網下載地址: http://www.apache.org/dyn/closer.cgi
[root@localhost mysql]# cd /usr/local/src/
[root@localhost src]# wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz
解壓:
[root@localhost src]# tar zxvf httpd-2.2.16.tar.gz
配置編譯參數:
[root@localhost src]# cd httpd-2.2.16
[root@localhost httpd-2.2.16]# ./configure \
--prefix=/usr/local/apache2 \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre
--prefix 指定安裝到哪裏, --enable-so 表示啓用DSO [1] --enable-deflate=shared 表示共享的方式編譯deflate,後面的參數同理。若是這一步你出現了這樣的錯誤:
error: mod_deflate has been requested but can not be built due to prerequisite failures
解決辦法是:
yum install -y zlib-devel
爲了不在make的時候出現錯誤,因此最好是提早先安裝好一些庫文件:
yum install -y pcre pcre-devel apr apr-devel
編譯:
[root@localhost httpd-2.2.16]# make
安裝:
[root@localhost httpd-2.2.16]# make install
以上兩個步驟均可以使用 echo $? 來檢查是否正確執行,不然須要根據錯誤提示去解決問題。
將apache自帶命令放入$PATH
[root@localhost ~]# PATH=$PATH:/usr/local/apache2/bin/#當前有效,重啓shell就失效
[root@localhost ~]# echo "export PATH=$PATH:/usr/local/apache2/bin" >>/etc/profile
[root@localhost ~]#source /etc/profile使配置PATH當即生效
安裝PHP
php官方下載地址: http://www.php.net/downloads.php
[rot@localhost httpd-2.2.16]# cd /usr/local/src
解壓:
[root@localhost src]# tar zxf php-5.3.27.tar.gz
配置編譯參數:
[root@localhost src]# cd php-5.3.27
[root@localhost php-5.3.27]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-gd --with-gettext --with-libxml-dir=/usr/local --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --enable-bcmath --enable-mbstring --enable-sockets --disable-ipv6
在這一步,遇到以下錯誤:
configure: error: xml2-config not found. Please check your libxml2 installation.
解決辦法是:
yum install -y libxml2-devel
錯誤:
configure: error: Cannot find OpenSSL's <evp.h>
解決辦法是:
yum install -y openssl openssl-devel
錯誤:
checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
解決辦法:
yum install -y bzip2 bzip2-devel
錯誤:
configure: error: png.h not found.
解決辦法:
yum install -y libpng libpng-devel
錯誤:
configure: error: jpeglib.h not found.
解決辦法:
yum -y install *jpeglib*
錯誤:
configure: error: freetype.h not found.
解決辦法:
yum install -y freetype freetype-devel
錯誤:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解決辦法:
yum install -y libmcrypt-devel
由於centos6.x 默認的yum源沒有libmcrypt-devel 這個包,只能藉助第三方yum源,以前已經安裝過了epel源,因此能夠直接yum安裝。
編譯:
[root@localhost php-5.3.27]# make
安裝:
[root@localhost php-5.3.27]# make install
若是報錯:
/usr/bin/ld: cannot find -lltdl
解決辦法:
yum -y install libtool-ltdl-devel
安裝完成後使用以下命令檢測
echo$?
/usr/local/apache2/bin/apachectl -M檢查是否加載了PHP模塊
拷貝配置文件:
[root@localhost php-5.3.27]# cp php.ini-production /usr/local/php/etc/php.ini
apache結合php
Apache主配置文件爲:/usr/local/apache2/conf/httpd.conf
vim /usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-gzip .gz .tgz
在該行下面添加:
AddType application/x-httpd-php .php
找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
將該行改成:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
找到:
#ServerName www.example.com:80
修改成:
ServerName localhost:80
測試LAMP是否成功
啓動apache以前先檢驗配置文件是否正確:
apachectl -t
若是有錯誤,請繼續修改httpd.conf, 若是是正確的則顯示爲 「Syntax OK」, 啓動apache的命令爲:
apachectl start
查看是否啓動:
[root@localhost ~]# netstat -lnp |grep httpd
tcp 0 0 :::80 :::* LISTEN 7667/httpd
若是有顯示這行,則啓動了。 也可使用curl命令簡單測試:
[root@localhost ~]# curl localhost
<html><body><h1>It works!</h1></body></html>
只有顯示這樣才正確。
測試是否正確解析php:
vim /usr/local/apache2/htdocs/1.php
寫入:
<?php echo phpinfo();?>
保存後,繼續測試:
用瀏覽器打開http://IP/1.php頁面
看是否能看到以下信息:
PHP配置詳細信息
初次使用瀏覽器訪問咱們的web服務的時候,你可能沒法訪問,這是由於防火牆的緣故。請運行下面的命令:
[root@localhost ~]# iptables -F
這樣就能夠清除系統默認的防火牆規則,放行80端口。
LAMP環境搭建好了。