標籤:
前言:在這裡將介紹如何在CentOS下搭建LAMP環境(全部使用源碼編譯安裝),用於web伺服器開發。
•LAMP: Linux + Apache + PHP + Mysql。
•系統: CentOS 6.5,32位。
CentOS安裝
我選取了32位的CentOS 6.5這個Linux系統,安裝過程也很簡單,不再過多敘述,只稍微介紹一下我的分區情況:
分區名 大小
/boot 200MB
/swap 2GB(不大於物理分區即可)
/ 20GB
/home 剩餘空間
Apache編譯安裝
我選擇了httpd 2.2這個版本,可以參考官方說明文檔。
安裝依賴:
安裝依賴需要用到的gcc、g++編譯器:
########gcc、g++
sudo yum install gcc
sudo yum install gcc-c++ 下面兩個是apache的最佳化工具:
########apr
wget http://labfile.oss.aliyuncs.com/apr-1.5.1.tar.gz
tar -zxvf apr-1.5.1.tar.gz
cd apr-1.5.1/
./configure --prefix=/opt/apr
Sudo make && make install
########apr-util
cd Downloads/
wget http://labfile.oss.aliyuncs.com/apr-util-1.5.4.tar.gz
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/opt/apr-util --with-apr=/opt/apr
sudo make && make install
Perl庫,相容Regex庫:
cd Downloads/
wget http://labfile.oss.aliyuncs.com/pcre-8.36.tar.gz
tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure --prefix=/opt/pcre
sudo make && make install
安裝apache:
cd Downloads/
wget http://labfile.oss.aliyuncs.com/httpd-2.2.29.tar.gz
tar -zxvf httpd-2.2.29.tar.gz
cd httpd-2.2.29
./configure --prefix=/opt/apache --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-pcre=/opt/pcre
sudo make && make install
sudo sed -i ‘s/^#ServerName.*/ServerName localhost/‘ /opt/apache/conf/httpd.conf
測試:
啟動:
Sudo /opt/apache/bin/apachectl start擷取伺服器回應(安裝apache最後一步已經將伺服器設為localhost):
curl -I 127.0.0.1若安裝成功則如下:
關閉:
sudo /opt/apache/bin/apachectl stop
MySQL編譯安裝
安裝依賴:
注意: MySQL5.5之後的版本使用cmake進行編譯。
########若先前編譯過,則需要刪除剛才編譯產生的CMakeCache.txt檔案
rm -f CMakeCache.txt
sudo yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* cmake cmake-gui libaio-devel bison-devel make
編譯安裝(時間較長):
Cd Downloads/
Wget http://labfile.oss.aliyuncs.com/mysql-5.6.24.tar.gz
Tar -zxvf mysql-5.6.24.tar.gz
cd mysql-5.6.24
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1
sudo make
sudo make install
建立mysql使用者:
id mysql > /dev/null 2>&1 || sudo useradd -r -s /sbin/nologin -M -d /opt/mysql/data mysql
初始化資料目錄:
sudo chown -R mysql:mysql /opt/mysql/data
sudo /opt/mysql/scripts/mysql_install_db --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql --defaults-file=/opt/mysql/support-files/my-default.cnf
修改設定檔:
sudo sh -c ‘cat >> /opt/mysql/my.cnf <<EOF
basedir = /opt/mysql
datadir = /opt/mysql/data
log-error = /opt/mysql/data/error.log
pid-file = /opt/mysql/data/mysql.pid
port = 3306
EOF‘
清除殘留檔案:
sudo sh -c ‘for file in /etc/mysql/my.cnf /etc/my.cnf ; do [ -f $file ] && rm -f $file ; done‘
啟動:
sudo /opt/mysql/support-files/mysql.server start
成功則顯示:
測試:
/opt/mysql/bin/mysqladmin ping
成功則顯示:
查看資料庫:
/opt/mysql/bin/mysql -u root -e ‘show databases;‘
關閉:
sudo /opt/mysql/support-files/mysql.server stop
成功則顯示:
PHP編譯安裝
安裝依賴:
cd Downloads/
sudo yum install zlib1g-dev libbz2-dev libcurl4-gnutls-dev libjpeg-dev libpng12-dev libfreetype6-dev libmcrypt-dev libxml2-dev
sudo yum install bzip2-devel -y
sudo yum -y install curl-devel
sudo yum install openssl openssl-devel -y
sudo yum install libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel -y
sudo yum install libjpeg libjpeg-devel libpng libpng-devel
*以上不一定要全部安裝
########安裝Libmcrypt
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
sudo make
sudo make install
說明:libmcript預設安裝在 /usr/local
########安裝mhash
cd ..
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
sudo make
sudo make install
#########安裝mcrypt
cd ..
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
LD_LIBRARY_PATH=/usr/local/lib ./configure
sudo make
sudo make install
編譯安裝:
cd Downloads/
wget http://labfile.oss.aliyuncs.com/php-5.5.21.tar.gz
tar -zxvf php-5.5.21.tar.gz
cd php-5.5.21
./configure --prefix=/opt/php --with-bz2 --with-curl --with-jpeg-dir --with-gd --enable-shared --enable-mbstring --with-mcrypt --with-mysql=/opt/mysql --with-pdo-mysql=/opt/mysql --with-mysqli=/opt/mysql/bin/mysql_config --enable-fpm --enable-phar --enable-bcmath --with-zlib --enable-zip --enable-ftp --with-gettext --enable-sockets --with-freetype-dir --with-config-file-path=/opt/php/etc/php.ini --with-config-file-scan-dir=/opt/php/etc/conf.d --with-apxs2=/opt/apache/bin/apxs
sudo make
sudo make install
sudo cp php.ini-production /opt/php/etc/php.ini
*錯誤裡面含有mysql,那是因為mysql-devel 沒有安裝。解決方案:yum install mysql-devel
檢查php是否支援mysql:
/opt/php/bin/php -m | grep mysql
若支援則顯示:
修改apache設定檔,添加php的支援配置:
sudo sh -c ‘cat >> /opt/apache/conf/httpd.conf <<EOF
<IfModule mime_module>
AddType application/x-httpd-php .php
</IfModule>
EOF‘
若關閉則開啟apache,否則重新啟動apache:
sudo /opt/apache/bin/apachectl -k restart測試:
sudo sh -c ‘echo "<?php echo phpinfo(); ?>" > /opt/apache/htdocs/test.php‘
在瀏覽器輸入:
http://localhost/test.php
配置成功則顯示php資訊:
*按以上步棸,注意php.ini檔案所在的位置應該是/opt/php/etc/php.ini/php.ini。
CentOS下搭建LAMP環境詳解