年終福利,PHP7+Apache2.4+MySQL5.6 源碼編譯安裝,環境配置,搭建你本身的LAMP環境

PHP7 都出來了,你還在玩PHP5嗎?php

MySQL5.6 早都出來了,你還在玩MySql5.2嗎?html

Apache2.4 早都出來了,你還在玩Apache2.2嗎?mysql

 

筆者不才,願意親自搭建環境,供搭建參考。這裏是源碼安裝的奧,什麼一鍵安裝包,什麼yum安裝,什麼rpm安裝都通通略過(筆者是一個自虐狂,就像windows下安裝軟件同樣,不喜歡安裝在默認的位置也就是C盤了,不然系統盤就爆了)c++

安裝以前了,要說明下,要保證PHP在最後安裝,緣由後面揭曉。安裝任何一個軟件以前,都要確保它所依賴的庫都安裝了。sql

 

(本處安裝環境 centos6.4)apache

首先來安裝apache2.4vim

先到apache官方網站 下載 http://httpd.apache.org/download.cgi 最新版本  httpd-2.4.18.tar.gzwindows

而後進行解壓centos

tar -zxvf httpd-2.4.18.tar.gz

進入到解壓後的目錄app

cd httpd-2.4.18

先不要急着安裝,先確保它所依賴的庫是否有,怎樣查看軟件是否安裝(rpm -q xxx),若是沒有安裝依賴則進行安裝(筆者通常安裝依賴庫直接使用yum 默認安裝,這樣在軟件安裝的時候就不須要知道依賴庫的安裝路徑,省去很多麻煩)

這些安裝包是: zlib-devel pcre-devel pcre apr apr-util

在安裝前筆者遇到yum 沒法訪問源的問題,這裏咱們把yum的源指定爲網易163的,具體指定方法請查看 http://mirrors.163.com/.help/centos.html,上面有詳細步驟

 

而後安裝 zlib-devel pcre-devel pcre apr apr-util (apr apr-util 這兩個庫,筆者在安裝時發現使用yum安裝不可取,編譯時找不到類庫,所以筆者這裏採用源碼安裝方式)

yum install zlib-devel pcre-devel pcre

而後咱們使用源碼安裝apr apr-util 這兩個庫,這兩個庫的源碼安裝包能夠到(http://apr.apache.org/download.cgi)找到

分別下載

wget http://mirrors.noc.im/apache//apr/apr-1.5.2.tar.gz
wget http://mirrors.noc.im/apache//apr/apr-util-1.5.4.tar.gz

而後分別解壓,並安裝(必定要確保安裝了 gcc-c++ 沒有的話使用 yum install gcc-c++ 進行安裝)

tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr/
make && make install
tar -zxvf apr-util-1.5.4.tar.gz 
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util/  --with-apr=/usr/local/apr/
make && make install

 

下面開始對Apache進行安裝配置,可使用

./configure --help 

查看安裝時能夠配置哪些參數,下面咱們開始配置一些參數並進行檢查

./configure  \
 --prefix=/usr/local/apache/ \
 --with-apr=/usr/local/apr/ \
 --with-apr-util=/usr/local/apr-util/ \
 --enable-so \
 --enable-deflate=shared \
 --enable-expires=shared \
 --enable-rewrite=shared \
 --enable-static-support

檢查無誤,而後開始編譯安裝

make && make install

而後,漫長等待,大概半個小時。。。

等安裝完之後進入到安裝目錄,開啓apache服務

cd /usr/local/apache/bin/
./apachectl start

哎,發現報錯

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

額,原來就是配置文件中沒有serverName,那就在httpd.conf 中增長 ServerName 

vim /usr/local/apache/conf/httpd.conf

#增長
ServerName localhost

完了以後再從新啓動apache,發現一切正常,而後咱們訪問下看看是否OK

好了,這裏算是大功告成了,apache2.4 安裝完畢

 

 

好了,如今咱們開始安裝mysql

先要下載mysql源碼安裝包,咱們這裏使用mysql-5.6.28.tar.gz ,這個能夠到官網上下載,而後解壓

tar -zxvf mysql-5.6.28.tar.gz

仍是老話,先不急着安裝,先看看mysql依賴的類庫是否安裝,沒有的話就安裝

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

進入到解壓後的mysql目錄,你會驚奇的發現沒有configure 文件,這下如何是好。這個主要是新版本的mysql使用了cmake 進行安裝,因此沒有以前的configure文件了

如今咱們就使用cmake 進行安裝配置

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

上面幾個重要的地方

'-DCMAKE_INSTALL_PREFIX' 是安裝目錄

'-DMYSQL_DATADIR' 是數據文件存放目錄

'-DSYSCONFDIR' 配置文件目錄

'-DMYSQL_UNIX_ADDR' SOCK文件存放目錄

'-DMYSQL_TCP_PORT' 端口號

檢查無誤後,就開始編譯安裝了

make && make install

而後,而後,而後就是半個小時的等待。。。

 

等一切就緒後,咱們須要確保存在 mysql組和mysql用戶

cat /etc/group|grep 'mysql'
cat /etc/passwd|grep 'mysql'

沒有的話就添加

groupadd mysql
useradd -g mysql mysql

而後將目錄'/usr/local/mysql'的全部者改成mysql

chown -R mysql:mysql /usr/local/mysql

這時算是已經安裝完成了,可是mysql中是沒有數據的(即便系統自帶的數據都沒有),這時須要執行自帶腳本,初始化mysql數據

/usr/local/mysql/scripts/mysql_install_db \
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

執行完成後,你會發現/usr/local/mysql/data 目錄下多了一些文件,這些就是mysql的數據文件了

而後啓動mysql,這時要注意,咱們上面指定配置文件位於'/etc'目錄下,可是咱們爲了方便,想把mysql配置文件放到'/usr/local/mysql/',這時咱們須要把'/etc/my.conf'更改一下名稱

mv /etc/my.cnf  /etc/my.cnf.bak

這時mysql 在'/etc'目錄下找不到,就會到'$basedir'下去找,也就是'/usr/local/mysql/'目錄

此時mysql的安裝工做算是完了,下面就要啓動了,你會發現使用使用

/usr/local/mysql/bin/mysql start

沒法啓動,報錯爲

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

 

以前筆者怎麼弄都不行,即便創建'/var/lib/mysql/mysql.sock' 後來終於知道,原來不是怎麼啓動的,而是

/usr/local/mysql/support-files/mysql.server start

而後,測試下

/usr/local/mysql/bin/mysql -u root

show databases;

好了,到這裏mysql 算是安裝成功了!

 

最後一步,咱們要安裝PHP7了,最爲激動人心的時刻到了

首先仍是要下載PHP7 ,這個能夠到官網上下載,而後就是解壓,和上面同樣的命令(筆者這裏使用 PHP7.0.2)

安裝以前仍是老生常談,依賴包要先安裝上

php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype gd jpegsrc libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel  

挺繁瑣,一堆依賴

yum -y install php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype gd jpegsrc libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel 
./configure 
--prefix=/usr/local/php/ 
--with-apxs2=/usr/local/apache/bin/apxs 
--enable-mbstring
--with-curl 
--with-gd 
--enable-fpm 
--enable-mysqlnd  
--with-pdo-mysql=mysqlnd 
--with-config-file-path=/usr/local/php/etc/ 
--with-mysqli=mysqlnd 
--with-mysql-sock=/var/lib/mysql/mysql.sock

 

上面編譯時配置支持了不少東西,你們能夠按照本身的需求添加,可是有一個基礎的必須配置好

--prefix 安裝目錄

--with-apxs2 apache文件所在地

--with-mysql-sock=/var/lib/mysql/mysql.sock mysql的sock文件地址

--enable-mbstring 支持mbstring

--with-curl 支持curl

--with-gd 支持gd

--enable-fpm 支持fpm

--enable-mysqlnd --with-pdo-mysql pdo支持

 

檢查沒有錯誤了,就能夠安裝了,固然了若是有錯誤,多少依賴沒有安裝上去,根據提示依次安裝相關依賴庫

而後就開始編譯安裝了

make && make install

通過半個小時漫長的等待....

安裝完成後,咱們要把源碼包中的配置文件複製到PHP安裝目錄下,源碼包中有兩個配置  php.ini-development  php.ini-production  ,看名字就知道,一個是開發環境,一個是生產環境,咱們這裏就複製開發環境的

cp php.ini-development  /usr/local/php/etc/php.ini

到這裏,還最後一個工做沒有作,就是讓apache去解析PHP文件,在apache配置文件httpd.conf 中加上一條

Addtype application/x-httpd-php .php .phtml

而後從新啓動apache 

/usr/local/apache/bin/apachectl restart

而後在目錄/usr/local/apache/htdocs/ 目錄下增長test.php 

<?
phpinfo();

咱們開始訪問 localhost/test.php, 而後顯示出激動人心的畫面

 

到這裏,專屬你的所有最新版本的LAMP環境就算搭建成功了!!!!

 

後面在講述點小知識,有時你須要爲php添加擴展,windows下弄兩個dll 而後改下php.ini 就OK了,可是centos下就不行,還得編譯。這樣要是讓你從新編譯PHP,那筆者就要受人唾罵了,咱們這裏講述的就是不須要從新編譯PHP,就能夠爲PHP添加擴展

這裏例子咱們要安裝openssl 擴展,在你的源碼安裝包 ext 下會有 openssl 目錄, 進入到該目錄

首先調用咱們已經編譯好的  phpize

/usr/local/php/bin/phpize

發現會報錯

Cannot find config.m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

好,而後咱們就把該目錄下的 config0.m4 複製到  config.m4 中

cp config0.m4 config.m4

而後再次執行

/usr/local/php/bin/phpize

誒,這下OK了,弄完以後,你會發現裏面多了些文件 其中有configure文件,這個就是咱們想要的

./configure \--with-php-config=/usr/local/php/bin/php-config

編譯完成後,就開始安裝

make && make install

這是你會在你的擴展目錄下發現 so 文件(擴展目錄沒有指定的話,就位於 /usr/local/php/lib/php/extensions/no-debug-zts-xxx 裏面 )

而後在php.ini 加上該擴展

 extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/openssl.so

而後重啓apache 再次訪問test.php 就會發現擴展就安裝上去了

 

OK,這裏關於LAMP安裝的東東算是完了,其實安裝倒不是很複雜,複雜的是各類依賴,真是醉了,各類依賴啊,有木有!!!!

相關文章
相關標籤/搜索