搭建LAMP環境php
Mysql免編譯安裝包下載連接(5.1版本):html
32位:http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gzmysql
64位:http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-x86_64-glibc23.tar.gzlinux
若是使用源代碼包安裝的話,編譯時間花費較長c++
Apache源代碼下載連接(2.2版本):sql
http://mirrors.sohu.com/apache/httpd-2.2.31.tar.bz2apache
php源代碼包下載鏈接(5.4版本):vim
http://mirrors.sohu.com/php/php-5.4.44.tar.bz2centos
安裝順序:mysql、apache、php安全
將php放到最後安裝是由於安裝php時須要指定mysql的安裝目錄和apache的apxs工具的路徑。
Mysql安裝
首先使用命令uname –i查看系統位數,而後選擇相應mysql免編譯安裝包進行下載。
[root@master ~]# cd /usr/local/src
[root@master src]# wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz
[root@master src]# tar -xzvfmysql-5.1.73-linux-i686-glibc23.tar.gz
//解壓
[root@master src]# mvmysql-5.1.73-linux-i686-glibc23 /usr/local/mysql
//移動mysql安裝包到/usr/local/目錄下
[root@master src]# cd /usr/local/mysql
[root@master mysql]# useradd -M -s/sbin/nologin mysql
//建立運行mysql服務的帳戶
[root@master mysql]# mkdir -p /data/mysq
//建立mysql數據文件存放目錄
[root@master mysql]# chown -R mysql:mysql/data/mysql
[root@master mysql]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
//初始化mysql服務,--user指定運行mysql服務的帳戶,--datadir指定數據文件存放目錄。這一步驟很關鍵,若是你看到兩個「OK」說明執行正確,不然,請仔細查看錯誤信息。
下面是兩個常見的錯誤,若是你正好遇到了,那就照着下面的解決辦法解決一下。
( 1)遇到錯誤: ./bin/mysqld: error while loading shared libraries: libstdc++.so.5:cannot
open shared object file:
解決辦法:
# yum install -y compat-libstdc++-33
( 2)遇到錯誤: ./scripts/mysql_install_db: ./bin/my_print_defaults:/lib/ld-linux.so.2: bad
ELF interpreter: No such file or directory
這是由於,你的系統版本和 mysql 版本不一致。好比,你的系統是 32 位,結果你下載
了一個 64 位的包。因此,解決辦法是,下載合適的包。
[root@master mysql]# cp support-files/my-large.cnf/etc/my.cnf
cp:是否覆蓋"/etc/my.cnf"? y
//使用安裝包中提供的配置模版文件到替代系統自帶/etc/my.cnf文件(my.cnf只能存放在/etc/或者是dasedir目錄下)
[root@master mysql]# cpsupport-files/mysql.server /etc/init.d/mysqld
[root@master mysql]# chmod 755/etc/init.d/mysqld
[root@master mysql]# chkconfig --add mysqld
[root@master mysql]# chkconfig mysqld on
//使用安裝包中提供的啓動腳本文件,將mysql加入到系統服務列表裏。
[root@master mysql]# service mysqld start
Starting MySQL.Manager of pid-file quitwithout updating fi[失敗]
//啓動失敗,提示pid文件沒有更新。解決方法:編輯啓動配置文件/etc/init.d/mysqld,設置basedir=/usr/local/mysql、datadir=/data/mysql
[root@master mysql]# service mysqld start
Starting MySQL. [肯定]
[root@master mysql]# ps aux|grep mysql
[root@master mysql]# netstat -lnp|grepmysql
//查看服務是否啓動成功。
[root@master mysql]#/usr/local/mysql/bin/mysqladmin -u root password '123456'
//默認mysql的root用戶密碼爲空,爲了安全性咱們應該設置mysql的root用戶密碼。(修改密碼可使用命令mysqladmin –u root –p password 'new-password',輸入舊密碼)
放了可以方便使用mysql的命令,咱們應該將路徑/usr/local/mysql/bin加入PATH變量中
[root@master mysql]# vi/etc/profile.d/path.sh
PATH=$PATH:/usr/local/mysql/bin/
[root@master mysql]# source/etc/profile.d/path.sh
Apache安裝
常見的源代碼包都是用C語言開發的,因此再編譯安裝源代碼包前,應該先安裝linux下的C語言編譯器gcc。
[root@slave ~]# yum install –y gcc
[root@master ~]# cd /usr/local/src
[root@master src]# wget http://mirrors.sohu.com/apache/httpd-2.2.31.tar.bz2
[root@master src]# tar -xjvfhttpd-2.2.24.tar.bz2
[root@master src]# cd httpd-2.2.24
[root@slave httpd-2.2.24]# ./configure \
--prefix=/usr/local/apache2 \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre
//配置編譯參數,生成Makefile文件
[root@slave httpd-2.2.24]# echo $?
0
//校驗配置編譯參數的過程是否出錯
若是./configure 這一步你出現了這樣的錯誤:
error: mod_deflate has been requested butcan not be built due to prerequisite failures
解決辦法是:
# yum install -y zlib-devel
爲了不在 make 的時候出現錯誤,因此最好是提早先安裝好一些庫文件:
# yum install -y pcre pcre-devel aprapr-devel
[root@slave httpd-2.2.24]# make &&make install
//編譯、安裝
[root@slave httpd-2.2.24]# cd/usr/local/apache2/
[root@slave apache2]# bin/apachectl –M
//查看apache的mpm工做模式
常見的mpm有prefork、worker和event。2.2版本默認使用的mpm是prefork,2.4版本默認使用的是event。編譯時可使用參數—with-mpm=prefork、worker、event選擇mpm工做模式(若是選擇event還要加上一條參數 --enable-nonportable-atomics=yes )。
Prefork、Worker和Event三種MPM分析:
http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html
[root@slave apache2]#PATH=$PATH:/usr/local/apache2/bin
[root@slave apache2]# vi/etc/profile.d/path.sh
PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache2/bin
將apache添加到啓動服務列表裏:
[root@slave ~]# cp/usr/local/apache2/bin/apachectl /etc/init.d/httpd
[root@slave ~]# vim /etc/init.d/httpd
添加語句# chkconfig: - 66 66
[root@slave ~]# chkconfig --add httpd
[root@slave ~]# chkconfig httpd on
[root@slave ~]# service httpd start
[root@slave ~]# ps aux|grep httpd
[root@slave ~]# netstat -lnp|grep httpd
Php安裝
[root@slave apache2]# cd
[root@slave ~]# cd /usr/local/src/
[root@slave src]# tar -xzvfphp-5.4.44.tar.gz
[root@slave src]# cd php-5.4.44
[root@slave php-5.4.44]# yum –y installepel-release
[root@slave php-5.4.44]# yum -y installlibxml2-devel openssl-devel bzip2 bzip2-devel libpng-devel libjpeg-turbo-devel freetypefreetype-devel libmcrypt-devel
//爲了不出錯,編譯安裝前先安裝一些依賴的包
[root@slave php-5.4.44]# ./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 \
> --enable-exif \
> --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... notfound
configure: error: Please reinstall theBZip2 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: jpeglib.h not found.
解決方法:
# yum -y install libjpeg-turbo-devel
錯誤:
configure: error: mcrypt.h not found.Please reinstall libmcrypt.
解決辦法:
# yum install -y epel-release
# yum install -y libmcrypt-devel
由於 centos6 默認的 yum 源沒有 libmcrypt-devel 這個包,只能藉助 epel 的 yum 源。
[root@slave php-5.4.44]# make &&make install
[root@slave php-5.4.44]# echo $?
[root@slave php-5.4.44]# 0
[root@slave php-5.4.44]# cpphp.ini-production /usr/local/php/etc/php.ini
[root@slave php-5.4.44]# vim /usr/local/php/etc/php.ini
找到;date.timezone = 修改成date.timezone = Asia/Shanghai
[root@slave ~]# vim/usr/local/apache2/conf/httpd.conf
找到:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
改成:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
找到:
AddType application/x-gzip .gz .tgz
在該行下面添加:
AddType application/x-httpd-php .php
關聯php,讓apache能實現解析php腳本
找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
將該行改成:
<IfModule dir_module>
DirectoryIndex index.html index.htmindex.php
</IfModule>
添加默認索引頁
再找到:
#ServerName www.example.com:80
修改成:
ServerName localhost:80
若是不去掉#,則啓動 apache 時,會有警告信息「httpd: Could not reliably determine the
server's fully qualified domain name, usinglocalhost.localdomain for ServerName」,看起來像是
錯誤,其實沒有影響。
[root@slave ~]# apachectl -t
Syntax OK
//檢查配置文件是否有錯
測試是否成功解析php文件
[root@slave ~]# vim/usr/local/apache2/htdocs/index.php
<?php
phpinfo()
?>
[root@slave ~]# service httpd restart
[root@slave ~]# curl localhost/index.php
This is test![root@slave ~]#