簡述環境:服務器-centos6.8;
目標安裝:php7+,apache2.4,mysql5.6
安裝lnamp環境前先檢查系統環境
1.?更新系統軟件:#yum update
2.?查看是否已安裝wget:#rpm -qa wget
否則安裝:#yum install wget
3.?查看是否已安裝編譯器:#rpm -qa gcc
否則安裝:#yum install gcc gcc-c++
安裝apache
檢查/安裝依賴:yuminstallzlib-devel pcre-devel pcre
安裝apr和apr-util?這兩個依賴是apache2.4版本的重要依賴,以及svn也會用到。下載地址http://apr.apache.org/download.cgi,分別下載:
wget?http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz
wget?http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
然后分別解壓,并安裝(一定要確保安裝了 gcc-c++ 沒有的話使用 yum install gcc-c++ 進行安裝)
安裝apr和apr-util:
tar-zxvf apr-1.6.3.tar.gz
cd apr-1.6.3
./configure --prefix=/usr/local/apr/
make && make install
tar-zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util/? --with-apr=/usr/local/apr/
make&&makeinstall
關于apr-util執行make如果出現錯誤,請參考文章《apr-util 執行make命令時報錯" [xml/apr_xml.lo] Error 1"》沒錯誤可忽略本段
安裝apache,將下載apache解壓縮,進入目錄
#tar -zxvf?httpd-2.4.33.tar.gz
#cd?httpd-2.4.33
查看安裝時可以配置哪些參數,下面我們開始配置一些參數并進行檢查
./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
然后,漫長等待,大概半個小時。。。
如編譯過程中出現make報錯[exports.lo] Error 1 錯誤,請參考《[轉載]Apache2.4.7 make報錯[exports.lo] Error 1 解決方法》,沒錯誤可忽略本段
等安裝完以后進入到安裝目錄,開啟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
pache2.4 安裝完畢
安裝mysql
在安裝mysql之前,先檢查一下mysql的依賴類庫
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
在到官網下載mysql5.6版本的安裝包
wget?http://mirror.neu.edu.cn/mysql/Downloads/MySQL-5.6/mysql-5.6.28.tar.gz
tar-zxvf mysql-5.6.28.tar.gz
cd?mysql-5.6.28
mysql5.6版本用cake進行安裝,進入mysql-5.6.28目錄。輸入如下:
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 rootshow databases;
mysql安裝完畢
安裝php
檢查php依賴
yum -y install php-mcrypt libmcrypt libmcrypt-devel ?autoconf ?freetype?gd?jpegsrc?libmcrypt?libpng?libpng-devel libjpeg?libxml2?libxml2-devel?zlib curl curl-devel?
到官網下載php7
wget?http://cn2.php.net/distributions/php-7.1.16.tar.gz
tar -zxvf php-7.1.16.tar.gz
cd?php-7.1.16
./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 --with-freetype-dir=/usr/local/freetype --enable-gd-native-ttf
上面編譯時配置支持了很多東西,大家可以按照自己的需求添加,但是有一個基礎的必須配置好
--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 中修改:
找到"DirectoryIndex index.html index.htm",在當前行后增加 index.php如圖:
然后再增加“Addtype application/x-httpd-php .php .phtml”,如下圖:
然后重新啟動apache :/usr/local/apache/bin/apachectl restart? ?(延展閱讀:linux(centos)下增加httpd為系統服務)
然后在目錄/usr/local/apache/htdocs/ 目錄下增加test.php ,輸入"phpinfo();"
打印程序:
? ? ? ? 安裝感悟:lamp對于新手或者不熟悉lamp環境搭配的,真的是比較麻煩的事情。遇到問題最多的就是安裝各種依賴和擴展。本人也是在百度找了很多,都沒有完成lamp的環境搭建。因為要不就是單獨安裝php,或者單獨安裝apache,還有就是php和apache都安裝好了,卻沒介紹apache和php怎么搭配使用,或者編譯時安裝的php擴展不能結合apache……,通過這次記錄,也希望廣大的網友能搜索到本篇文章,或者自己再遇到類似的問題,有個可以參考的。
? ? ? ? ? 把知識整理和運用出來,才是自己的。加油,共勉。