LAMP原始碼編譯安裝

科技小能手發表於2017-11-12

  LAMP是一個黃金組合。它是指linux,apache,mysql以及php的組合。

  首先給大家介紹下這4個東東。linux是一個開源的類unix系統,它是一個支援多使用者,多工,多程式,多cpu的作業系統。關於它的發行版主要有這三類:redhat系,debian系,slackware系。我平常用的比較多的是redhat系裡的centos。而apache是一款排名領先的web伺服器軟體。php則是一門優秀的指令碼語言,主要用於web開發。

一、安裝apache

1
2
3
4
5
6
7
8
9
10
yum install -y pcre pcre-devel apr apr-devel  zlib-devel  #安裝相關依賴包cd /usr/local/src/
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.gz
tar xvf httpd-2.2.31.tar.gz 
cd httpd-2.2.31
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-included-apr --enable-so --with-zlib --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre
echo $?
make
echo $?
make install
echo $?

注意:只有echo $?返回的是0,才說明編譯安裝成功。

二、安裝mysql


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
http://mirrors.sohu.com/mysql/MySQL-5.1/   Mysql下載網站
cd /usr/local/src/
wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-i686-glibc23.tar.gz
tar zxvf mysql-5.1.72-linux-i686-glibc23.tar.gz 
mv mysql-5.1.72-linux-i686-glibc23 /usr/local/mysql
cd ../ 
ll 
useradd -s /sbin/nologin -M mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
cd mysql/
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql    #初始化資料
echo $?
  
cp /etc/my.cnf /etc/my.cnf.bak                         #備份配置檔案
cp support-files/my-large.cnf /etc/my.cnf            #複製配置模板到
vim /etc/my.cnf           編譯MySql配置檔案
#log-bin=mysql-bin            #記錄查詢、刪除、更新資料時記錄日誌,配置MySql主從時需要,這裡暫時不需要,先註釋
#binlog_format=mixed
#server-id      = 1
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld    #複製啟動指令碼到init.d目錄下
 vim /etc/init.d/mysqld               #編輯啟動配置檔案,指定資料目錄
basedir=/usr/local/mysql
datadir=/data/mysql
  
vim /etc/profile.d/path.sh         #將mysql新增進PATH路徑#!/bin/bashexport PATH=$PATH:/usr/local/mysql/bin/source !$    #更新PATH路徑echo $PATH    #檢視是否生效/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin/
chkconfig --add mysqld             #開機啟動
chkconfig mysqld on
  
/etc/init.d/mysqld start              #啟動服務
Starting MySQL... SUCCESS! 
netstat -tnplu | grep mysql
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1282/mysqld  
如果啟動不了,請到 /data/mysql/ 下檢視錯誤日誌,這個日誌通常是主機名.err.
  
錯誤1:
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解決方法:
yum install  libaio-devel –y
  
錯誤2:
./bin/my_print_defaults/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
解決方法:
下載64位資料庫
  
錯誤3:
Starting MySQL.Manager of pid-file quit without updating fi[FAILED]
解決方法:
vim /etc/init.d/mysqld               #編輯啟動配置檔案,指定資料目錄
basedir=/usr/local/mysql
datadir=/data/mysql

三、PHP編譯安裝


1
2
3
4
5
6
7
8
9
10
11
12
13
cd /usr/local/src/ 
wget http://mirrors.sohu.com/php/php-5.5.31.tar.gz
tar xf php-5.5.31.tar.gz 
  
yum install  zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gb-devel gb-devel curl-devel  libxslt-devel openssl-devel  bzip2 bzip2-devel  libmcrypt-devel.x86_64 -y    #安裝依賴包
cd php-5.5.31
  
 ./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       #編譯引數
echo $?
make
echo $?
make install 
echo $?

3.2PHP的配置


1
2
cp /usr/local/src/php-5.5.31/php.ini-production /usr/local/php/etc/php   #複製配置檔案
apachectl graceful  重新載入PHP配置檔案

四、測試PHP解析



1
2
3
4
5
6
7
8
9
vim /usr/local/apache2/conf/httpd.conf
#找到
#AddType application/x-gzip .tgz
#新增一行:
AddType application/x-httpd-php .php
#新增index.php
DirectoryIndex index.html index.php
/usr/local/apache2/bin/apachectl -t    #檢測語法
Syntax OK


1
2
3
4
5
cd /usr/local/apache2//htdocs     #編寫一個php檔案
 vim info.php
<?php
phpinfo();
?>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/usr/local/php/bin/php -i | less         #測試,同時也記錄PHP編譯引數
phpinfo()
PHP Version => 5.5.31
System => Linux lab-1-c6.7-x32 2.6.32-573.el6.i686 #1 SMP Thu Jul 23 12:37:35 UTC 2015 i686
Build Date => Jan 19 2016 10:09:40
Configure Command =>  
`./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`



測試方法:在瀏覽器上開啟http://192.168.1.26/info.php,如果出現phpinfo的函式頁面,則說明LAMP安裝成功。

本文轉自 goldfishe 51CTO部落格,原文連結:http://blog.51cto.com/jack88/1887542


相關文章