LAMP: HTTP 2.4.25 + PHP 5.4.13 + MySQL 5.5.28 分離部署 CentOS 6.6

来源:http://www.cnblogs.com/William-Guozi/archive/2017/05/12/Linux_LAMP.html
-Advertisement-
Play Games

環境說明: 系統: CentOS 6.6 部署模式: 分離式(三個服務部署到三台服務上) 版本: HTTP 2.4.25 + PHP 5.4.13 + MySQL 5.5.28 IP規劃: HTTP: 192.168.205.116 PHP: 192.168.205.117 MySQL: 192.1 ...


 

環境說明: 

  • 系統: CentOS 6.6
  • 部署模式: 分離式(三個服務部署到三台服務上)
  • 版本: HTTP 2.4.25 + PHP 5.4.13 + MySQL 5.5.28
  • IP規劃: HTTP: 192.168.205.116    PHP: 192.168.205.117  MySQL: 192.168.205.115

 

效果截圖:

 

httpd編譯安裝

 

  1. 編譯安裝apr

1) wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz
2) tar xf apr-1.5.2.tar.gz
3) cd apr-1.5.2
4) ./configure
5) make&makeinstall

  1. 編譯安裝apr-util

1) wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
2) cd apr-util-1.5.4
3) tar xf apr-util-1.5.4.tar.gz
4) ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
5) make&makeinstall

  1. 編譯安裝httpd

1) yum install pcre pcre-devel -y
2) yum install openssl-devel -y
3) wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.25.tar.bz2
4) cd httpd-2.4.25
5) ./configure \
  --prefix=/usr/local/httpd \
  --sysconfdir=/etc/httpd \
  --enable-so \
  --enable-rewrite \
  --enable-ssl --enable-cgi \
  --enable-cgid --enable-modules=most \
  --enable-mpms-shared=all \
  --with-apr=/usr/local/apr \
  --with-apr-util=/usr/local/apr-util \
  --with-ssl=/usr/local/openssl \
  --enable-proxy \
  --enable-proxy-fcgi
6) make && make install

  1. 關閉selinux和防火牆

1) getenforce
2) setenforce 0
3) vim /etc/selinux/config
4) getenforce
5) iptables -F

  1. 修改配置文件

1) vim /etc/httpd/httpd.conf
2) 添加 PidFile "/var/run/httpd.pid": 修改pid進程文件位置

  1. 服務啟動驗證

1) /usr/local/httpd/apachectl start
2) netstat -tnlp

  1. 創建啟動文件

1) vim /etc/init.d/httpd

  . /etc/rc.d/init.d/functions
  #chkconfig: 2345 10 90
  #

  # pull in sysconfig settings
  [ -f /etc/sysconfig/httpd ] && . /etc/sysconfig/httpd
  HTTPD_LANG=${HTTPD_LANG-"C"}
  INITLOG_ARGS=""
  #apachectl=/usr/local/apache/bin/apachctl
  #httpd=${HTTPD-/usr/local/apache/bin/httpd}
  httpd=${HTTPD-/usr/local/httpd/bin/apachectl}
  prog=httpd
  pidfile=${PIDFILE-/var/run/httpd.pid}
  lockfile=${LOCKFILE-/var/lock/subsys/httpd}
  RETVAL=0

  start()
  {
  echo -n $"Starting $prog: "
  LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch $lockfile
  return $RETVAL
  }

  stop()
  {
  echo -n $"Stopping $prog: "
  killproc -p ${pidfile} -d 10 $httpd
  RETVAL=$?
  # if we are in halt or reboot runlevel kill all running sessions
  # so the TCP connections are closed cleanly
  echo
  [ $RETVAL -eq 0 ] && rm -f ${lockfile} ${pidfile} 
  }
  
  reload()
  {
  echo -n $"Reloading $prog: "
  if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
  RETVAL=$?
  echo $"not reloading due to configuration syntax error"
  failure $"not reloading $httpd due to configuration syntax error"
  else 
  killproc -p ${pidfile} $httpd -HUP
  RETVAL=$?
  fi
  echo
  }

  restart() {
  stop
  start
  }

  case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  status)
  status -p ${pidfile} $httpd
  RETVAL=$?
  ;;
  restart)
  restart
  ;;
  condrestart)
  if [ -f ${pidfile} ]; then
  stop
  start
  fi
  ;;
  reload)
  reload
  ;;
  graceful|help|configtest|fullstatus)
  $apachectl $@
  RETVAL=$?
  ;;
  *)
  echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
  exit 1
  esac
  exit $RETVAL
httpd

 


2) 添加執行許可權
  a) chmod +x /etc/init.d/httpd
3) 加入到啟動服務列表中
  a) chkconfig --add httpd
  b) chkconfig --list httpd
  c) chkconfig --level 35 httpd on
4) 處理報錯信息
  a) vim /etc/httpd/httpd.conf
    ServerName localhost:80

  1. 添加環境變數

  a) vim /etc/profile.d/httpd.sh
    a) export PATH=$PATH:/usr/local/httpd/bin/
  b) 註意httpd -t生效需要退出重新登錄

 

MySQL二進位安裝

 

  1. 下載安裝

  1) wget https://downloads.mysql.com/archives/get/file/mysql-5.5.28-linux2.6-i686.tar.gz
ii. 解壓到指定目錄
  1) tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local/
iii. 切換到該目錄下
  1) cd /usr/local/
iv. 做鏈接
  1) ln -sv mysql-5.5.28-linux2.6-i686/ mysql
v. 添加用戶, 修改屬主, 屬組
  1) groupadd -r -g 306 mysql
  2) useradd -g 306 -r -u 306 mysql
  3) chown -R root.mysql /usr/local/mysql/*

  1. 製作邏輯捲並將資料庫文件指定至邏輯捲

vi. 製作邏輯捲
  1) fdisk /dev/sdb
  2) pvcreate /dev/sdb5
  3) vgcreate myvg /dev/sdb5
  4) lvcreate -n mydata -L 5G myvg
  5) lvs
  6) mke2fs -j /dev/myvg/mydata
vii. 資料庫數據存放至邏輯捲
  1) mkdir /mydata/
  2) mount /dev/myvg/mydata /mydata/
viii. 修改/etc/fstab文件
  1) /dev/myvg/mydata /mydata ext3 defaults 0 0
  2) mount -a
ix. 修改數據存儲文件夾許可權
  1) chown -R mysql.mysql data/
  2) chmod o-x /mydata/data/

  1. 初始化資料庫

  1) yum install -y libaio: 初始化時報錯的解決辦法
  2) cd /user/local/mysql
  3) scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
  4) chown -R root /usr/local/mysql/*

  1. 創建開機自啟

xi. 修改啟動文件
  1) cp support-files/mysql.server /etc/init.d/mysqld
xii. 添加入開機啟動
  1) chkconfig --add mysqld
  2) chkconfig --list mysqld

  1. 添加配置文件

1) cp /usr/local/mysql-5.5.28-linux2.6-i686/support-files/my-huge.cnf /etc/my.cnf
2) vim /etc/my.cnf
  a) datadir = /mydata/data/mysql
  b) thread_concurrency = 8
  c) mysql中一個cpu提供2個線程
    i) 查看當前系統有幾個cpu:cat /proc/cpuinfo
    ii) 所以這裡最多有2個線程,修改為2

  1. 添加PATH環境變數執行mysql命令

1) vim /etc/profile.d/mysqld.sh
  a) export PATH=$PATH:/usr/local/mysql/bin
2) 退出重新登錄

  1. 開啟服務測試

1) service mysqld start

  1. 修改MySQL的root用戶的密碼以及打開遠程連接

  mysql -u root mysql
  mysql>use mysql;
  mysql>desc user;
  mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "william";  //為root添加遠程連接的能力。
  mysql>update user set Password = password('xxxxxx') where User='root';
  mysql>select Host,User,Password from user where User='root';
  mysql>flush privileges;
  mysql>exit
重新登錄:mysql -u root -p

PHP源碼編譯安裝

  1. 編譯安裝libmcrypt

1) wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.6.tar.gz
2) tar xf libmcrypt-2.5.6.tar.gz
3) cd libmcrypt-2.5.6
a) ./configure --prefix=/usr/local/libmcrypt

  1. 編譯安裝PHP

ii.  wget http://museum.php.net/php5/php-5.4.13.tar.bz2
iii.  yum install gcc openssl-devel libxml2-devel bzip2-devel -y

  cd php-5.4.13
iv. 編譯安裝
  ./configure \
  --prefix=/usr/local/php \
  --enable-fpm \
  --with-config-file-path=/etc \
  --with-config-file-scan-dir=/etc/php.d \
  --with-libxml-dir=/usr \
  --with-openssl \
  --with-zlib \
  --with-bz2 \
  --with-jpeg-dir \
  --with-png-dir \
  --with-freetype-dir \
  --enable-mbstring \
  --with-mcrypt \
  --enable-sockets \
  --with-mysql=mysqlnd \
  --with-mysqli=mysqlnd \
  --with-pdo-mysql=mysqlnd \
  --enable-maintainer-zts \
  --with-mcrypt=/usr/local/libmcrypt
1) make && make install

  1. 設置啟動項

1) cp php.ini-production /etc/php.ini
2) 為php-fpm提供Sysv init腳本, 並將其添加至服務列表
  a) cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  b) chmod +x /etc/init.d/php-fpm
  c) chkconfig --add php-fpm
  d) chkconfig --list php-fpm
vi. 修改httpd.conf
  1) AddType application/x-httpd-php .php
  2) AddType application/x-httpd-source .phps
vii. 配置php-fpm
  1) 為php-fpm提供Sysv init腳本, 並將其添加至伺服器列表
    a) cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
    b) chmod +x /etc/rc.d/init.d/php-fpm
    c) chkconfig --add php-fpm
    d) chkconfig php-fpm on

  1. 為php-fpm提供配置文件

  a) cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
3) 編輯php-fpm的配置文件
  a) vim /usr/local/php/etc/php-fpm.conf
  b) 配置fpm的相關選項為你所需要的值, 並啟用pid文件
    i) pm.max_children = 50
    ii) pm.start_servers = 5
    iii) pm.min_spare_servers=2
    iv) pm.max_spare_servers=8
    v) pid=/usr/local/php/var/run/php-fpm.pid

  1. 啟動服務

    1) service php-fpm start
    2) netstat -tnlp

PHP連接HTTP

i. 修改php伺服器配置php-fpm的文件vim /usr/local/php/etc/php-fpm 定位到listen =192.168.205.117:9000
ii. 在該主機上新建虛擬主機目錄用於存放網頁文件
  mkdir -pv /www/{glinux,gliuxstar}
iii. 配置http伺服器Apache虛擬主機使用php
  1) 在httpd主機上, 192.168.205.116, 建立一個目錄作為虛擬主機的家目錄
    a) mkdir -pv /www/{glinux,glinuxstar}

  1. 編輯主配置文件(關閉中心主機, 開啟虛擬主機)

  a) vim /etc/httpd/httpd.conf
    One. 註釋 #DocumentRoot "/usr/local/apache/htdocs"
    Two. 並打開啟用 Include /etc/httpd/extra/httpd-vhosts.conf
    Three. 同時定位 AddType;添加下麵兩行
      First. AddType application/x-httpd-php .php
      Second. AddType application/x-httpd-php-source .phps
    Four. 並且定位至DirectoryIndex
      First. <IfModule dir_module>
        1. DirectoryIndex index.php index.html #添加index.php(最好添加在最前面)
      Second. </IfModule>
    Five. 啟動模塊
      First. 還要啟用proxy_module proxy-fcgi_module等
      Second. LoadModule proxy_module modules/mod_proxy.so #開啟
      Third. LoadModule proxy_connect_module modules/mod_proxy_connect.so
      Fourth. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
      Fifth. LoadModule proxy_http_module modules/mod_proxy_http.so
      Sixth. LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #開啟

  1. 編輯虛擬主機配置文件vim /etc/httpd/extra/httpd-vhosts.conf 

  <VirtualHost *:80>
    DocumentRoot "/www/glinux"
      ServerName www.glinux.com
      ServerAlias glinux.com
      ErrorLog "/usr/local/httpd/logs/glinux.error_log"
      CustomLog "/usr/local/httpd/logs/glinux.access_log" combined
      ProxyRequests off
      ProxyPassMatch ^/(.*.php)$ fcgi://192.168.205.117:9000/www/glinux/$1
    <Directory "/www/glinux">
      Options none
      AllowOverride None
      Require all granted
    </Directory>
  </VirtualHost>

  1. 在php伺服器上的/www/glinux目錄下分別建立網頁文件, 重啟服務即可

      vim /www/glinux/index.php
        <?php
          phpinfo();
        ?>

  1. 測試phpinfo成功      

瀏覽器里輸入: http://192.168.205.116

  1. php支持擴展功能xcache

1) wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
2) 安裝xcache
  a) tar xf xcache-3.2.0.tar.gz
  b) cd xcache-3.2.0
  c) 安裝依賴關係
    i) yum -y install m4 autoconf
  d) /usr/local/php/bin/phpize
  e) ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
  f) make && make install
3) 安裝完畢後會出現這麼一行 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
4) 編輯php.ini,整合php和xcache:
  a) 首先將xcache提供的樣例配置導入php.ini
    i) # mkdir /etc/php.d
    ii) # cp xcache.ini /etc/php.d
    iii) 說明:xcache.ini文件在xcache的源碼目錄中。
5) 接下來編輯/etc/php.d/xcache.ini,找到extension開頭的行,修改為如下行:
  a) extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
  b) 註意:如果php.ini文件中有多條zend_extension指令行,要確保此新增的行排在第一位。
6) 然後重啟服務即在phpinfo的頁面中就可看見xcache的選項了。
7) 關閉xcache方法
  a) vim /etc/php.d/xcache.ini
    i) xcache.size = 0 :設置為0是關閉xcache

PHP連接MySQL

  1. mysql資料庫修改 

  use mysql;
  grant all privileges on *.* to 'root'@'192.9.205.105' identified by 'william';
  select Host,User,Password from user where User='root';
  flush privileges;

  1. 進入php主機編輯index.php文件內容

  <?php
  $link=mysql_connect('192.168.205.115','root','william');
  if($link){
        echo "success..william!";
      }else{
        echo "failed..frank!".mysql_error();
      }
  mysql_close($link);
  phpinfo();
  ?>

  1. 測試連接情況切記,要將防火牆關閉!

      瀏覽器里輸入: http://192.168.205.116

部署phpMyAdmin

  1. 下載phpMyAdmin

    wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.tar.gz

  1. 配置phpmyadmin

  1) 在php 主機和http主機上分別在/www目錄建立一個文件夾glinux, 並同樣執行下麵操作
  2) tar xf phpMyAdmin-4.7.0-all-languages.zip
  3) cd /www/glinux

  4) mv /root/phpMyAdmin-4.7.0/* ./
  5) 接下來在php主機上進行對phpmyadmin的配置。
  6) cp config.sample.inc.php config.inc.php
  7) vim config.inc.php
    a) 主要找到
    b) $cfg['Servers'][$i]['host']=‘192.168.205.115’ 資料庫伺服器的IP地址
    c) $cfg['blowfish_secret'] = 'william';這裡的字元隨意,這個主要是為了區分cookie。
  8) 然後重啟三台主機上的服務即可測試。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SQL Server常用系統表 1、查詢當前資料庫中的用戶表 2、獲取SQL Server允許同時用戶連接的最大數 3、獲取當前指定資料庫的連接信息 4、獲取當前SQL伺服器所有的連接詳細信息 查詢結果包含了:系統進程和用戶進程。如果只是想查用戶進程的話則需採用下麵的方法5 5、獲取自上次啟動 SQ ...
  • 由於資料庫中的數據表和表欄位的字元集和排序規則不統一,找了很多帖子,最後發現如下腳本很好用。 用法兒是:先執行如下腳本生成修改數據表和表欄位的腳本,然後再執行這些生成的腳本 1. 修改指定資料庫中所有varchar類型的表欄位的字元集為UTF8,並將排序規則修改為utf8_general_ci 2. ...
  • 本文操作系統: CentOS 7.2.1511 x86_64MySQL 版本: 5.7.13 1、卸載系統自帶的 mariadb-lib 2、下載 rpm 安裝包 去官網找到最新的 rpm 集合包。現在最新的是 mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar 複製其 ...
  • wIndows用戶登入選擇“資料庫”右鍵選擇“附加”點擊“添加” 打開資料庫,右鍵選中 選擇“任務”→“生成腳本”→“選擇對象”→“編寫整個數據及所有資料庫對象的腳本” →“下一步” “設置腳本編寫選項” →“高級”→點擊 →點擊“常規”→“Script for Server Version” →把 ...
  • B樹相關概念 在B-樹中查找給定關鍵字的方法是,首先把根結點取來,在根結點所包含的關鍵字K1,…,Kn查找給定的關鍵字(可用順序查找或二分查找法),若找到等於給定值的關鍵字,則查找成功;否則,一定可以確定要查找的關鍵字在Ki與Ki+1之間,Pi為指向子樹根節點的指針,此時取指針Pi所指的結點繼續查找 ...
  • 測試環境:CentOS6.8 和 MySQL5.5.4 一 需求 在項目開發的過程中可能需要開放自己的資料庫給別人,但是出於安全的考慮,不能同時開放自己伺服器里的其他資料庫。那麼可以新建一個用戶,賦予該用戶特定的資料庫許可權。 二 實現 1 新建用戶 這樣就創建了一個名為:buff,密碼為:buff ...
  • 文章首發於 "【博客園 陳樹義】" ,請尊重原創保留原文鏈接。 添加用戶 以root用戶登錄資料庫,運行以下命令: 上面的命令創建了用戶zhangsan,密碼是zhangsan。在mysql.user表裡可以查看到新增用戶的信息: 授權 命令格式:grant privilegesCode on db ...
  • 添加了此命令後可以使用subl加文件或路徑,就能通過命令行使用sublime text打開相應的文件或目錄。 這裡我的是MacOS,windows系統換路徑就好。 第一步 第二步 我這裡就搞定了。 不過實際操作中可能會遇到很多情況,有大神講解過。 這裡附上stackoverflow里大神原稿,看第一 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...