實戰之LAMP環境源碼搭建

1、實驗要求

源碼部署LAMP環境。php

2、實驗環境

web服務器IP爲192.168.189.128,經過源碼包進行安裝,網站爲WordPress。html

軟件的版本分別爲:mysql

apr-1.5.2web

apr-util-1.5.4正則表達式

httpd-2.4.37sql

mysql-5.6.31數據庫

php-7.2.17apache

wordpress-4.7.3vim

3、實驗具體步驟

1.修改主機名

[root@jiangfeng2 src]# vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=web.jiangfeng.cc

2.主機名和IP進行綁定

[root@jiangfeng2 src]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.189.128 web.jiangfeng.cc

3.安裝依賴包

//開發工具包
[root@web ~]# yum groupinstall "Development tools" -y
//桌面開發工具包(圖形化相關包)
[root@web ~]# yum groupinstall "Desktop Platform Development" -y
//其餘依賴包
[root@web ~]# yum install cmake pcre-devel ncurses-devel openssl-devel libcurl-devel -y

4.編譯安裝MySQL

1)建立mysql用戶windows

[root@web ~]# useradd -r -s /sbin/nologin mysql
[root@web ~]# tail -1 /etc/passwd
mysql:x:498:498::/home/mysql:/sbin/nologin

2)解壓軟件並進入解壓目錄

[root@web ~]# cd /usr/local/src/
[root@web src]# tar -zxf mysql-5.6.31.tar.gz 
[root@web src]# cd mysql-5.6.31
[root@web mysql-5.6.31]# pwd
/usr/local/src/mysql-5.6.31

3)根據需求對mysql進行配置

[root@web mysql-5.6.31]# cmake . \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DMYSQL_TCP_PORT=3306 \
> -DDEFAULT_CHARSET=utf8mb4 \
> -DDEFAULT_COLLATION=utf8mb4_general_ci \
> -DWITH_EXTRA_CHARSETS=all \
> -DMYSQL_USER=mysql

注:若是怕輸入的時候出現問題,能夠把這部分代碼編寫成腳本經過腳本執行。

    相關參數的說明:

參數說明:
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \         安裝路徑
-DMYSQL_DATADIR=/usr/local/mysql/data \         數據目錄
-DENABLED_LOCAL_INFILE=1 \             開啓加載外部文件功能;1開啓,0關閉
-DWITH_INNOBASE_STORAGE_ENGINE=1 \         將InnoDB存儲引擎靜態編譯到服務器
-DMYSQL_TCP_PORT=3306 \             使用的端口
-DDEFAULT_CHARSET=utf8mb4 \             字符集
-DDEFAULT_COLLATION=utf8_general_ci \         字符校驗規則
-DWITH_EXTRA_CHARSETS=all \             擴展字符集
-DMYSQL_USER=mysql                 用戶身份mysql

4)進行編譯安裝

make && make install

5)後續配置

//更改數據目錄權限
[root@web ~]# chown -R mysql.mysql /usr/local/mysql/
//清空環境
[root@web ~]# rm -f /etc/my.cnf
[root@web ~]# cd /usr/local/mysql/
//初始化數據庫
[root@web mysql]# ./scripts/mysql_install_db --user=mysql
…………
New default config file was created as ./my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
//查看上個操做的返回值是否報錯
[root@web mysql]# echo $?
0
//拷貝啓動腳本
[root@web mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
//啓動服務前查看端口是否被佔用
[root@web mysql]# netstat -nltp |grep 3306
//啓動服務
[root@web mysql]# service mysql start
Starting MySQL.. SUCCESS!
//設置數據庫root密碼 
[root@web mysql]# /usr/local/mysql/bin/mysqladmin -u root password '123'
Warning: Using a password on the command line interface can be insecure.
//在環境變量中添加mysql相關啓動軟件
[root@web mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
[root@web mysql]# . /etc/profile

5.編譯安裝Apache

1)安裝依賴包apr和apr-util

注:兩個壓縮包在同一個目錄
安裝apr和apr-util軟件:
[root@web ~]# tar xf apr-1.5.2.tar.bz2
[root@web ~]# cd apr-1.5.2
[root@web ~]# ./configure
[root@web ~]# make && make install
[root@web ~]# cd ../
[root@web ~]# tar xf apr-util-1.5.4.tar.bz2
[root@web ~]# cd apr-util-1.5.4/
[root@web ~]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config  //指定軟件apr的路徑
[root@web ~]# make && make install
把apr放入動態連接庫中
[root@web php-7.2.17]# echo "/usr/local/apr/lib/" >>/etc/ld.so.conf
[root@web php-7.2.17]# ldconfing

2)根據需求安裝httpd

[root@web src]# tar -jxf httpd-2.4.37.tar.bz2 
[root@web src]# cd httpd-2.4.37
[root@web httpd-2.4.37]# ./configure \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite \
--with-pcre \
--enable-ssl \
--with-mpm=prefork \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr/bin/apu-1-config

參數的解釋:

--enable-modules=all 加載全部支持模塊 --enable-mods-shared=all 共享方式加載大部分經常使用的模塊 --enable-so   啓動動態模塊加載功能 --enable-rewrite 啓用url地址重寫功能 --enable-ssl 編譯ssl模塊,支持https --with-pcre 支持正則表達式 --with-apr=/usr/local/apr/bin/apr-1-config 指定依賴軟件apr路徑 --with-apr-util=/usr/local/apr/bin/apu-1-config --with-mpm=prefork   插入式並行處理模塊,稱爲多路處理模塊,Prefork 是類UNIX平臺上默認的MPM

(1)prefork   多進程模型,每一個進程響應一個請求 (2)worker   多進程多線程模型,每一個線程處理一個用戶請求 (3)event(最優)   事件驅動模型,多進程模型,每一個進程響應多個請求

3)編譯並安裝

make && make install

6.編譯安裝PHP

[root@web src]# tar Jxf php-7.2.17.tar.xz
[root@web src]# cd php-7.2.17
[root@web src]# ./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysqli \
--with-pdo-mysql \
--with-zlib \
--with-curl \
--enable-zip \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-opcache \
--enable-mbstring \
--enable-mbregex \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-calendar \
--enable-bcmath
[root@web src]# make && make install

相關參數的解釋

--with-apxs2=/usr/local/apache2/bin/apxs
#指定apxs路徑,apxs是一個爲Apache HTTP服務器編譯和安裝擴展模塊的工具
--with-mysql php7中已被廢棄
--with-mysqli
--with-pdo-mysql
#以上三個是php的擴展,用於鏈接mysql數據庫的
--with-iconv-dir
--with-freetype-dir
--with-jpeg-dir
--with-png-dir
--with-gd
--with-zlib
--with-libxml-dir
#這些都是在啓用對某種文件的支持
--with-curl 和 --with-curlwrappers
#用於支持 curl 函數,此函數容許你用不一樣的協議鏈接和溝通不一樣的服務器
--with-openssl,--with-mhash,--with-mcrypt
#這都是和加密有關的參數,啓用它們是爲了讓php能夠更好的支持各類加密。
--enable-bcmath 
#高精度數學運算組件。
--enable-shmop和 --enable-sysvsem
#使得你的PHP系統能夠處理相關的IPC函數.IPC是一個Unix標準通信機制,它提供了使得在同一臺主機不一樣進程之間能夠互相通信的方法。
--enable-inline-optimization 
#棧堆指針和優化線程。
--enable-pcntl 
#多線程優化。
with-apxs2 
#調用apache加載模塊支持PHP
gd 
#畫圖庫
libiconv 
#字符變換轉換
libmcrypt 
#字符加密
mcrypt 
#字符加密
mhash   #哈希運算

7.配置Apache和php聯繫

1. 修改apache主配置文件
[root@web ~]# vim /usr/local/apache2/conf/httpd.conf
#配置語言支持
LoadModule negotiation_module modules/mod_negotiation.so 
//此模塊打開註釋

Include conf/extra/httpd-languages.conf //打開此選項,擴展配置文件就生效了
...
//對虛擬主機的支持,後續再打開
#Include conf/extra/httpd-vhosts.conf
加載php模塊解析php頁面,添加兩行,告訴httpd把.php文件交給模塊去編譯
LoadModule php7_module   modules/libphp7.so //找到這一句,在這句下面加上兩句
AddHandler php7-script .php
AddType text/html .php
//默認主頁加上index.php,並放在index.html前,支持php的首頁文件
<IfModule dir_module>   DirectoryIndex index.php index.html
</IfModule>
注意:默認的網站目錄是:/usr/local/apache2/htdocs/
2. 修改apache的子配置文件,優先支持中文
[root@web ~]# vim /usr/local/apache2/conf/extra/httpd-languages.conf
DefaultLanguage zh-CN //打開註釋,默認語言集改成中文
LanguagePriority zh-CN en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-
BR ru sv tr zh-TW 
//語言集優先集,把zh-CN 寫到前面

8.部署web應用

[root@web ~]# mkdir /www/myblog -p
[root@web ~]# tar -zxf /usr/local/src/wordpress-4.7.3-zh_CN.tar.gz -C /www/myblog/
[root@web ~]# chown -R daemon:daemon /www/myblog
[root@web ~]# cd /usr/local/apache2/conf/
//打開加載虛擬主機配置文件
[root@web ~]# vim /usr/local/apache2/conf/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf 
//子配置文件目錄裏修改虛擬主機配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "/www/myblog"
        ServerName web.jiangfeng.cc
        ErrorLog "logs/myblog-error_log"
        CustomLog "logs/myblog-access_log" common
</VirtualHost>
<Directory "/www/myblog">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

網站鏈接後臺數據庫配置
mysql -p
Enter password: 
mysql> create database myblog default charset utf8; //建立myblog庫來存放wordpress的數據

9.測試

在windows的hosts配置文件中綁定web服務器的域名

在C:\Windows\System32\drivers\etc目錄下的hosts文件中追加以下內容

192.168.189.128    www.jiangfeng.cc

在瀏覽器中輸入網址

image

4、拓展實驗:一臺主機部署兩個應用

1.更改/usr/local/apache2/conf/extra/httpd-vhosts.conf配置文件

[root@web ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "/www/phpmyadmin"
        ServerName www.php.cc
        ErrorLog "logs/myblog-error_log"
        CustomLog "logs/myblog-access_log" common
</VirtualHost>
<Directory "/www/phpmyadmin">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

2.把你的網站內容放入相應的目錄下

[root@web src]# cp -a phpMyAdmin-4.8.5-all-languages /www/phpmyadmin/

相關文章
相關標籤/搜索