LAMP環境搭建與設定
L 代表伺服器操作系統使用Linux
A 代表網站服務使用的是Apache軟體基金會中的httpd的模組
M 代表網站後臺使用的數據庫時MySQL數據庫
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
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.43.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz
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)安裝並解析成功