[root@localhost ~]# tar xf apr-1.5.0.tar.bz2 -C /usr/local/src/ [root@localhost ~]# tar xf apr-util-1.5.3.tar.bz2 -C /usr/local/src/ [root@localhost ~]# tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/src/ [root@localhost ~]# tar xf php-5.6.4.tar.xz -C /usr/local/src/ [root@localhost ~]# unzip phpMyAdmin-4.0.5-all-languages.zip -d /usr/local/src/
2、httpd在url重寫時可能需要用到pcre來支持perl語言的正則表達式,安裝過程中需要依賴pere-devel包,因此,先裝上此包: [root@localhost ~]# yum install -y pcre-devel //需提前配置好yum源 3、安裝apr及apr-util包
[root@localhost ~]# cd /usr/local/src/apr-1.5.0/ //切換至apr解壓目錄 [root@localhost apr-1.5.0]# ./configure --prefix=/usr/local/apr //指明apr的安裝位置 [root@localhost apr-1.5.0]# make && make install //編譯並安裝 [root@localhost apr-1.5.0]# cd /usr/local/src/apr-util-1.5.3/ //切換至apr-util的解壓目錄 [root@localhost apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr //指定安裝目錄及apr路徑 [root@localhost apr-util-1.5.3]# make && make install //編譯並安裝4、安裝編譯安裝httpd
[root@localhost ~]# cd /usr/local/src/httpd-2.4.9/ //切換至httpd的解壓目錄 [root@localhost httpd-2.4.9]# ./configure --help //使用此選項查看編譯時所支持的參數,由於條目過多,此處指選出需要用到的參數進行講解 --prefix=/usr/local/apache //指明安裝目錄 --sysconfdir=/etc/httpd24 //指定配置文件的安裝路徑,此處為了避免與rpm包所裝的httpd沖 突,將路徑名取名為httpd24 --enable-so //支持httpd的模塊化機制 --enable-ssl //啟用支持ssl功能,實現https --enable-cgi //支持cgi協議 --enable-rewrite //支持url重寫 --with-zlib //支持傳輸壓縮 --with-pcre //支持perl語言的正則表達式 --with-apr=/usr/local/apr //指明編譯升級的apr的路徑 --with-apr-util=/usr/local/apr-util //指明編譯升級的apr-util路徑 --enable-modules=most //指明啟動大多數的模塊 --enable-mpms-shared=all //將所有mpm模塊都編譯進httpd(httpd2.4版本的新特性) --with-mpm=event //默認使用event的MPM工作模型 [root@localhost httpd-2.4.9]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event [root@localhost httpd-2.4.9]# make && make install //編譯並安裝
5、為編譯安裝的httpd添加環境變量
[root@localhost httpd-2.4.9]# vim /etc/profile.d/httpd24.sh //在/etc/profile.d/目錄下創建一個以.sh結尾的文件,並編輯 export PATH=/usr/local/apache/bin/:$PATH //將此信息添加至改文件,並保存退出 [root@localhost httpd-2.4.9]# source /etc/profile.d/httpd24.sh //通知系統重新讀取此文件 現在便可以直接使用編譯安裝的httpd命令了。
6、編譯配置文件,添加pidfile文件路徑
[root@localhost httpd-2.4.9]# vim /etc/httpd24/httpd.conf Pidfile "/var/run/httpd/httpd.pid" //在配置文件中添加該行,並保存退出
7、為編譯安裝的httpd提供服務管理腳本,放置於/etc/rc.d/init.d下,名為httpd.24
# chkconfig: - 85 15 # description: The Apache HTTP Server Management script. . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi HTTPD_LANG=${HTTPD_LANG-"C"} INITLOG_ARGS="" apachectl=/usr/local/apache/bin/apachectl httpd=${HTTPD-/usr/local/apache/bin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd} RETVAL=0 STOP_TIMEOUT=${STOP_TIMEOUT-10} start() { echo -n $"Starting $prog: " LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} -d ${STOP_TIMEOUT} $httpd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} } reload() { echo -n $"Reloading $prog: " if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then RETVAL=6 echo $"not reloading due to configuration syntax error" failure $"not reloading $httpd due to configuration syntax error" else # Force LSB behaviour from killproc LSB=1 killproc -p ${pidfile} $httpd -HUP RETVAL=$? if [ $RETVAL -eq 7 ]; then failure $"httpd shutdown" fi fi echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} $httpd RETVAL=$? ;; restart) stop start ;; condrestart|try-restart) if status -p ${pidfile} $httpd >&/dev/null; then stop start fi ;; force-reload|reload) reload ;; graceful|help|configtest|fullstatus) $apachectl $@ RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}" RETVAL=2 esac exit $RETVAL
8、將httpd24添加至開機自動啟動列表,腳本啟動httpd,進行測試:
[root@localhost ~]# chkconfig --add httpd24 [root@localhost ~]# chkconfig --list httpd24 httpd24 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@localhost httpd-2.4.9]# service httpd24 start Starting httpd: 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 //此處報錯可忽略 [ OK ] [root@localhost httpd-2.4.9]# ss -tnl | grep 80 LISTEN 0 128 :::80 :::* //80端口已處於監聽狀態
9、安裝mariadb:此安裝過程可查看mysql的展開目錄中的INSTALL-BINARY 文檔
[root@localhost httpd-2.4.9]# cd /usr/local/src/ //切換至src的目錄 [root@localhost src]# mv mariadb-5.5.43-linux-x86_64 /usr/local/mysql //將mariadb的目錄名改為mysql [root@localhost src]# groupadd -r -g 306 mysql //添加mysql組為系統組 [root@localhost src]# useradd -r -u 306 -g 306 mysql //添加mysql用戶為系統用戶並添加至mysql組 [root@localhost src]# chown -R mysql:mysql mysql //將mysql目錄及其子目錄改為屬主屬組都為mysql [root@localhost src]# mkdir /mydata/data -pv //創建mysql的數據庫目錄 mkdir: created directory `/mydata' mkdir: created directory `/mydata/data' [root@localhost src]# cd mysql/ [root@localhost src]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data //以mysql用戶安裝mariaDB並指明數據庫目錄位置 [root@localhost mysql]# chown -R root . //將mysql目錄改為root屬主 [root@localhost mysql]# mkdir /etc/mysql //創建mysql配置文件目錄 //mysql的配置文件查找順序為: /etc/my.cnf -- > /etc/mysql/*.cnf ---> --defaults-file(若編譯安裝時指定此項) ---> ~/.my.cnf 啟動mysql的用戶家目錄下,最後一個加載的配置參數覆蓋前面的配置參數 [root@localhost mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf //展開目錄下support-files目錄中提供有幾個配置模板,依照內存需求命令, 可根據需要拷貝為默認的配置文件 [root@localhost mysql]# vim /etc/mysql/my.cnf //編輯配置文件,在[mysqld]容器中添加如下幾個參數 thread_concurrency = 8 //將此項改為自己cpu核心數量的兩倍 datadir = /mydata/data //指明數據庫目錄 innodb_file_per_table = yes //開啟innodb數據庫每個表存儲為一個文件 skip_name_resolve = yes //開啟跳過名稱自解析 [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld //提供服務管理腳本,此腳本為軟件所提供 [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld //將服務腳本賦予可執行權限 [root@localhost mysql]# chkconfig --add mysqld //將mysqld添加至開機自動啟動項 [root@localhost mysql]# chkconfig mysqld on //開啟開機自動啟動 [root@localhost mysql]# chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@localhost mysql]# /etc/init.d/mysqld start //啟動mysqld服務 [root@localhost mysql]# bin/mysql_secure_installation //運行mariadb的安全初始化,以完成為root用戶添加密碼以及其他的安全操作 至此,mariadb已完成安裝
10、編譯安裝php,將其安裝為httpd的模塊
[root@localhost php-5.6.4]# yum install -y libmcrypt-devel.x86_64 bzip2-devel //在epel源中有提供 //解決依賴關系,php可能用到bzip2來進行數據的壓縮 [root@localhost php-5.6.4]# yum install -y libxml2-devel //編譯安裝若啟用對xml文檔的支持,則需安裝此項 [root@localhost mysql]# cd /usr/local/src/php-5.6.4/ //切換至php的展開目錄 此處依舊可使用./configure --help 查看編譯安裝時所支持的參數 --prefix=/usr/local/php //指明安裝路徑 --with-mysql=/usr/local/mysql //指定mysql的位置 --with-openssl //支持openssl --with-mysqli=/usr/local/mysql/bin/mysql_config //對mysql進行交互的另外一種接口 --enable-mbstring //對多字節字符串支持,對中文支持,必須啟用此項 --with-freetype-dir //支持freetype字體格式 --with-jpeg-dir //開啟此功能,可以使用php直接處理jpeg格式的圖片 --with-png-dir // 開啟此功能,可以支持php直接處理png格式的圖片 --with-zlib // 支持zlip壓縮,提高數據傳輸效率 --with-libxml-dir=/usr //支持處理xml文檔 --enable-xml //啟用xml功能 --enable-sockets //表示支持php支持socket進行通信--with-apxs2=/usr/local/apache/bin/apxs //此項表示將php編譯成模塊 --with-mcrypt //支持加密解密 --with-config-file-path=/etc //指明php配置文件的放置位置 --with-config-file-scan-dir=/etc/php.d //表示檢索此位置下的.ini結尾的文件作為php的配置文件 --with-bz2 //支持bzip2格式的壓縮 --enable-maintainer-zts //若httpd以線程模式運行(worker或event)模式運行,此項必須!表示將php編譯成zts模塊 [root@localhost php-5.6.4]#./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-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts [root@localhost php-5.6.4]#make -j 4 && make install //編譯並安裝。可使用-j n 指明使用幾顆cpu核心進行編譯,加速編譯過程 ./configure過程中,若出現錯誤,一般都是因為所依賴的*-devel包未安裝,因此,使用yum install安裝即可。 [root@localhost php-5.6.4]# cp php.ini-production /etc/php.ini //提供php配置文件,此文件無需更改。 [root@localhost php-5.6.4]# vim /etc/httpd24/httpd.conf //編輯httpd配置文件,找到php的模塊,確保是否php已安裝成功 添加如下幾項: AddType application/x-httpd-php .php AddType application/x-httpd-source .phps 將DirectoryIndex index.html 改為 DirectoryIndex index.php index.html 保存退出。執行httpd -t [root@localhost php-5.6.4]# httpd -t //檢查配置文件是否有誤 [root@localhost php-5.6.4]# /etc/rc.d/init.d/httpd24 reload //重讀配置文件 [root@localhost php-5.6.4]# httpd -M |grep php //檢查php的模塊是否已加載 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 php5_module (shared) 編輯一個測試頁,測試LAMP是否已結合成功---- [root@localhost php-5.6.4]# vim /usr/local/apache/htdocs/index.php <?php $conn=mysql_connect('127.0.0.1','root','root'); //此處mysql鏈接賬號密碼為安裝完成Mariadb後,運行安全初始化時設置的。 if ($conn) echo "OK"; else echo "Faulse"; phpinfo(); ?> 11、在浏覽器中打開網頁進行查看:出現如下頁面,即表示搭建成功。 wKiom1YAMa_i3QMJAAKLahJBQ10800.jpg 12、搭建基於主機名的虛擬主機安裝phpMyadmin,實現mysql(MariaDB)圖形化管理: [root@localhost php-5.6.4]# vim /etc/httpd24/httpd.conf //編輯httpd配置文件 1)注釋中心主機:#DocumentRoot "/usr/local/apache/htdocs" 2)添加: Include /etc/httpd24/vhosts.conf 13、創建並編輯虛擬主機配置文件: [root@localhost php-5.6.4]# vim /etc/httpd24/vhosts.conf <VirtualHost 172.16.113.14:80> DocumentRoot /web/vhosts/pma ServerName pma.su.com CustomLog "/var/log/httpd/pma_access.log" common ErrorLog "/var/log/httpd/pma_error.log" </VirtualHost> <Directory "/web/vhosts/pma"> //httpd2.4版本必須為網站目錄授權才可訪問 AllowOverride None Options None Require all granted </Directory> [root@localhost php-5.6.4]# mkdir -pv /var/log/httpd //創建日志文件目錄 [root@localhost php-5.6.4]# mkdir -pv /web/vhosts/pma //創建網站根目錄 mkdir: created directory `/web' mkdir: created directory `/web/vhosts' mkdir: created directory `/web/vhosts/pma' [root@localhost php-5.6.4]# httpd -t //檢查配置文件是否有誤 [root@localhost pma]# /etc/rc.d/init.d/httpd24 restart //重啟httpd服務 [root@localhost php-5.6.4]# mv /usr/local/src/phpMyAdmin-4.0.5-all-languages/* /web/vhosts/pma/ //將程序文件移動到網站根目錄下 //配置phpMyadmin配置文件 [root@localhost pma]# cp config.sample.inc.php config.inc.php //將配置文件模板復制為配置文件(去掉sample) [root@localhost pma]# vim config.inc.php //編輯配置文件 $cfg['blowfish_secret'] = 'aadf$#23SDA$%8b7c6d'; //在此項添加一個隨機數 編輯測試主機hosts文件(C:\Windows\System32\drivers\etc),添加如下信息,並保存 172.16.113.14 pma.su.com 在浏覽器輸入pma.su.com訪問即可。