LAMP運行環境搭建及部署php程序軟件

前言

    Linux+Apache+MySQL+PHP是大多數web服務器的運行環境,能熟練配置此運行環境是每個運維的必備基本技能,本文以安裝MySQL管理工具PHPmyadmin以及博客軟件wordpress為例,演示編譯安裝LAMP運行環境的過程。

一、實驗拓撲圖

wKiom1ZRsCaCT5GjAABG3Nwf-_E620.png

二、安裝步驟

2.1 編譯安裝Apache httpd 2.4.10。

httpd2.4版本依賴apr、apr-util這兩個包,且版本要求高于系統自帶包,需要編譯安裝

編譯安裝apr及apr-util

# tar xf apr-1.5.1.tar.bz2
# cd apr-1.5.1
# ./configure --prefix=/usr/local/apr
# make && make install
# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

編譯安裝httpd

# tar xf httpd-2.4.10.tar.bz2
# cd httpd-2.4.10
# ./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
# make && make install
# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
# source /etc/profile.d/httpd24.sh

提供SysV服務腳本/etc/init.d/httpd24,可從httpd的RPM包復制一份,修改一下即可

# cp /etc/init.d/httpd /etc/init.d/httpd24
# vim /etc/init.d/httpd24
    ……
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}

    ……
# chkconfig --add httpd24
# chkconfig httpd24 on

2.2 以fpm方式編譯安裝php

# tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
# ./configure --prefix=/usr/local/php5 --with-mysql=mysqlnd --with-openssl \
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  \
--enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d --with-bz2
# make && make intall

配置php-fpm

# cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid

安裝xcache,為php加速

# tar xf xcache-3.2.0.tar.gz
# cd xcache-3.2.0
# /usr/local/php5/bin/phpize
# ./configure --enable-xcache --with-php-config=/usr/local/php5/bin/php-config
# make && make install
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d
# vim /etc/php.d/xcache.ini
extension = /usr/local/php5/lib/php/extensions/no-debug-non-zts-20121212/xcache.so
#如果有多條extension,確保該條在第一位

在Apache服務器上簡單安裝MySQL,給PHPmyadmin連接測試用。

# yum -y install mysql-server
# mysql -uroot -p -e "grant all on *.* to root@'%' identified by '123456';"
# mysql -uroot -p -e "drop user ''@localhost;"
# mysql -uroot -p -e "drop user ''@localhost.localdomain;"
# service mysqld start

2.3 以通用二進制方式安裝MySQL。

# useradd -r -M -s /sbin/nologin mysql
# mkdir -p /mydata/data
# tar xf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -sv mysql-5.6.26-linux-glibc2.5-x86_64/ mysql
# cd mysql 
# chown -R mysql:mysql  ./
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root  ./
# cd /usr/local/mysql
# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld

修改主配置文件

# mkdir /etc/mysql
# vim /etc/mysql/my.cnf
[mysqld]
datadir = /mydata/data
thread_concurrency = 4
#CPU個數*2
port = 3306
server_id = 2
socket = /tmp/mysql.sock
character_set_server = utf8
innodb_buffer_pool_size = 3G
max_allowed_packet = 64M

寫個測試頁面,啟動服務訪問測試環境是否部署成功

# vim /usr/local/apache/htdocs/index.php
<?php
  phpinfo();
  $link = mysql_connect('192.168.5.11','testuser','123456');
  if ($link)
    echo "Success...";
  else
    echo "Failure...";
  mysql_close();
?>

三、搭建CA證書服務器

# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
# touch /etc/pki/CA/{index.txt,serial}
# echo 01 > /etc/pki/CA/serial

四、配置httpd,安裝PHPmyadmin和WordPress。

4.1 生成證書請求文件,并發送給CA簽署

# openssl genrsa -out /etc/httpd24/httpd.key 2048
# openssl req -new -key /etc/httpd24/httpd.key -out /etc/httpd24/httpd.csr
# # scp /etc/httpd24/httpd.csr root@192.168.5.12:/tmp

登錄CA服務器,簽署證書并發回給Apache服務器

# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt
# scp /tmp/httpd.crt root@192.168.5.10:/etc/httpd24/

4.2 修改主配置文件,提供虛擬主機。

# vim /etc/httpd24/httpd.conf

#DocumentRoot "/usr/local/apache/htdocs"
#Listen 80
#<Directory />
#   AllowOverride none
#   Require all denied
#</Directory>
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps
DirectoryIndex  index.php  index.html
Include /etc/httpd24/extra/httpd-vhosts.conf

LoadModule ssl_module modules/mod_ssl.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
# vim /etc/httpd24/extra/httpd-vhosts.conf
Listen 80
Listen 443
<VirtualHost *:443>
    ServerName test.phpmyadmin.com
    DocumentRoot "/www/pma"
    ErrorLog "logs/pma-error_log"
    CustomLog "logs/pma-access_log" common
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/pma/$1
    SSLEngine on
    SSLCertificateFile "/etc/httpd24/httpd.crt"
    SSLCertificateKeyFile "/etc/httpd24/httpd.key"
</VirtualHost>

<VirtualHost *:80>
    ServerName test.wordpress.com
    DocumentRoot "/www/wordpress"
    ErrorLog "logs/wordpress-error_log"
    CustomLog "logs/wordpress-access_log" common
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/wordpress/$1
</VirtualHost>

4.3 把PHPmyadmin和WordPress程序包解壓到指定目錄

# mkdir /www
# cd /www
# unzip /tmp/phpMyAdmin-4.0.5-all-languages.zip
# mv phpMyAdmin-4.0.5-all-languages/ pma
# tar xf /tmp/wordpress-4.3.1-zh_CN.tar.gz

修改程序主配置文件

# cp pma/config.sample.inc.php pma/config.inc.php
$cfg['Servers'][$i]['host'] = '192.168.5.10';
#把主機改成IP即可

# cp wordpress/wp-config-sample.php wordpress/wp-config.php 
# vim wordpress/wp-config.php
// ** MySQL 設置 - 具體信息來自您正在使用的主機 ** //
/** WordPress數據庫的名稱 */
define('DB_NAME', 'wordpress');

/** MySQL數據庫用戶名 */
define('DB_USER', 'testuser');

/** MySQL數據庫密碼 */
define('DB_PASSWORD', '123456');

/** MySQL主機 */
define('DB_HOST', '192.168.5.11');

數據庫配置

# mysql -uroot -p -e "create database wordpress;"
# mysql -uroot -p -e "grant all on *.* to testuser@'%' identified by '123456';"
# mysql -uroot -p -e "drop user ''@localhost;"
# mysql -uroot -p -e "drop user ''@localhost.localdomain;"

重啟服務,訪問測試

# service php-fpm restart
# service httpd24 restart

訪問wordpress

wKioL1ZR0QmAqnXPAACte8oODw8987.png

訪問PHPmyadmin

wKioL1ZR0VHTvu8mAACNgJAzI1Q298.png

wKiom1ZR0Przw9tpAAFsu93arfI499.png

至此,實驗完成

原創文章,作者:秦,如若轉載,請注明出處:http://www.www58058.com/9473

(0)
秦
上一篇 2015-11-26
下一篇 2015-11-26

相關推薦

  • 網絡管理之網絡配置

    一:博客 1 centos6網卡別名 在Linux系統中,我們可以在一塊物理網卡上配置多個IP地址,以此來實現類似子接口的功能,我們稱之為網卡別名。 設置網卡別名,先在/etc/sysconfig/network-scripts目錄下將eth0文件復制名為eth0:1的文件,復制文件中的1可隨意設置,但為方便管理建議按順序排列 注意要修改ifcfg-eth0…

    Linux干貨 2016-09-05
  • 22期第十周課堂練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)     2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;       (1) 為硬盤新建兩個主分區;并為其安裝grub;       (2) 為硬盤的第一個主分區提供內核和ramdi…

    Linux干貨 2016-10-24
  • Proxmox-Linux下的開源管理平臺

    1)proxmox簡介 Proxmox VE (Proxmox Virtual Environment) 是一個非常棒的集成OPENVZ 支持KVM應用的環境。有方便易用的WEB界面,基于JAVA的UI和內核接口,可以登錄到VM客戶方便的操作,還有易用的模板功能,基本跟老外的商業VPS環境差不多了,支持VT和ISCSI 2)proxmox的安裝與基本配置 安…

    Linux干貨 2016-08-08
  • CentOS7修改網卡為eth0

    1.編輯網卡信息 [root@linux~]# cd /etc/sysconfig/network-scripts/  #進入網卡目錄 [root@linux~network-scripts]# mv ifcfg-eno16777728 ifcfg-eth0  #重命名網卡名稱 [root@linux network-…

    Linux干貨 2016-10-25
  • 正則表達式以及Linux文本搜索工具grep

    一正則表達式 regual Expression  簡稱REGEXP 定義:由一類特殊字符以及文本字所編寫的模式,其中有些字符不表示其字面意義,而用于統配和統配功能 分類:     基本正則表達式:BRE 貪婪模式(盡可能長地去匹配符合模式的內容     擴展表達式:E…

    Linux干貨 2016-08-07
  • 馬哥教育網絡班21期+第一周課程練習

    一、計算機的組成及其功能 自上個世紀40年代開始截止到目前,我們所有的計算機包括手持的智能終端設備,它們整個組織體系設備都是遵循馮諾依曼體系結構。 現代計算機設備的組成部分: 運算器、控制器、存儲器、輸入設備、輸出設備 控制器:控制器是整個計算機的樞紐,一般是控制計算機整個部件之間協調的,比如運算器要想運算的話,首先得從存儲器中取出數值。或者輸入設備輸入數。…

    Linux干貨 2016-07-07

評論列表(1條)

  • stanley
    stanley 2015-11-26 16:42

    精品!已置頂,好久不見秦出作品了

欧美性久久久久