最新的PHP7 MySQL5.6 httpd2.4 ,手把手教你如何源碼安裝LAMP,如何配置相應環境
PHP7 都出來了,你還在玩PHP5嗎?
MySQL5.6 早都出來了,你還在玩MySql5.2嗎?
Apache2.4 早都出來了,你還在玩Apache2.2嗎?
筆者不才,願意親自搭建環境,供搭建參考。這裡是源碼安裝的奧,什麼一鍵安裝包,什麼yum安裝,什麼rpm安裝都統統略過(筆者是一個自虐狂,就像windows下安裝軟體一樣,不喜歡安裝在預設的位置也就是C盤了,否則系統盤就爆了)
安裝之前了,要說明下,要保證PHP在最後安裝,原因後面揭曉。安裝任何一個軟體之前,都要確保它所依賴的庫都安裝了。
(本處安裝環境 centos6.4)
首先來安裝apache2.4
先到apache官方網站 下載 http://httpd.apache.org/download.cgi 最新版本 httpd-2.4.18.tar.gz
然後進行解壓
tar -zxvf httpd-2.4.18.tar.gz
進入到解壓後的目錄
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安裝的東東算是完了,其實安裝倒不是很複雜,複雜的是各種依賴,真是醉了,各種依賴啊,有木有!!!!