詳解LAMP原始碼編譯安裝
目錄
-
詳解LAMP原始碼編譯安裝
-
LAMP簡介
-
一、準備工作
-
二、編譯安裝 Apache
-
三、編譯安裝 MySQL
-
四、編譯安裝 PHP
-
-
測試LAMP搭建開源資料web管理程式phpMyadmin
詳解LAMP原始碼編譯安裝
LAMP簡介
LAMP
是當下非常流行的一套Web架構,我們可以在GNU/Linux
下通過其他人打包的程式包來進行安裝; 但是在生產環境中,很多時候都需要我們自己定製安裝AMP,編譯安裝LAMP有以下幾個優點
根據生產環境靈活定製程式
優化編譯引數,提高效能
解決不必要的軟體依賴
一、準備工作
解除安裝yum或rpm安裝的amp軟體
1、在編譯安裝lamp之前,首先先解除安裝已存在的rpm包。
[root@localhost ~]# yum -y remove httpd
[root@localhost ~]# yum -y remove mysql-server mysql
[root@localhost ~]# yum -y remove php
[root@localhost ~]# yum -y remove php-mysql
2、禁用SeLinux
selinux可能會致使編譯安裝失敗,我們先禁用它。
[root@localhost ~]# sed -i `s/SELINUX=enforcing/SELINUX=disabled/g` /etc/selinux/config #永久禁用,需要重啟生效。
或
[root@localhost ~]# setenforce 0 #臨時禁用,不需要重啟(推薦)。
3、yum安裝必要工具
[root@localhost ~]# yum -y groupinstall "Development tools" "Server Platform Development"
4、下載所需原始碼
Apache=http://httpd.apache.org/ httpd主程式包
MySQL=http://dev.mysql.com/downloads/mysql/ mysql主程式包
PHP=http://php.net/downloads.php php主程式包
apr=http://apr.apache.org/ apr是httpd的依賴包
apr-util=http://apr.apache.org/ apr-util是httpd的第二個依賴包
pcre=http://pcre.org/ pcre是httpd的三個依賴包
下載的原始碼包統一放在 /usr/local/src/ 目錄下。
[root@localhost ~]# ll /usr/local/src/
總用量 54444
-rwxr-xr-x 1 root root 1031613 2月 28 2016 apr-1.5.2.tar.gz
-rwxr-xr-x 1 root root 694427 2月 28 2016 apr-util-1.5.4.tar.bz2
-rwxr-xr-x 1 root root 5101005 2月 28 2016 httpd-2.4.16.tar.bz2
-rwxr-xr-x 1 root root 33278710 2月 28 2016 mysql-5.6.26.tar.gz
-rwxr-xr-x 1 root root 1557603 2月 28 2016 pcre-8.37.tar.bz2
-rwxr-xr-x 1 root root 14077633 2月 28 2016 php-5.6.13.tar.bz2
二、編譯安裝 Apache
Apache官方說:
與Apache 2.2.x相比,Apache 2.4.x提供了很多效能方面的提升,包括支援更大流量、更好地支援雲端計算、利用更少的記憶體處理更多的併發等。除此之外,還包括效能提升、記憶體利用、非同步I/O的支援、動態反向代理設定、與時間驅動的Web伺服器相當或更好的效能、更強大的處理資源分配能力,更便捷的快取支援以及可定製的高速伺服器和代理等。其它的功能還包括更簡單的錯誤分析、更靈活的設定項、更強大的驗證機制和更完整的文件。
Apache伺服器專案管理委員會和Apache基金會主席Jim Jagielski表示,他們希望終端使用者能真正地看到效能進步,Apache 2.4.x比許多以速度見長的Web伺服器更快,例如 Nginx。
apache-2.2與新出的apache-2.4安裝不同的地方在於,2.4版的已經不自帶apr庫,所以在安裝apache-2.4之前,需要下載apr。
所需原始碼包
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.bz2
pcre-8.37.tar.bz2
httpd-2.4.16.tar.bz2
安裝Apache依賴庫
1、安裝 apr
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# tar xf apr-1.5.2.tar.gz
[root@localhost src]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make && make install
2、安裝 apr-util
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# tar xf apr-util-1.5.4.tar.bz2
[root@localhost src]# cd apr-util-1.5.4
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.5.4]# make && make install
3、安裝 pcre
[root@localhost apr-util-1.5.4]# cd /usr/local/src/
[root@localhost src]# tar xf pcre-8.37.tar.bz2
[root@localhost src]# cd pcre-8.37
[root@localhost pcre-8.37]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.37]# make && make install
4、安裝 Apache2.4.16
[root@localhost src]# tar xf httpd-2.4.16.tar.bz2
[root@localhost src]# cd httpd-2.4.16
[root@localhost httpd-2.4.16]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@localhost httpd-2.4.16]# make && make install
編譯引數解釋: --prefix=/usr/local/apache
:指定安裝目錄 --sysconfdir=/etc/httpd
:配置檔案安裝路徑 --with-apr=/usr/local/apr
: apr庫 --with-apr-util=/usr/local/apr-util
:apr-util庫 --with-pcre=/usr/local/pcre
: pcre庫 --enable-so
: 允許執行時載入DSO模組(注意:so模組需靜態編譯) --enable-ssl=shared
: 將ssl模組編譯為DSO --enable-headers=shared
: 將headers模組編譯為DSO --enable-rewrite=shared
: 將rewrite模組編譯為DSO
5、初始化配置Apache
[root@localhost httpd-2.4.16]# /bin/cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2
[root@localhost httpd-2.4.16]# groupadd apache #新增apache使用者組及使用者
[root@localhost httpd-2.4.16]# useradd -g apache -s /usr/sbin/nologin apache
[root@localhost httpd-2.4.16]# chown -R apache:apache /usr/local/apache2
[root@localhost httpd-2.4.16]# chmod +x /etc/init.d/apache2
[root@localhost httpd-2.4.16]# chkconfig --add apache2 #增加執行許可權
[root@localhost httpd-2.4.16]# chkconfig --level 2345 apache2 on #設定開機啟動
[root@localhost httpd-2.4.16]# chkconfig --list apache2 #檢視是否設定成功
httpd 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉
6、修改init命令檔案
主要是修改檔案中pidfile引數的值(程式檔案指向)
[root@localhost ~]# vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 2345 64 36
#這個是啟動級別的服務,2345是指那些級別啟動,64是開啟順序,應該在network服務的後面,36是關閉順序,應該在network的前面,這裡並不是註釋
#預設network的是:2345 10 90
# description: Apache2.4.16 start script #描述欄位,有了這兩個欄位,就可以用chkconfig命令控制
pidfile=${PIDFILE-/var/run/${prog}.pid}
修改為
pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid}
[root@localhost httpd-2.4.16]# hostname mageedu.com
[root@localhost httpd-2.4.16]# echo "172.16.13.162 mageedu.com" >> /etc/hosts //啟動不會報錯
[root@localhost httpd-2.4.16]# /etc/init.d/apache2 start
三、編譯安裝 MySQL
所需原始碼包:
cmake-2.8.8.tar.gz
mysql-5.6.26.tar.gz
安裝cmake
MySQL從5.5版本開始,通過./configure進行編譯配置方式已經被取消,取而代之的是cmake工具。
因此,我們首先要在系統中原始碼編譯安裝cmake工具。
[root@localhost ~]# cd /usr/local/src/cmake-2.8.8
[root@localhost cmake-2.8.8]# ./configure
[root@localhost cmake-2.8.8]# make && make install
編譯安裝配置MySQL
1、切換至 MySQL原始碼 解壓目錄
[root@localhost ~]# cd /usr/local/src/
2、建立所需data目錄
[root@localhost src]# mkdir -pv /data/mysql
3、建立mysql使用者和mysql組
[root@localhost src]# groupadd -r mysql
[root@localhost src]# useradd -g mysql -r -s /sbin/nologin mysql
4、cmake編譯安裝
[root@localhost src]# tar xf mysql-5.6.26.tar.gz
[root@localhost src]# cd mysql-5.6.26
[root@localhost mysql-5.6.26]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL-USER=mysql
[root@localhost src]# make && make install
5、初始化MySQL配置
[root@localhost src]# ln -s /usr/local/mysql/bin/* /bin/
[root@localhost src]# chmod +x /usr/local/mysql/scripts/mysql_install_db
[root@localhost src]# /usr/local/mysql/scripts/mysql_install_db
--defaults-file=/etc/my.cnf
--basedir=/usr/local/mysql/
--datadir=/data/mysql
--user=mysql
配置開機自動啟動
[root@localhost src]# /bin/cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost src]# chmod +x /etc/init.d/mysqld
[root@localhost src]# chkconfig --add mysqld
[root@localhost src]# chkconfig --level 2345 mysqld on
[root@localhost src]# chkconfig --list mysqld #檢視是否已應用上
修改配置檔案
[root@localhost src]# /bin/cp support-files/my-default.cnf /etc/my.cnf
[root@localhost src]# vim /etc/my.cnf
在[mysqld]節點中新增:
datadir = /data/mysql
log-error = /data/mysql/error.log
pid-file = /data/mysql/mysql.pid
user = mysql
tmpdir = /tmp
啟動MySQL
[root@localhost src]# service mysqld start # 或 /etc/init.d/mysqld start
[root@localhost src]# /usr/local/mysql/bin/mysqladmin -u root -p password "123456"
四、編譯安裝 PHP
安裝PHP依賴庫
yum install -y libxml2 libxml2-devel bzip2-devel
1、安裝 libmcrypt
[root@localhost PHP]# cd /usr/local/src/PHP
[root@localhost PHP]# tar -xzvf ./libmcrypt-2.5.8.tar.gz
[root@localhost PHP]# cd ./libmcrypt-2.5.8
[root@localhost PHP]# ./configure --prefix=/usr
[root@localhost PHP]# make && make install
2、安裝 mhash
[root@localhost PHP]# cd /usr/local/src/PHP
[root@localhost PHP]# tar -xzvf ./mhash-0.9.9.9.tar.gz
[root@localhost PHP]# cd ./mhash-0.9.9.9
[root@localhost PHP]# ./configure --prefix=/usr
[root@localhost PHP]# make && make install
3、安裝 mcrypt
[root@localhost PHP]# /sbin/ldconfig #搜尋出可共享的動態連結庫
[root@localhost PHP]# cd /usr/local/src/PHP
[root@localhost PHP]# tar -xzvf ./mcrypt-2.6.8.tar.gz
[root@localhost PHP]# cd ./mcrypt-2.6.8
[root@localhost PHP]# ./configure
[root@localhost PHP]# make && make install
4、安裝 libiconv
[root@localhost PHP]# cd /usr/local/src/PHP
[root@localhost PHP]# tar -xzvf ./libiconv-1.14.tar.gz
[root@localhost PHP]# cd ./libiconv-1.14
[root@localhost PHP]# ./configure --prefix=/usr/local/libiconv
[root@localhost PHP]# make && make install
安裝 PHP
[root@localhost PHP]# tar -xzvf ./php-5.6.13.tar.gz
[root@localhost PHP]# cd php-5.6.13/
[root@localhost php-5.6.13]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-mcrypt --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
[root@localhost php-5.6.13]# make && make install
編譯引數解釋: --prefix=/usr/local/php
: 設定安裝路徑 --with-apxs2=/usr/local/apache2/bin/apxs
: 編譯共享的 Apache 2.0 模組 --with-config-file-path=/etc
: 指定配置檔案php.ini地址 --with-config-file-scan-dir=/etc/php.d
: 指定額外的ini檔案目錄 --with-openssl
: 編譯OpenSSL支援 --with-zlib
: 編譯zlib支援 --enable-bcmath
: 啟用BC風格精度數學函式 --with-bz2
: BZip2支援 --with-gd
: GD支援 --with-mhash
: mhash支援 --enable-mbstring
: 啟用支援多位元組字串 --with-mcrypt
: 編譯mcrypt加密支援 --enable-zip
: 啟用zip 讀/寫支援 --with-iconv=/usr/local/libiconv
: iconv支援 --with-curl
: CRUL支援 --with-mysql=/usr/local/mysql
: 啟用mysql支援 --with-pdo-mysql=/usr/local/mysql
: 啟用pdo-mysql支援 --without-pear
: 不安裝PEAR
複製配置檔案php.ini
[root@localhost php-5.6.13]# cp /usr/local/src/php-5.6.13/php.ini-production /etc/php.ini
整合Apache
1、在/etc/httpd/conf/httpd.conf檔案中加入PHP檔案型別解析(加在檔案最後即可)
[root@localhost ~]# sed -i `378aAddType application/x-httpd-php .php` /etc/httpd/httpd.conf
[root@localhost ~]# sed -i `379aAddtype application/x-httpd-php-source .phps` /etc/httpd/httpd.conf
[root@localhost ~]# sed -i `s/DirectoryIndex.*index.*/DirectoryIndex index.php index.html/g` /etc/httpd/httpd.conf
2、重啟Apache
[root@localhost ~]# service httpd restart # 或 /etc/init.d/httpd restart
3、新增測試頁面
[root@localhost php-5.6.13]# cat /usr/local/apache2/htdocs/index.php
<?php
phpinfo()
?>
測試LAMP搭建開源資料web管理程式phpMyadmin
[root@localhost src]# tar xf phpMyAdmin-3.5.8.2-all-languages.tar.gz
[root@localhost src]# ln -s /usr/local/src/phpMyAdmin-3.5.8.2 /usr/local/apache2/htdocs/pma/
[root@localhost htdocs]# chmod 755 pma
[root@localhost htdocs]# cd pma
[root@localhost pma]# cp -f config.sample.inc.php config.inc.php
[root@localhost htdocs]# chown -R apache:apache pma/
相關文章
- LAMP原始碼編譯安裝LAMP原始碼編譯
- LAMP原始碼編譯安裝配置+wordpressLAMP原始碼編譯
- LAMP純原始碼編譯安裝日誌LAMP原始碼編譯
- nginx原始碼編譯安裝(詳解)Nginx原始碼編譯
- lamp編譯詳解LAMP編譯
- 原始碼安裝lamp原始碼LAMP
- 編譯安裝LAMP環境編譯LAMP
- 原始碼編譯安裝 httpd2.4+MariaDB5.5+php5.4(LAMP)原始碼編譯httpdPHPLAMP
- LAMP原始碼安裝+wordpress安裝LAMP原始碼
- [LAMP]Php-5.3.29編譯安裝LAMPPHP編譯
- [LAMP]Mysql-5.6.28編譯安裝LAMPMySql編譯
- LAMP兩種編譯安裝模式LAMP編譯模式
- LAMP 編譯安裝基本步驟LAMP編譯
- 原始碼編譯安裝Redis原始碼編譯Redis
- [LAMP]Apache-2.2.31編譯安裝LAMPApache編譯
- 原始碼編譯安裝的原理原始碼編譯
- zabbix agent原始碼編譯安裝原始碼編譯
- 原始碼編譯安裝MySQL 5.7.9原始碼編譯MySql
- 【轉】MySQL原始碼編譯安裝MySql原始碼編譯
- 在Centos5.2下編譯安裝LAMPCentOS編譯LAMP
- centos6.0LAMP原始碼安裝CentOSLAMP原始碼
- php-7.1.0原始碼編譯安裝PHP原始碼編譯
- lnmp環境安裝-原始碼編譯LNMP原始碼編譯
- MySQL 5.6原始碼編譯安裝流程MySql原始碼編譯
- linux中原始碼編譯安裝Linux原始碼編譯
- 原始碼編譯安裝MySQL5.6.12詳細過程原始碼編譯MySql
- Linux環境下, 原始碼編譯安裝詳解 (編譯CMake 3.15 和 gcc 5.3.0 為例)Linux原始碼編譯GC
- linux下LAMP原始碼安裝部署LinuxLAMP原始碼
- 阿里雲mysql原始碼編譯安裝阿里MySql原始碼編譯
- 04 原始碼編譯安裝與介紹原始碼編譯
- MySQL5.7.16原始碼編譯安裝MySql原始碼編譯
- Qt4 原始碼編譯安裝指南QT原始碼編譯
- percona-toolkit原始碼編譯安裝原始碼編譯
- CentOS 7 原始碼編譯安裝 Mysql 5.7CentOS原始碼編譯MySql
- MySQL 5.7.9原始碼編譯安裝說明MySql原始碼編譯
- 如何編譯安裝原始碼包軟體編譯原始碼
- PostgreSQL原始碼學習 win10原始碼編譯安裝SQL原始碼Win10編譯
- Greenplum_原始碼編譯安裝和RPM包安裝原始碼編譯