基於生產環境下的LAMP環境搭建與基礎設定

2020-08-09 12:18:13

     LAMP環境搭建與設定

  1. L 代表伺服器操作系統使用Linux

  2. A 代表網站服務使用的是Apache軟體基金會中的httpd的模組

  3. M 代表網站後臺使用的數據庫時MySQL數據庫

  4. P 代表網站是使用PHP語言開發

任務 1 安裝 LAMP(Linux Apache Mysql Php),基礎設定解析PHP

1.1 安裝 MySQL

(1)下載原始碼包,建議提前下載到本地,線上安裝很慢

#cd /usr/local/src         //軟體包都放在此目錄方便管理  或者  自定義位置   

wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz     

//線上安裝免編譯二進制包,小磊是在網易開源映象站下載的

(2)解壓

# tar –zxvf  mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz –C /usr/local/src

(3)安裝和設定

# useradd -s /sbin/nologin mysql

//建立 MySQL使用者,因爲啓動  MySQL需要該使用者

# mkdir -p /data/mysql

//建立 datadir,數據庫檔案會放到這裏面

# chown -R mysql:mysql /data/mysql

//更改許可權,不更改後續操作就會出問題

# yum install -y perl-Module-Install*    //或者 perl*也OK              

//安裝perl包依賴

# cd /usr/local/src/mysql-5.6.47-linux-glibc2.12-x86_64

//進入包對應目錄

# yum install –y numactl        

//軟體包和系統版本問題,缺少以上指令碼依賴,所以需安裝numactl模組

# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

//成功以後,如果出現2個OK則表示執行成功

//--user表示定義數據庫的以哪個使用者的身份運

//--datadir表示定義數據庫的安裝目錄

#cp support-file/my-default.cnf /etc/my.cnf        →      y覆蓋

#vi /etc/my.cnf

//修改組態檔                                

#These are commonly set ,remove the # and set as required     

Basedir=/usr/local/scr/mysql-5.6.47-linux-glibc2.12-x86_64                 //basedir表示MySQL包所在路徑

Datadir=/data/mysql/                         //表示定義存放數據的位置

Port=3306                                         //port表示定義  MySQL服務監聽的埠號

Server_id=128                                  //表示該 MySQL服務的ID號,一般寫成IP地址的第四節即可

socket = /tmp/mysql.sock                 //定義 MySQL服務監聽的通訊端地址

#cp support-files/mysql.server /etc/init.d/mysqld

//複製啓動指令碼檔案並改名爲mysqld

#chmod 755 /etc/init.d/mysqld

//修改啓動指令碼檔案的屬性

# vim /etc/init.d/mysqld

basedir=/usr/local/scr/mysql-5.6.47-linux-glibc2.12-x86_64

datadir=/data/mysql/

#chkconfig --add mysqld

//把 mysql服務加到系統服務列表中

#chkconfig mysqld on

//開機自啓

#service mysql start

//啓動服務

(4)安裝並啓動成功

(5)檢視服務,可通過以下所示命令檢視mysqld服務:

[root@gongfang ~]# ps -ef | grep mysqld

root      10829      1  0 20:38 pts/1    00:00:00 /bin/sh /usr/local/mysql/mysql-5.6.47-linux-glibc2.12-x86_64/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/gongfang.pid

mysql     11006  10829  0 20:38 pts/1    00:00:03 /usr/local/mysql/mysql-5.6.47-linux-glibc2.12-x86_64/bin/mysqld --basedir=/usr/local/mysql/mysql-5.6.47-linux-glibc2.12-x86_64 --datadir=/data/mysql --plugin-dir=/usr/local/mysql/mysql-5.6.47-linux-glibc2.12-x86_64/lib/plugin --user=mysql --log-error=gongfang.err --pid-file=/data/mysql/gongfang.pid --socket=/tmp/mysql.sock --port=3306

root      11069   9847  0 21:42 pts/1    00:00:00 grep --color=auto mysqld

[root@gongfang ~]# netstat -ntplu | grep 3306

tcp6       0      0 :::3306                 :::*                    LISTEN      11006/mysqld

[root@gongfang ~]# service mysqld status

 SUCCESS! MySQL running (11006)

 

(6)遇到的問題

解決方法:將my_pring_defaults檔案複製到/usr/bin的執行路徑下:

 

cp /usr/local/src/mysql-5.6.47-linux-glibc2.12-x86_64/bin/my_print_defaults /usr/bin/

再次啓動,結果又出現新問題,不過大同小異:

解決方法:按照提示,將/usr/local/src/mysql-5.6.47-linux-glibc2.12-x86_64/mysqld_safe 複製到/usr/bin下:

cp /usr/local/src/mysql-5.6.47-linux-glibc2.12-x86_64/bin/mysqld_safe /usr/bin/

 

  1.2 安裝 Apache

(1)下載 httpd-2.4.43.tar、apr-1.6.5.tar和apr-util-1.6.1.tar

  1. wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.43.tar.gz

  2. wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz

  3. wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

(2)解壓

#tar -zxvf http-2.4.43.tar.gz -C /usr/local/src

#tar -zxvf apr-1.6.5.tar.gz -C /usr/local/src

#tar -zxvf apr-util-1.6.1.tar.gz -C /usr/local/src

(3)安裝和設定

  首先我們先來安裝apr,這裏apache的安裝是由順序之分的:

#cd /usr/local/src/apr-1.6.5

#yum install –y libtool*

#./configure --prefix=/usr/local/apr

#echo $?     //檢視有沒有報錯,如果是0則沒有,輸出上一次的結果

#make &&make install

#cd /usr/local/src/apr-util-1.6.1

接着,再安裝apr-util:

#yum install -y expat-devel

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

#make &&make install                                                     

#cd /usr/local/src/http-2.4.39

#yum install –y pcre pcre-devel    //安裝正則表達庫

編譯解析configure檔案:

#./configure \                                  //回車,反斜槓是脫義字元,加上它一行命令寫成多行

--prefix=/usr/1ocal/apache2.4 \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util \

--enable-so \

--enable-mods-shared=most

//--enable-so表示啓用   DSO

//--enable -mods- shared表示以共用形式安裝模組

最後來安裝httpd:

#cd /usr/local/src

#cp -r apr-1.6.5 httpd-2.4.43/srclib/apr

#cp -r apr-util-1.6.1 httpd-2.4.43/srclib/apr-util

#cd httpd-2.4.43

#make -j4 && make install        //-j4表示安裝時候多加4個執行緒,提速

//若make時候出錯,解決了依賴後,可先make clean,再重新編譯

#./configure --prefix=/usr/local/apache2.4 --enable-so --with-pcre --with-included-apr

--enable-modules=most --enable-mpms-shared=all –with-mpm=prefork

然後再 make && make install

(4)安裝成功

//檢視組態檔有哪些檔案

#/usr/local/apache2.4/bin/apachectl –M         //檢視載入的模組

//shared字樣的動態共用模組,static以靜態形式存在

 

1.3 安裝 PHP

  PHP官網www.php.net

(1)下載資源包  php-5.6.39.tar.bz2                                                                            

(2)解壓

#tar -jxvf php-5.6.39.tar.gz -C /usr/local/src/

(3)安裝和設定

# yum install -y libxml2-devel

# yum install -y libpng libpng-devel

# yum install -y libmcrypt-devel                //先可以yum list lib*列出

# yum install -y openssl openssl-devel

# yum install -y bzip2 bzip2-devel

# yum install -y freetype freetype-devel

# yum install -y epel-release               //爲防止設定時出錯提前安裝庫檔案

# cd/usr/local/php-5.6.39

./configure --prefix=/usr/local/php

--with-apxs2=/usr/local/apache2.4/bin/apxs

--with-config-file-path=/usr/local/php/etc

--with-mysql=/usr/local/src/mysql-5.6.47-linux-glibc2.12-x86_64

--with-png-dir --with-freetype-dir --with-openssl

--with-mcrypt --with-libxml-dir

--with-gd --with-jpeg-dir --with-bz2

--with-iconv-dir --with-zlib-dir

--enable-soap

--enable-gd-native-ttf

--enable-mbstring

--enable-sockets

--enable-exif

#make && make install

//編譯安裝

#/usr/local/apache2.4/bin/httpd –M

//若下面 下麪多了一條php5的模組,那就安裝OK

同樣可以查詢php的相關資訊:

#/usr/local/php/bin/php –i | less

#cat /usr/local/apache2.4/conf/httpd.conf

可以看到,已經自動寫入到組態檔中

拷貝組態檔用於生產環境:

#cd /usr/local/php-5.6.39

#cp php.ini-production /usr/local/php/etc/php.ini

//php.ini-development:用於開發環境   php.ini.production:用於生產環境

(4)遇到的問題

(5)解決方法:

 yum install –y libmcrypt libmcrypt-devel    //安裝依賴庫

 

1.4 httpd解析 PHP

#vim /usr/local/apache2.4/conf/httpd.conf    //apache主組態檔

1.搜尋 ServerName,把 ServerName www.example.com:80前的#去掉;

2.搜尋Require,將denied改爲granted;

<Directory />

AllowOverride none

Require all denied

</Directory>

改成:

<Directory />

AllowOverride none

Require all granted

</Directory>       //目的允許所有請求存取

3.搜尋 AddType  application/x-gzip   .gz   .tgz,在下面 下麪新增一行 AddType application/x-httpd-php .php

4.搜尋IfModule dir_module

<IfModule dir_module>

DirectoryIndex index.html

</IfModule>

改成:

<IfModule dir_module>

DirectoryIndex index.html index.php

</IfModule>

(4)測試安裝

①測試組態檔是否正確

#/usr/local/apache2.4/bin/apachectl -t

//檢驗組態檔是否正確:Syntax OK

#/usr/local/apache2.4/bin/apachectl start(graceful:重新啓動)

//啓動apache服務。若重新啓動不成功,先kill -9殺死httpd相關進程

#netstat -ntplu |grep httpd

//檢視是否啓動

#curl localhost

<html><body><h1>It works!<h1><body><html>

//使用 curl命令簡單測試,,顯示了就是成功,也可以本地瀏覽器測試,修改本地hosts檔案

②測試是否正確解析PHP

#vim /usr/local/apache2.4/htdocs/index.php

<?php

echo「php解析正確」

?>

//編寫一個測試指令碼

#curl localhost/index.php

php解析正確

//如顯示此資訊則 PHP解析正確

(5)安裝並解析成功