一,LAMP的安裝流程:mysql、apache、php或者apache、mysql、php。php放到最後的緣由是,php在編譯安裝的時候是依賴於前2者的。php
二,Mysql的安裝:html
1.下載mysql,能夠經過http://mirrors.sohu.com/下載mysql軟件。python
wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz mysql
2.解壓並重命名linux
tar -zxvf mysql-5.1.73-linux-i686-glibc23.tar.gzsql
mv mysql-5.1.73-linux-i686-glibc23 /usr/local/mysql/
3.創建MySQL用戶,建立datadir目錄。
useradd -s /sbin/nologin mysql
mkdir -p /data/mysql/
chown mysql /data/mysql/
4,初始化數據庫。
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ 查看是否有2個OK或者echo $?以此判斷初始化數據庫是否成功。
初始化成功後會在/data/mysql生成mysql和test的2個目錄。
5,拷貝配置文件、啓動腳本,並將mysql添加到服務列表設置開機啓動。
cp support-files/mysql-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld 修改/etc/init.d/mysqld的配置文件中的basedir datadir。
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
/etc/init.d/mysqld start
三,安裝apache數據庫
1,下載httpd並解壓。apache
wget http://mirrors.sohu.com/apache/httpd-2.2.31.tar.gz vim
tar -zxvf httpd-2.2.31.tar.gz centos
2,編譯前的參數配置
cd /usr/local/ httpd-2.2.31
./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,這個是用來支持安裝擴展模塊的,好比你rewrite這個模塊沒有安裝可是你是在編譯啓動了DSO,這個時候你就能夠擴展安裝rewrite模塊了,使用的工具是apache自動的apxs擴展工具。其實這個就是一個perl腳本,具體如何擴展安裝其餘模塊,後續會在此處添加連接。
--enable-deflate=shared 表示共享的方式編譯deflate,後面的參數同理。
上述操做是否成功,能夠經過echo $?的返回值來確認。
3,編譯
make make後會在當前目錄生成一個makefile的一個文件,若是沒有編譯前的配置,直接make就會出現找不到makefile。
4,安裝
make install 將軟件安裝到你指定的目錄。
5,啓動httpd
/usr/local/apache2/bin/apachectl start,會有一行提示,
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
這個是由於沒有開啓ServerName,修改httpd的配置文件,vim /usr/local/apache2/conf/httpd.conf將ServerName註釋取消掉便可。
ps aux|grep httpd 用瀏覽器訪問,是否顯示It works.
四,安裝php
4.1 ,下載php並解壓。
tar -zxvf php-5.3.28.tar.gz
cd php-5.3.28
4.2,編譯前的參數配置
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--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 \
--with-apxs2=/usr/local/apache2/bin/apxs 讓系統自動加載phplib5.so的擴展模塊 ,而且在httpd.conf添加php模塊,是個擴展工具。
編譯前的參數配置會出現各類報錯,可是都是缺乏庫文件而已。能夠根據報錯信息,安裝對應的庫文件便可。
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: freetype.h not found.
解決辦法:
yum install -y freetype freetype-devel
錯誤:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解決辦法:
yum install -y epel-release
yum install -y libmcrypt-devel
由於centos6.x 默認的yum源沒有libmcrypt-devel 這個包,只能藉助第三方yum源。另外,這裏安裝的包都是*-devel的包。
4.3,編譯
make
4.4,安裝
make install
4.5 拷貝配置文件
cp /usr/local/src/php-5.3.28/ php.ini-production /usr/local/php/etc/php.ini
這裏有2個文件,1個是production(生產環境),1個是development(測試環境)。
五,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 添加能夠對php腳本解析,必須添加上對應的類型
找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
將該行改成:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule> 增長對PHP的索引 自動索引頁
PHP測試代碼,cd /usr/local/apache2/hdocs
vim index.php
<?php
echo "What fucking is PHP!";
?>
或者
<?php
phpinfo();
?> 能夠用來排錯
/usr/local/php/bin/php -m 查看模塊
/usr/local/php/bin/php -i 查看配置信息
/usr/local/php/bin/php -v 查看版本
/usr/local/php/bin/php -i |head 查看編譯參數 也能夠查看php源碼中的config.nice
/usr/local/php/bin/php -i |grep configure
打開瀏覽器進行訪問,查看可否正常解析PHP。
另外,測試是否php是否能夠mysql php腳本以下:
<?php
$link = mysql_connect('127.0.0.1','root','');
if ($link)
echo "successful...";
else
echo "Failure...";
mysql_close();
?>